2026-08-17 03:35:02.393810: Last hour: net energy 0.8kWh, import 0.8kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 6.4p, import 6.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:35:02.455506: Today's energy total net 2.1kWh, import 2.1kWh, export 0.0kWh, cost 63.43p, import 16.8p, export 0.0p, carbon 0.0kg
2026-08-17 03:35:02.455643: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:35:02.519189: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:35:02.538557: Today's load divergence 95.87%, in-day adjustment 72.51%, damping 0.95x, yesterday 68.37% today 96.07% blend 85.07%
2026-08-17 03:35:02.538675: Today's predicted so far 2.94kWh with 0.0kWh car/iBoost excluded, 0.28kWh import ignored, and 2.94kWh forecast extra.
2026-08-17 03:35:02.538722: Today's actual load so far 2.3kWh with 0.0kWh car/iBoost excluded, and 0.28kWh import ignored.
2026-08-17 03:35:02.578125: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -14.8, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.8665, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -11.1, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.5, 'source': 'SMART'}]]
2026-08-17 03:35:02.578705: Sensor changes require a replan, will recompute the plan
2026-08-17 03:35:02.578860: Inverter 0: Type SK Sunsynk
2026-08-17 03:35:02.578898: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:35:02.579075: Reserve min: 7%, battery_min: 7%
2026-08-17 03:35:02.579144: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:35:02.579398: Inverter 0 SoC: 10.69kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power -4474W, current battery voltage 51.2V, grid power -5434W, load power 438W, PV Power 0W
2026-08-17 03:35:02.579579: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:35:02.579679: Inverter 0 scheduled charge enable is True
2026-08-17 03:35:02.579723: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:35:02.579818: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:35:02.579942: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:35:02.579978: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:35:02.580013: Inverter 0 scheduled discharge enable is False
2026-08-17 03:35:02.580138: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:35:02.580180: Inverter 0 discharge windows currently []
2026-08-17 03:35:02.580205: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:35:02.580230: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:35:02.580260: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:35:02.644577: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:35:02.644656: Will recompute the plan as it is invalid
2026-08-17 03:35:02.644776: Recompute is saving previous plan...
2026-08-17 03:35:02.645653: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 03:35:02.645702: Best export window [ ]
2026-08-17 03:35:02.646399: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:35:02.649084: Load divergence over 8.0 hours mean 543.23W, min 271.2W, max 1525.8W, std dev 341.65W, divergence 31.45%
2026-08-17 03:35:02.664801: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 03:35:02.664987: LoadML is_calculating False
2026-08-17 03:35:02.665083: Creating pool of 12 processes to match your CPU count
2026-08-17 03:35:02.767980: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 03:35:02.769045: Optimise levels pass started at 2026-08-17 03:35:02
2026-08-17 03:35:02.769130: Optimise all windows, total charge 25 export 1
2026-08-17 03:35:03.336275: >> Region optimisation pass width 960 gives best_metric 242.8p, best_cost 240.32p, best_cycle 38.15kWh, best_import 22.11kWh
2026-08-17 03:35:03.489801: >> Region optimisation pass width 480 gives best_metric 242.8p, best_cost 240.32p, best_cycle 38.15kWh, best_import 22.11kWh
2026-08-17 03:35:03.971327: >> Region optimisation pass width 240 gives best_metric 236.83p, best_cost 246.31p, best_cycle 40.75kWh, best_import 22.86kWh
2026-08-17 03:35:04.515098: >> Region optimisation pass width 120 gives best_metric 236.83p, best_cost 246.31p, best_cycle 40.75kWh, best_import 22.86kWh
2026-08-17 03:35:04.515531: Calculated end_record as 08-18 04:00:00 based on best_price 8.0p, next_charge_start 08-17 04:00:00, max_windows 14
2026-08-17 03:35:04.515627: Optimise levels pass ended at 2026-08-17 03:35:04, duration 1.7 seconds tried 68 combinations
2026-08-17 03:35:04.515733: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 236.83p, best_keep 0.33kWh, best_cycle 40.75kWh, best_carbon 0kg, best_import 22.86kWh
2026-08-17 03:35:04.533513: Starting detailed optimisation end_record 08-18 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 03:35:07.030664: Tweak plan optimisation started metric 93.26p, cost 105.96p
2026-08-17 03:35:07.392571: Tweak optimisation finished metric 93.1p, cost 105.95p, metric_keep 0.01kWh, cycle 16.32kWh, carbon 0kg, import 5.31kWh, changed 8 window(s)
2026-08-17 03:35:07.414997: Swap charge optimisation started metric 93.1p, cost 105.95p, min_improvement_swap 0.1p
2026-08-17 03:35:07.658530: Swap charge optimisation finished metric 93.1p, cost 105.95p
2026-08-17 03:35:07.721473: Raw charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:07.721865: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:07.722064: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:07.722227: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:07.755647: Previous plan best metric is 96.97 (cost 124.39) and new plan best metric is 93.1 (cost 105.95)
2026-08-17 03:35:07.755853: New plan metric is significantly better from previous plan, using new plan
2026-08-17 03:35:07.755888: Plan valid is now true after recompute was False
2026-08-17 03:35:07.782965: predict base end_record 08-18 04:00:00, final soc 16.0kWh, metric 269.56p, metric_keep 0kWh, min_soc 6.51kWh @ 08-17 23:55:00, load 15.18kWh, PV 0.0kWh
2026-08-17 03:35:07.910404: Battery has 48.0 hours left - now at 10.69kWh
2026-08-17 03:35:07.958816: predict base10 end_record 08-18 04:00:00, final soc 16.0kWh, metric 274.98p, metric_keep 0kWh, min_soc 6.06kWh @ 08-17 23:55:00, load 15.79kWh, PV 0.0kWh
2026-08-17 03:35:08.053283: predict best10 end_record 08-18 04:00:00, final soc 1.18kWh, metric 151.49p, metric_keep 2.15kWh, min_soc 1.18kWh @ 08-18 03:55:00, load 15.79kWh, PV 0.0kWh
2026-08-17 03:35:08.135126: predict best end_record 08-18 04:00:00, final soc 1.96kWh, metric 152.58p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-18 03:55:00, load 15.18kWh, PV 0.0kWh
2026-08-17 03:35:08.135217: Saving plan best values to HA entities
2026-08-17 03:35:08.319921: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:35:08.325558: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:35:08.331129: Best charging limit SoC's [16.0, 12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.31kWh, house 0.0kWh, export 0.0kWh, metric 152.58p, metric10 151.49p
2026-08-17 03:35:08.401066: Marginal costs baseline metric (no standing charge): 105.9478
2026-08-17 03:35:08.635904: Marginal energy costs matrix computed: min=2.92 max=25.85
2026-08-17 03:35:08.711739: Rate array import [{'start': 215, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 215, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:35:08.712098: - Your estimated bill for today is £1.06 and tomorrow is £2.86
2026-08-17 03:35:08.712141: - Import rates are cheap (8.0p) for the next 1 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:35:08.712160: - The battery is currently at 67% and is charging to 79% for the next 25 minutes.
2026-08-17 03:35:08.712176: - For the next 48 hours there will be no solar generation.
2026-08-17 03:35:08.712190: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 03:35:08.712204: - Your car is currently charging.
2026-08-17 03:35:08.712218:
2026-08-17 03:35:08.766717: Plan calculation took 6.12 seconds
2026-08-17 03:35:08.771713: Saved plan to storage
2026-08-17 03:35:08.774533: No high rate period found
2026-08-17 03:35:08.826007: Import threshold used for optimisation was 8.0p
2026-08-17 03:35:08.875662: Low import rate windows [0: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 1: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 2: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 3: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 4: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 5: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 6: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 7: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 8: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 9: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 10: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 11: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 12: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 13: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 14: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 15: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 16: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0]
2026-08-17 03:35:08.882723: Inverter 0: Type SK Sunsynk
2026-08-17 03:35:08.882798: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:35:08.883042: Reserve min: 7%, battery_min: 7%
2026-08-17 03:35:08.883120: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:35:08.883456: Inverter 0 SoC: 10.69kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power -4474W, current battery voltage 51.2V, grid power -5434W, load power 438W, PV Power 0W
2026-08-17 03:35:08.883777: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:35:08.883883: Inverter 0 scheduled charge enable is True
2026-08-17 03:35:08.883925: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:35:08.884012: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:35:08.884133: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:35:08.884168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:35:08.884201: Inverter 0 scheduled discharge enable is False
2026-08-17 03:35:08.884311: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:35:08.884342: Inverter 0 discharge windows currently []
2026-08-17 03:35:08.884362: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:35:08.884381: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:35:08.884395: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:35:08.931119: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:35:08.931230: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 03:35:08.931344: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:35:08.931479: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:35:08.931665: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:35:08.931742: No export window planned
2026-08-17 03:35:08.931841: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 03:35:08.931871: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:35:08.932013: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:35:08.932110: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:35:08.932142: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:35:08.932220: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:35:08.932349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932559: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932594: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932617: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932640: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932661: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932685: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932706: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932758: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:08.932902: Inverter 0 count register writes 0
2026-08-17 03:35:08.952295: Total inverter register writes now 850
2026-08-17 03:35:08.985303: Info: Completed run status Charging
2026-08-17 03:35:08.992218: Info: record_status Charging target 67%-100.0%
2026-08-17 03:35:09.000516: Saved current settings to /config/predbat_config.json
2026-08-17 03:35:09.000856: Compare, best tariff: current metric 104.68p
2026-08-17 03:35:10.072273: Info: Refresh config entities due to their age of 480.0 minutes
2026-08-17 03:35:10.072452: Refreshing Predbat configuration
2026-08-17 03:35:10.924684: Saved current settings to /config/predbat_config.json
2026-08-17 03:35:10.925777: Validation of apps.yaml was successful
2026-08-17 03:35:10.925920: --------------- PredBat - update at 2026-08-17 03:35:00+01:00 with clock skew 0 minutes, minutes now 215
2026-08-17 03:35:10.926343: Saved current settings to /config/predbat_config.json
2026-08-17 03:35:10.926430: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.2 minutes
2026-08-17 03:35:10.926537: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 03:35:10.926612: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 03:35:10.942312: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:35:10.942431: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 03:35:10.942605: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 03:35:10.943119: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 03:35:10.943244: Predbat mode is set to Control charge & discharge
2026-08-17 03:35:11.111550: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:35:11.111701: Using load_power data to fill gaps in load_today data
2026-08-17 03:35:11.797880: Processing 721 30-minute periods for power integration
2026-08-17 03:35:11.962858: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:35:11.963010: Car charging hold False, threshold 6.0kWh
2026-08-17 03:35:11.963063: Current data so far today: load 2.3kWh, import 2.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:35:11.979525: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:35:11.979625: Cars: SoC: [49.81]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:35:11.980283: Standing charge is set to 46.63p
2026-08-17 03:35:12.069151: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.069467: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.069801: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.070033: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.070238: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.070457: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.070802: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.071171: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.071532: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:35:12.071857: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:35:12.072110: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:35:12.072274: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:35:12.072435: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:35:12.072688: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:35:12.072755: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:35:12.078356: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:35:12.078870: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:35:12.118028: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:35:12.118145: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:35:12.119217: High export rate found rates in range 99p to -99p
2026-08-17 03:35:12.140917: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:35:12.141022: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:35:12.141074: Car 0 charging plan is: [{'start': 210, 'end': 300, 'kwh': 11.1, 'average': 8.0, 'cost': 88.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.5, 'average': 8.0, 'cost': 4.0, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:35:12.153824: Battery level now 10.56kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 0.0p, change today 0.49p, rate_forward 6.87p
2026-08-17 03:35:12.154184: Last hour: net energy 0.8kWh, import 0.8kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 6.4p, import 6.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:35:12.193305: Today's energy total net 2.1kWh, import 2.1kWh, export 0.0kWh, cost 63.43p, import 16.8p, export 0.0p, carbon 0.0kg
2026-08-17 03:35:12.193478: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:35:12.257765: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:35:12.276844: Today's load divergence 95.87%, in-day adjustment 72.51%, damping 0.95x, yesterday 68.37% today 96.07% blend 85.07%
2026-08-17 03:35:12.276966: Today's predicted so far 2.94kWh with 0.0kWh car/iBoost excluded, 0.28kWh import ignored, and 2.94kWh forecast extra.
2026-08-17 03:35:12.276998: Today's actual load so far 2.3kWh with 0.0kWh car/iBoost excluded, and 0.28kWh import ignored.
2026-08-17 03:35:12.310069: Inverter 0: Type SK Sunsynk
2026-08-17 03:35:12.310162: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:35:12.310362: Reserve min: 7%, battery_min: 7%
2026-08-17 03:35:12.310432: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:35:12.310723: Inverter 0 SoC: 10.69kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power -4474W, current battery voltage 51.2V, grid power -5434W, load power 438W, PV Power 0W
2026-08-17 03:35:12.310925: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:35:12.311022: Inverter 0 scheduled charge enable is True
2026-08-17 03:35:12.311066: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:35:12.311187: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:35:12.311312: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:35:12.311352: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:35:12.311388: Inverter 0 scheduled discharge enable is False
2026-08-17 03:35:12.311525: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:35:12.311564: Inverter 0 discharge windows currently []
2026-08-17 03:35:12.311587: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:35:12.311609: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:35:12.311627: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:35:12.376430: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:35:12.376534: Will recompute the plan as it is invalid
2026-08-17 03:35:12.376651: Recompute is saving previous plan...
2026-08-17 03:35:12.377789: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 03:35:12.377858: Best export window [ ]
2026-08-17 03:35:12.378982: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:35:12.383094: Load divergence over 8.0 hours mean 543.23W, min 271.2W, max 1525.8W, std dev 341.65W, divergence 31.45%
2026-08-17 03:35:12.401916: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 03:35:12.402062: LoadML is_calculating False
2026-08-17 03:35:12.402131: Creating pool of 12 processes to match your CPU count
2026-08-17 03:35:12.500829: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 03:35:12.503073: Optimise levels pass started at 2026-08-17 03:35:12
2026-08-17 03:35:12.503160: Optimise all windows, total charge 25 export 1
2026-08-17 03:35:13.126758: >> Region optimisation pass width 960 gives best_metric 242.8p, best_cost 240.32p, best_cycle 38.15kWh, best_import 22.11kWh
2026-08-17 03:35:13.310481: >> Region optimisation pass width 480 gives best_metric 242.8p, best_cost 240.32p, best_cycle 38.15kWh, best_import 22.11kWh
2026-08-17 03:35:13.883757: >> Region optimisation pass width 240 gives best_metric 236.83p, best_cost 246.31p, best_cycle 40.75kWh, best_import 22.86kWh
2026-08-17 03:35:14.409876: >> Region optimisation pass width 120 gives best_metric 236.83p, best_cost 246.31p, best_cycle 40.75kWh, best_import 22.86kWh
2026-08-17 03:35:14.410261: Calculated end_record as 08-18 04:00:00 based on best_price 8.0p, next_charge_start 08-17 04:00:00, max_windows 14
2026-08-17 03:35:14.410395: Optimise levels pass ended at 2026-08-17 03:35:14, duration 1.9 seconds tried 68 combinations
2026-08-17 03:35:14.410489: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 236.83p, best_keep 0.33kWh, best_cycle 40.75kWh, best_carbon 0kg, best_import 22.86kWh
2026-08-17 03:35:14.431836: Starting detailed optimisation end_record 08-18 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 03:35:16.860236: Tweak plan optimisation started metric 93.26p, cost 105.96p
2026-08-17 03:35:17.190860: Tweak optimisation finished metric 93.1p, cost 105.95p, metric_keep 0.01kWh, cycle 16.32kWh, carbon 0kg, import 5.31kWh, changed 8 window(s)
2026-08-17 03:35:17.208845: Swap charge optimisation started metric 93.1p, cost 105.95p, min_improvement_swap 0.1p
2026-08-17 03:35:17.395561: Swap charge optimisation finished metric 93.1p, cost 105.95p
2026-08-17 03:35:17.449195: Raw charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:17.449548: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:17.449768: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:17.449936: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:35:17.481036: Previous plan best metric is 93.1 (cost 105.95) and new plan best metric is 93.1 (cost 105.95)
2026-08-17 03:35:17.481232: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 03:35:17.481390: Plan valid is now true after recompute was False
2026-08-17 03:35:17.507650: predict base end_record 08-18 04:00:00, final soc 16.0kWh, metric 269.56p, metric_keep 0kWh, min_soc 6.51kWh @ 08-17 23:55:00, load 15.18kWh, PV 0.0kWh
2026-08-17 03:35:17.607299: Battery has 48.0 hours left - now at 10.69kWh
2026-08-17 03:35:17.646074: predict base10 end_record 08-18 04:00:00, final soc 16.0kWh, metric 274.98p, metric_keep 0kWh, min_soc 6.06kWh @ 08-17 23:55:00, load 15.79kWh, PV 0.0kWh
2026-08-17 03:35:17.711143: predict best10 end_record 08-18 04:00:00, final soc 1.18kWh, metric 151.49p, metric_keep 2.15kWh, min_soc 1.18kWh @ 08-18 03:55:00, load 15.79kWh, PV 0.0kWh
2026-08-17 03:35:17.798689: predict best end_record 08-18 04:00:00, final soc 1.96kWh, metric 152.58p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-18 03:55:00, load 15.18kWh, PV 0.0kWh
2026-08-17 03:35:17.798774: Saving plan best values to HA entities
2026-08-17 03:35:17.947192: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:35:17.952543: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:35:17.957617: Best charging limit SoC's [16.0, 12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.31kWh, house 0.0kWh, export 0.0kWh, metric 152.58p, metric10 151.49p
2026-08-17 03:35:18.032702: Marginal costs baseline metric (no standing charge): 105.9478
2026-08-17 03:35:18.264801: Marginal energy costs matrix computed: min=2.92 max=25.85
2026-08-17 03:35:18.326355: Rate array import [{'start': 215, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 215, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:35:18.326721: - Your estimated bill for today is £1.06 and tomorrow is £2.86
2026-08-17 03:35:18.326760: - Import rates are cheap (8.0p) for the next 1 hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:35:18.326779: - The battery is currently at 67% and is charging to 79% for the next 25 minutes.
2026-08-17 03:35:18.326794: - For the next 48 hours there will be no solar generation.
2026-08-17 03:35:18.326808: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 03:35:18.326821: - Your car is currently charging.
2026-08-17 03:35:18.326840:
2026-08-17 03:35:18.379576: Plan calculation took 6.00 seconds
2026-08-17 03:35:18.383777: Saved plan to storage
2026-08-17 03:35:18.387350: No high rate period found
2026-08-17 03:35:18.441911: Import threshold used for optimisation was 8.0p
2026-08-17 03:35:18.490021: Low import rate windows [0: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 1: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 2: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 3: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 4: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 5: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 6: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 7: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 8: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 9: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 10: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 11: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 12: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 13: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 14: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 15: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 16: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0]
2026-08-17 03:35:18.495673: Inverter 0: Type SK Sunsynk
2026-08-17 03:35:18.495742: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:35:18.495947: Reserve min: 7%, battery_min: 7%
2026-08-17 03:35:18.496013: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:35:18.496319: Inverter 0 SoC: 10.69kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power -4474W, current battery voltage 51.2V, grid power -5434W, load power 438W, PV Power 0W
2026-08-17 03:35:18.496525: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:35:18.496611: Inverter 0 scheduled charge enable is True
2026-08-17 03:35:18.496650: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:35:18.496729: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:35:18.496832: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:35:18.496866: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:35:18.496898: Inverter 0 scheduled discharge enable is False
2026-08-17 03:35:18.497037: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:35:18.497073: Inverter 0 discharge windows currently []
2026-08-17 03:35:18.497091: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:35:18.497106: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:35:18.497123: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:35:18.549017: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:35:18.549151: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 03:35:18.549281: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:35:18.549427: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:35:18.549609: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:35:18.549689: No export window planned
2026-08-17 03:35:18.549819: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 03:35:18.549857: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:35:18.550004: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:35:18.550112: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:35:18.550148: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:35:18.550191: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:35:18.550304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550394: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550529: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550566: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550588: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550612: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550633: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550666: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550688: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550740: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.550870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.551122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:35:18.551156: Inverter 0 count register writes 0
2026-08-17 03:35:18.576560: Total inverter register writes now 850
2026-08-17 03:35:18.614428: Info: Completed run status Charging
2026-08-17 03:35:18.620988: Info: record_status Charging target 67%-100.0%
2026-08-17 03:35:18.627471: Saved current settings to /config/predbat_config.json
2026-08-17 03:35:18.627748: Compare, best tariff: current metric 104.68p
2026-08-17 03:35:18.703326: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-17 03:35:48.740597: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:35:48.740875: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:35:48.740914: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:35:48.741143: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:35:48.741206: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:35:48.741227: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:35:48.741245: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:37:48.968369: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:37:48.968680: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:37:48.968727: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:37:48.968866: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:37:48.968905: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:37:48.968978: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:37:48.969012: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:39:49.204192: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:39:49.204551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:39:49.204617: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:39:49.204853: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:39:49.204924: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:39:49.204993: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:39:49.205040: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:40:00.307496: --------------- PredBat - update at 2026-08-17 03:40:00+01:00 with clock skew 0 minutes, minutes now 220
2026-08-17 03:40:00.308770: Saved current settings to /config/predbat_config.json
2026-08-17 03:40:00.308911: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 03:40:00.309074: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 03:40:00.309178: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 03:40:00.330383: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:40:00.330510: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 03:40:00.330650: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 03:40:00.331112: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 03:40:00.331221: Predbat mode is set to Control charge & discharge
2026-08-17 03:40:00.534555: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:40:00.534735: Using load_power data to fill gaps in load_today data
2026-08-17 03:40:01.238047: Processing 721 30-minute periods for power integration
2026-08-17 03:40:01.427181: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:40:01.427324: Car charging hold False, threshold 6.0kWh
2026-08-17 03:40:01.427379: Current data so far today: load 2.35kWh, import 2.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:40:01.443858: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:40:01.443984: Cars: SoC: [49.81]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:40:01.444828: Standing charge is set to 46.63p
2026-08-17 03:40:01.545218: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.545533: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.545801: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.546003: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.546214: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.546467: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.546778: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.547008: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.547313: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:40:01.547549: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:40:01.547779: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:40:01.547881: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:40:01.547960: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:40:01.548130: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:40:01.548213: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:40:01.554738: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:40:01.555198: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:40:01.604150: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:40:01.604638: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:40:01.605862: High export rate found rates in range 99p to -99p
2026-08-17 03:40:01.632606: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:40:01.632731: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:40:01.632792: Car 0 charging plan is: [{'start': 210, 'end': 300, 'kwh': 11.1, 'average': 8.0, 'cost': 88.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.5, 'average': 8.0, 'cost': 4.0, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:40:01.649063: Battery level now 10.69kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 0.88p, change today 1.37p, rate_forward 6.87p
2026-08-17 03:40:01.649496: Last hour: net energy 1.0kWh, import 1.0kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 8.0p, import 8.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:40:01.713497: Today's energy total net 2.5kWh, import 2.5kWh, export 0.0kWh, cost 66.63p, import 20.0p, export 0.0p, carbon 0.0kg
2026-08-17 03:40:01.713640: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:40:01.791329: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:40:01.814512: Today's load divergence 96.0%, in-day adjustment 72.62%, damping 0.95x, yesterday 68.37% today 96.2% blend 84.72%
2026-08-17 03:40:01.814906: Today's predicted so far 2.95kWh with 0.0kWh car/iBoost excluded, 0.56kWh import ignored, and 2.95kWh forecast extra.
2026-08-17 03:40:01.814954: Today's actual load so far 2.33kWh with 0.0kWh car/iBoost excluded, and 0.56kWh import ignored.
2026-08-17 03:40:01.867030: Inverter 0: Type SK Sunsynk
2026-08-17 03:40:01.867110: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:40:01.867300: Reserve min: 7%, battery_min: 7%
2026-08-17 03:40:01.867406: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:40:01.867823: Inverter 0 SoC: 10.69kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power -4480W, current battery voltage 51.2V, grid power -5430W, load power 433W, PV Power 0W
2026-08-17 03:40:01.868006: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:40:01.868099: Inverter 0 scheduled charge enable is True
2026-08-17 03:40:01.868144: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:40:01.868315: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:40:01.868529: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:40:01.868573: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:40:01.868615: Inverter 0 scheduled discharge enable is False
2026-08-17 03:40:01.868754: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:40:01.868792: Inverter 0 discharge windows currently []
2026-08-17 03:40:01.868815: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:40:01.868843: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:40:01.868861: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:40:01.958491: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:40:01.958603: Plan was last updated on 2026-08-17 03:35:00+01:00 and is now 5.0 minutes old
2026-08-17 03:40:01.958848: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 03:40:01.958891: Best export window [ ]
2026-08-17 03:40:01.959737: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:40:01.962973: Load divergence over 8.0 hours mean 547.98W, min 292.2W, max 1566.6W, std dev 349.38W, divergence 31.88%
2026-08-17 03:40:01.986547: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 03:40:01.986702: LoadML is_calculating False
2026-08-17 03:40:01.986780: Creating pool of 12 processes to match your CPU count
2026-08-17 03:40:02.137363: predict base end_record 08-18 04:05:00, final soc 16.0kWh, metric 272.9p, metric_keep 0kWh, min_soc 6.46kWh @ 08-17 23:55:00, load 15.24kWh, PV 0.0kWh
2026-08-17 03:40:02.303011: Battery has 48.0 hours left - now at 10.69kWh
2026-08-17 03:40:02.358653: predict base10 end_record 08-18 04:05:00, final soc 16.0kWh, metric 278.3p, metric_keep 0kWh, min_soc 6.01kWh @ 08-17 23:55:00, load 15.85kWh, PV 0.0kWh
2026-08-17 03:40:02.450849: predict best10 end_record 08-18 04:05:00, final soc 1.53kWh, metric 157.7p, metric_keep 2.2kWh, min_soc 1.21kWh @ 08-18 03:55:00, load 15.85kWh, PV 0.0kWh
2026-08-17 03:40:02.546683: predict best end_record 08-18 04:05:00, final soc 2.39kWh, metric 159.49p, metric_keep 0kWh, min_soc 2.0kWh @ 08-18 03:55:00, load 15.24kWh, PV 0.0kWh
2026-08-17 03:40:02.546788: Saving plan best values to HA entities
2026-08-17 03:40:02.757235: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:40:02.765032: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:40:02.773874: Best charging limit SoC's [16.0, 12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.78kWh, house 0.0kWh, export 0.0kWh, metric 159.49p, metric10 157.7p
2026-08-17 03:40:02.884936: Marginal costs baseline metric (no standing charge): 112.8587
2026-08-17 03:40:03.147941: Marginal energy costs matrix computed: min=1.66 max=26.25
2026-08-17 03:40:03.220523: Rate array import [{'start': 220, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1685, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 220, 'end': 1685, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:40:03.221018: - Your estimated bill for today is £1.09 and tomorrow is £2.85
2026-08-17 03:40:03.221078: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:40:03.221102: - The battery is currently at 67% and is charging to 79% for the next 20 minutes.
2026-08-17 03:40:03.221121: - For the next 48 hours there will be no solar generation.
2026-08-17 03:40:03.221139: - You will reach a minimum of 13% battery in 24 hours.
2026-08-17 03:40:03.221157: - Your car is currently charging.
2026-08-17 03:40:03.221174:
2026-08-17 03:40:03.279794: Plan calculation took 1.32 seconds
2026-08-17 03:40:03.282552: No high rate period found
2026-08-17 03:40:03.348634: Import threshold used for optimisation was 8.0p
2026-08-17 03:40:03.414626: Low import rate windows [0: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 1: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 2: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 3: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 4: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 5: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 6: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 7: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 8: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 9: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 10: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 11: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 12: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 13: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 14: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 15: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 16: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0]
2026-08-17 03:40:03.423263: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:40:03.423460: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 03:40:03.423685: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:40:03.423904: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:40:03.424174: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:40:03.424279: No export window planned
2026-08-17 03:40:03.424401: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 03:40:03.424455: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:40:03.424603: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:40:03.424728: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:40:03.424773: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:40:03.424840: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:40:03.424993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425264: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425297: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425325: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425353: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425381: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425411: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425456: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:40:03.425719: Inverter 0 count register writes 0
2026-08-17 03:40:03.446083: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 03:40:03.453040: Total inverter register writes now 850
2026-08-17 03:40:03.497915: Info: Completed run status Charging
2026-08-17 03:40:03.506108: Info: record_status Charging target 67%-100.0%
2026-08-17 03:40:03.515755: Saved current settings to /config/predbat_config.json
2026-08-17 03:40:03.516221: Compare, best tariff: current metric 104.68p
2026-08-17 03:40:33.643519: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:40:33.643983: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:40:33.644059: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:40:33.644383: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:40:33.644474: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:40:33.644560: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:40:33.644611: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:42:33.873541: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:42:33.873832: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:42:33.873869: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:42:33.874022: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:42:33.874062: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:42:33.874092: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:42:33.874124: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:44:34.111389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:44:34.111658: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:44:34.111702: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:44:34.111888: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:44:34.111938: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:44:34.111960: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:44:34.111979: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:45:00.216376: --------------- PredBat - update at 2026-08-17 03:45:00+01:00 with clock skew 0 minutes, minutes now 225
2026-08-17 03:45:00.217274: Saved current settings to /config/predbat_config.json
2026-08-17 03:45:00.217506: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 03:45:00.217614: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 03:45:00.217696: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 03:45:00.240614: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:45:00.240770: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 03:45:00.241026: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 03:45:00.241601: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 03:45:00.241734: Predbat mode is set to Control charge & discharge
2026-08-17 03:45:00.421450: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:45:00.421990: Using load_power data to fill gaps in load_today data
2026-08-17 03:45:01.125711: Processing 721 30-minute periods for power integration
2026-08-17 03:45:01.285452: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:45:01.285579: Car charging hold False, threshold 6.0kWh
2026-08-17 03:45:01.285620: Current data so far today: load 2.4kWh, import 2.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:45:01.298927: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:45:01.299052: Cars: SoC: [50.396]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:45:01.299642: Standing charge is set to 46.63p
2026-08-17 03:45:01.390304: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.390548: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.390727: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.390901: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.391088: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.391269: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.391451: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.391648: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.391796: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.391982: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.392192: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:45:01.392433: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:45:01.392533: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:45:01.392652: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:45:01.392843: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:45:01.392902: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:45:01.397398: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:45:01.397796: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:45:01.432594: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:45:01.432799: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:45:01.433941: High export rate found rates in range 99p to -99p
2026-08-17 03:45:01.457251: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:45:01.457381: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:45:01.457672: Car 0 charging plan is: [{'start': 210, 'end': 300, 'kwh': 11.1, 'average': 8.0, 'cost': 88.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.5, 'average': 8.0, 'cost': 4.0, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:45:01.468547: Battery level now 10.69kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 0.88p, change today 1.37p, rate_forward 6.87p
2026-08-17 03:45:01.468892: Last hour: net energy 0.8kWh, import 0.8kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 6.4p, import 6.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:45:01.525330: Today's energy total net 2.5kWh, import 2.5kWh, export 0.0kWh, cost 66.63p, import 20.0p, export 0.0p, carbon 0.0kg
2026-08-17 03:45:01.525472: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:45:01.597837: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:45:01.618424: Today's load divergence 96.16%, in-day adjustment 72.74%, damping 0.95x, yesterday 68.37% today 96.36% blend 84.38%
2026-08-17 03:45:01.618556: Today's predicted so far 2.96kWh with 0.0kWh car/iBoost excluded, 0.54kWh import ignored, and 2.96kWh forecast extra.
2026-08-17 03:45:01.618600: Today's actual load so far 2.37kWh with 0.0kWh car/iBoost excluded, and 0.54kWh import ignored.
2026-08-17 03:45:01.658847: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -11.1, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.5, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -11.1, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.5, 'source': 'SMART'}]]
2026-08-17 03:45:01.659433: Sensor changes require a replan, will recompute the plan
2026-08-17 03:45:01.659614: Inverter 0: Type SK Sunsynk
2026-08-17 03:45:01.659653: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:45:01.659813: Reserve min: 7%, battery_min: 7%
2026-08-17 03:45:01.659902: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:45:01.660153: Inverter 0 SoC: 11.02kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power -4492W, current battery voltage 51.2V, grid power -5432W, load power 436W, PV Power 0W
2026-08-17 03:45:01.660310: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:45:01.660408: Inverter 0 scheduled charge enable is True
2026-08-17 03:45:01.660457: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:45:01.660534: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:45:01.660638: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:45:01.660662: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:45:01.660691: Inverter 0 scheduled discharge enable is False
2026-08-17 03:45:01.660787: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:45:01.660818: Inverter 0 discharge windows currently []
2026-08-17 03:45:01.660837: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:45:01.660853: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:45:01.660870: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:45:01.721757: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:45:01.721831: Will recompute the plan as it is invalid
2026-08-17 03:45:01.721927: Recompute is saving previous plan...
2026-08-17 03:45:01.722769: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 03:45:01.722819: Best export window [ ]
2026-08-17 03:45:01.723432: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:45:01.725924: Load divergence over 8.0 hours mean 552.72W, min 259.8W, max 1618.2W, std dev 354.39W, divergence 32.06%
2026-08-17 03:45:01.742124: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 03:45:01.742270: LoadML is_calculating False
2026-08-17 03:45:01.742333: Creating pool of 12 processes to match your CPU count
2026-08-17 03:45:01.830941: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 03:45:01.831887: Optimise levels pass started at 2026-08-17 03:45:01
2026-08-17 03:45:01.831959: Optimise all windows, total charge 25 export 1
2026-08-17 03:45:02.514965: >> Region optimisation pass width 960 gives best_metric 244.06p, best_cost 240.92p, best_cycle 37.88kWh, best_import 21.79kWh
2026-08-17 03:45:02.695899: >> Region optimisation pass width 480 gives best_metric 244.06p, best_cost 240.92p, best_cycle 37.88kWh, best_import 21.79kWh
2026-08-17 03:45:03.303524: >> Region optimisation pass width 240 gives best_metric 237.49p, best_cost 246.74p, best_cycle 40.53kWh, best_import 22.51kWh
2026-08-17 03:45:03.962252: >> Region optimisation pass width 120 gives best_metric 237.49p, best_cost 246.74p, best_cycle 40.53kWh, best_import 22.51kWh
2026-08-17 03:45:03.962554: Calculated end_record as 08-18 04:00:00 based on best_price 8.0p, next_charge_start 08-17 04:00:00, max_windows 14
2026-08-17 03:45:03.962656: Optimise levels pass ended at 2026-08-17 03:45:03, duration 2.1 seconds tried 68 combinations
2026-08-17 03:45:03.962745: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 237.49p, best_keep 0.39kWh, best_cycle 40.53kWh, best_carbon 0kg, best_import 22.51kWh
2026-08-17 03:45:03.985494: Starting detailed optimisation end_record 08-18 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 03:45:06.893543: Tweak plan optimisation started metric 92.81p, cost 105.68p
2026-08-17 03:45:07.267818: Tweak optimisation finished metric 92.38p, cost 105.27p, metric_keep 0.01kWh, cycle 15.04kWh, carbon 0kg, import 4.83kWh, changed 8 window(s)
2026-08-17 03:45:07.289059: Swap charge optimisation started metric 92.38p, cost 105.27p, min_improvement_swap 0.1p
2026-08-17 03:45:07.794317: Swap charge optimisation finished metric 91.83p, cost 104.41p
2026-08-17 03:45:07.815592: Swap charge optimisation started metric 91.83p, cost 104.41p, min_improvement_swap 0.1p
2026-08-17 03:45:08.215173: Swap charge optimisation finished metric 91.83p, cost 104.41p
2026-08-17 03:45:08.324401: Pruned 1 dead plan slot(s) in 8 trial(s), nominal metric 91.03p -> 91.03p, plan now metric 91.83p, cost 104.41p, cycle 13.92kWh, import 4.72kWh
2026-08-17 03:45:08.335141: Raw charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 75%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 75%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 75%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 25%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:45:08.335703: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:45:08.336042: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:45:08.336331: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:45:08.376589: Previous plan best metric is 92.91 (cost 106.33) and new plan best metric is 91.83 (cost 104.41)
2026-08-17 03:45:08.376811: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 03:45:08.377029: Plan valid is now true after recompute was False
2026-08-17 03:45:08.410324: predict base end_record 08-18 04:00:00, final soc 16.0kWh, metric 269.41p, metric_keep 0kWh, min_soc 6.42kWh @ 08-17 23:55:00, load 15.21kWh, PV 0.0kWh
2026-08-17 03:45:08.544648: Battery has 48.0 hours left - now at 11.02kWh
2026-08-17 03:45:08.591682: predict base10 end_record 08-18 04:00:00, final soc 16.0kWh, metric 274.79p, metric_keep 0kWh, min_soc 5.96kWh @ 08-17 23:55:00, load 15.81kWh, PV 0.0kWh
2026-08-17 03:45:08.674685: predict best10 end_record 08-18 04:00:00, final soc 1.24kWh, metric 151.59p, metric_keep 1.88kWh, min_soc 1.24kWh @ 08-18 03:55:00, load 15.81kWh, PV 0.0kWh
2026-08-17 03:45:08.765182: predict best end_record 08-18 04:00:00, final soc 2.04kWh, metric 152.97p, metric_keep 0kWh, min_soc 2.04kWh @ 08-18 03:55:00, load 15.21kWh, PV 0.0kWh
2026-08-17 03:45:08.765345: Saving plan best values to HA entities
2026-08-17 03:45:08.965483: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:45:08.972791: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:45:08.980201: Best charging limit SoC's [16.0, 12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.96kWh, house 0kWh, export 0.0kWh, metric 152.97p, metric10 151.59p
2026-08-17 03:45:09.063799: Marginal costs baseline metric (no standing charge): 106.3336
2026-08-17 03:45:09.350926: Marginal energy costs matrix computed: min=1.55 max=26.24
2026-08-17 03:45:09.417133: Rate array import [{'start': 225, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 225, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:45:09.417486: - Your estimated bill for today is £1.06 and tomorrow is £2.85
2026-08-17 03:45:09.417525: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:45:09.417560: - The battery is currently at 69% and is charging to 79% for the next 15 minutes.
2026-08-17 03:45:09.417576: - For the next 48 hours there will be no solar generation.
2026-08-17 03:45:09.417590: - You will reach a minimum of 13% battery in 24 hours.
2026-08-17 03:45:09.417608: - Your car is currently charging.
2026-08-17 03:45:09.417629:
2026-08-17 03:45:09.490730: Plan calculation took 7.77 seconds
2026-08-17 03:45:09.496132: Saved plan to storage
2026-08-17 03:45:09.499457: No high rate period found
2026-08-17 03:45:09.580729: Import threshold used for optimisation was 8.0p
2026-08-17 03:45:09.641928: Low import rate windows [0: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 1: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 2: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 3: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 4: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 5: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 6: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 7: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 8: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 9: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 10: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 11: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 12: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 13: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 14: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 15: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 16: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0]
2026-08-17 03:45:09.649208: Inverter 0: Type SK Sunsynk
2026-08-17 03:45:09.649308: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:45:09.649544: Reserve min: 7%, battery_min: 7%
2026-08-17 03:45:09.649624: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:45:09.649954: Inverter 0 SoC: 11.37kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power -4492W, current battery voltage 51.2V, grid power -5433W, load power 437W, PV Power 0W
2026-08-17 03:45:09.650184: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:45:09.650307: Inverter 0 scheduled charge enable is True
2026-08-17 03:45:09.650364: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:45:09.650462: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:45:09.650591: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:45:09.650632: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:45:09.650669: Inverter 0 scheduled discharge enable is False
2026-08-17 03:45:09.650800: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:45:09.650839: Inverter 0 discharge windows currently []
2026-08-17 03:45:09.650862: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:45:09.650885: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:45:09.650903: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:45:09.712877: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:45:09.713074: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-17 03:45:09.713271: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:45:09.713515: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:45:09.713769: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:45:09.713884: No export window planned
2026-08-17 03:45:09.714076: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 03:45:09.714121: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:45:09.714321: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:45:09.714472: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:45:09.714528: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:45:09.714617: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:45:09.714789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.714857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.714918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.714979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715157: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715237: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715307: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715363: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715413: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715461: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715517: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715548: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715798: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.715952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.716016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:45:09.716083: Inverter 0 count register writes 0
2026-08-17 03:45:09.739558: Total inverter register writes now 850
2026-08-17 03:45:09.776476: Info: Completed run status Charging
2026-08-17 03:45:09.783602: Info: record_status Charging target 71%-100.0%
2026-08-17 03:45:09.792111: Saved current settings to /config/predbat_config.json
2026-08-17 03:45:09.792456: Compare, best tariff: current metric 104.68p
2026-08-17 03:45:48.912419: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:45:48.912726: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:45:48.912771: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:45:48.912937: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:45:48.913013: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:45:48.913048: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:45:48.913069: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:47:49.143170: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:47:49.143747: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:47:49.143796: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:47:49.143945: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:47:49.144002: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:47:49.144023: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:47:49.144041: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:50:00.393376: --------------- PredBat - update at 2026-08-17 03:50:00+01:00 with clock skew 0 minutes, minutes now 230
2026-08-17 03:50:00.394139: Saved current settings to /config/predbat_config.json
2026-08-17 03:50:00.394270: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 03:50:00.394358: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 03:50:00.394462: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 03:50:00.424429: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:50:00.424606: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 03:50:00.424836: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 03:50:00.425541: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 03:50:00.425729: Predbat mode is set to Control charge & discharge
2026-08-17 03:50:00.612812: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:50:00.612990: Using load_power data to fill gaps in load_today data
2026-08-17 03:50:01.401323: Processing 721 30-minute periods for power integration
2026-08-17 03:50:01.584208: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:50:01.584348: Car charging hold False, threshold 6.0kWh
2026-08-17 03:50:01.584390: Current data so far today: load 2.3kWh, import 3.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:50:01.598303: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:50:01.598858: Cars: SoC: [50.982]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:50:01.599631: Standing charge is set to 46.63p
2026-08-17 03:50:01.691263: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.691541: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.691741: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.691919: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.692069: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.692236: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.692435: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.692588: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.692728: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.692867: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.693026: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:50:01.693248: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:50:01.693349: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:50:01.693422: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:50:01.693610: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:50:01.693671: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:50:01.698286: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:50:01.698750: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:50:01.738237: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:50:01.738382: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:50:01.739458: High export rate found rates in range 99p to -99p
2026-08-17 03:50:01.762674: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:50:01.762841: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:50:01.762906: Car 0 charging plan is: [{'start': 210, 'end': 300, 'kwh': 11.1, 'average': 8.0, 'cost': 88.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.5, 'average': 8.0, 'cost': 4.0, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:50:01.775414: Battery level now 11.02kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 3.19p, change today 3.68p, rate_forward 6.87p
2026-08-17 03:50:01.775702: Last hour: net energy 1.6kWh, import 1.6kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 12.8p, import 12.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:50:01.831527: Today's energy total net 3.4kWh, import 3.4kWh, export 0.0kWh, cost 73.83p, import 27.2p, export 0.0p, carbon 0.0kg
2026-08-17 03:50:01.831693: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:50:01.898382: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:50:01.918929: Today's load divergence 95.46%, in-day adjustment 72.73%, damping 0.95x, yesterday 68.37% today 95.68% blend 84.03%
2026-08-17 03:50:01.919027: Today's predicted so far 2.98kWh with 0.0kWh car/iBoost excluded, 1.48kWh import ignored, and 2.98kWh forecast extra.
2026-08-17 03:50:01.919078: Today's actual load so far 2.28kWh with 0.0kWh car/iBoost excluded, and 1.48kWh import ignored.
2026-08-17 03:50:01.955858: Inverter 0: Type SK Sunsynk
2026-08-17 03:50:01.955965: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:50:01.956190: Reserve min: 7%, battery_min: 7%
2026-08-17 03:50:01.956294: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:50:01.956700: Inverter 0 SoC: 11.37kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power -4500W, current battery voltage 51.2V, grid power -5433W, load power 436W, PV Power 0W
2026-08-17 03:50:01.956891: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:50:01.957008: Inverter 0 scheduled charge enable is True
2026-08-17 03:50:01.957061: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:50:01.957158: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:50:01.957260: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:50:01.957298: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:50:01.957329: Inverter 0 scheduled discharge enable is False
2026-08-17 03:50:01.957428: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:50:01.957458: Inverter 0 discharge windows currently []
2026-08-17 03:50:01.957477: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:50:01.957492: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:50:01.957506: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:50:02.021283: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:50:02.021384: Plan was last updated on 2026-08-17 03:45:00+01:00 and is now 5.0 minutes old
2026-08-17 03:50:02.021606: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 03:50:02.021646: Best export window [ ]
2026-08-17 03:50:02.022342: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:50:02.024847: Load divergence over 8.0 hours mean 557.06W, min 260.4W, max 1689.0W, std dev 351.44W, divergence 31.54%
2026-08-17 03:50:02.043663: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 03:50:02.043788: LoadML is_calculating False
2026-08-17 03:50:02.043851: Creating pool of 12 processes to match your CPU count
2026-08-17 03:50:02.166037: predict base end_record 08-18 04:05:00, final soc 16.0kWh, metric 273.66p, metric_keep 0kWh, min_soc 6.41kWh @ 08-17 23:55:00, load 15.11kWh, PV 0.0kWh
2026-08-17 03:50:02.322736: Battery has 48.0 hours left - now at 11.37kWh
2026-08-17 03:50:02.371464: predict base10 end_record 08-18 04:05:00, final soc 16.0kWh, metric 279.06p, metric_keep 0kWh, min_soc 5.95kWh @ 08-17 23:55:00, load 15.72kWh, PV 0.0kWh
2026-08-17 03:50:02.468051: predict best10 end_record 08-18 04:05:00, final soc 1.59kWh, metric 158.86p, metric_keep 1.89kWh, min_soc 1.27kWh @ 08-18 03:55:00, load 15.72kWh, PV 0.0kWh
2026-08-17 03:50:02.590351: predict best end_record 08-18 04:05:00, final soc 2.46kWh, metric 160.71p, metric_keep 0kWh, min_soc 2.07kWh @ 08-18 03:55:00, load 15.11kWh, PV 0.0kWh
2026-08-17 03:50:02.590455: Saving plan best values to HA entities
2026-08-17 03:50:02.791807: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:50:02.799802: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:50:02.807381: Best charging limit SoC's [16.0, 12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 5.03kWh, house 0.0kWh, export 0.0kWh, metric 160.71p, metric10 158.86p
2026-08-17 03:50:02.909366: Marginal costs baseline metric (no standing charge): 114.0738
2026-08-17 03:50:03.219503: Marginal energy costs matrix computed: min=1.62 max=26.2
2026-08-17 03:50:03.291922: Rate array import [{'start': 230, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1685, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 230, 'end': 1685, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:50:03.292386: - Your estimated bill for today is £1.10 and tomorrow is £2.84
2026-08-17 03:50:03.292433: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:50:03.292457: - The battery is currently at 71% and is charging to 79% for the next 10 minutes.
2026-08-17 03:50:03.292475: - For the next 48 hours there will be no solar generation.
2026-08-17 03:50:03.292492: - You will reach a minimum of 13% battery in 24 hours.
2026-08-17 03:50:03.292513: - Your car is currently charging.
2026-08-17 03:50:03.292531:
2026-08-17 03:50:03.348203: Plan calculation took 1.33 seconds
2026-08-17 03:50:03.351738: No high rate period found
2026-08-17 03:50:03.406158: Import threshold used for optimisation was 8.0p
2026-08-17 03:50:03.488407: Low import rate windows [0: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 1: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 2: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 3: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 4: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 5: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 6: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 7: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 8: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 9: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 10: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 11: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 12: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 13: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 14: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 15: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 16: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0]
2026-08-17 03:50:03.495703: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:50:03.495869: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-17 03:50:03.496139: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:50:03.496451: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:50:03.496788: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:50:03.496994: No export window planned
2026-08-17 03:50:03.497245: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 03:50:03.497311: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:50:03.497537: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:50:03.497725: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:50:03.497797: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:50:03.497904: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:50:03.498064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498438: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498507: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498580: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498635: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498707: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498781: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498843: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.498905: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499146: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:50:03.499420: Inverter 0 count register writes 0
2026-08-17 03:50:03.517478: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 03:50:03.524180: Total inverter register writes now 850
2026-08-17 03:50:03.563364: Info: Completed run status Charging
2026-08-17 03:50:03.570959: Info: record_status Charging target 71%-100.0%
2026-08-17 03:50:03.579606: Saved current settings to /config/predbat_config.json
2026-08-17 03:50:03.580001: Compare, best tariff: current metric 104.68p
2026-08-17 03:50:33.696235: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:50:33.696609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:50:33.696669: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:50:33.696865: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:50:33.696918: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:50:33.696988: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:50:33.697039: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:52:33.920107: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:52:33.920396: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:52:33.920463: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:52:33.920613: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:52:33.920652: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:52:33.920674: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:52:33.920692: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:54:34.151974: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:54:34.152237: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:54:34.152268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:54:34.152392: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:54:34.152432: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:54:34.152450: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:54:34.152464: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:55:00.266864: --------------- PredBat - update at 2026-08-17 03:55:00+01:00 with clock skew 0 minutes, minutes now 235
2026-08-17 03:55:00.267870: Saved current settings to /config/predbat_config.json
2026-08-17 03:55:00.268097: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 03:55:00.268731: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 03:55:00.268896: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 03:55:00.294223: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 03:55:00.294373: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 03:55:00.294546: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 03:55:00.295088: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 03:55:00.295233: Predbat mode is set to Control charge & discharge
2026-08-17 03:55:00.525047: Found 21602 load_today datapoints going back 28 days
2026-08-17 03:55:00.525264: Using load_power data to fill gaps in load_today data
2026-08-17 03:55:01.393824: Processing 721 30-minute periods for power integration
2026-08-17 03:55:01.579574: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 03:55:01.579738: Car charging hold False, threshold 6.0kWh
2026-08-17 03:55:01.579786: Current data so far today: load 2.3kWh, import 3.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 03:55:01.594561: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 03:55:01.594664: Cars: SoC: [51.568000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 03:55:01.595411: Standing charge is set to 46.63p
2026-08-17 03:55:01.709988: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.710291: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.710497: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.710693: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.710873: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.711068: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.711271: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.711444: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.711613: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.711780: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.711945: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 03:55:01.712202: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 8.0, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:55:01.712296: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:55:01.712372: Octopus: Intelligent slot at 08-17 03:30:00-08-17 05:00:00, assumed price 33.75, amount 11.1, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:55:01.712536: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.5, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 03:55:01.712595: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 03:55:01.717878: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 03:55:01.718280: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 03:55:01.761918: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 03:55:01.762060: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 03:55:01.763276: High export rate found rates in range 99p to -99p
2026-08-17 03:55:01.790069: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 03:55:01.790193: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 03:55:01.790255: Car 0 charging plan is: [{'start': 210, 'end': 300, 'kwh': 11.1, 'average': 8.0, 'cost': 88.8, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.5, 'average': 8.0, 'cost': 4.0, 'soc': 58.6, 'octopus': True}]
2026-08-17 03:55:01.804818: Battery level now 11.37kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 5.55p, change today 6.05p, rate_forward 6.87p
2026-08-17 03:55:01.805214: Last hour: net energy 1.5kWh, import 1.5kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 12.0p, import 12.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 03:55:01.861528: Today's energy total net 3.4kWh, import 3.4kWh, export 0.0kWh, cost 73.83p, import 27.2p, export 0.0p, carbon 0.0kg
2026-08-17 03:55:01.861664: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:55:01.944863: Using weighted-bucket historical load forecast over 14 days
2026-08-17 03:55:01.972250: Today's load divergence 95.4%, in-day adjustment 72.82%, damping 0.95x, yesterday 68.37% today 95.63% blend 83.68%
2026-08-17 03:55:01.972809: Today's predicted so far 2.99kWh with 0.0kWh car/iBoost excluded, 1.51kWh import ignored, and 2.99kWh forecast extra.
2026-08-17 03:55:01.972868: Today's actual load so far 2.28kWh with 0.0kWh car/iBoost excluded, and 1.51kWh import ignored.
2026-08-17 03:55:02.012257: Inverter 0: Type SK Sunsynk
2026-08-17 03:55:02.012436: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:55:02.012972: Reserve min: 7%, battery_min: 7%
2026-08-17 03:55:02.013072: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:55:02.013333: Inverter 0 SoC: 12.06kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power -4507W, current battery voltage 51.2V, grid power -5367W, load power 371W, PV Power 0W
2026-08-17 03:55:02.013478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:55:02.013557: Inverter 0 scheduled charge enable is True
2026-08-17 03:55:02.013604: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:55:02.013711: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:55:02.013822: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:55:02.013852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:55:02.013885: Inverter 0 scheduled discharge enable is False
2026-08-17 03:55:02.013992: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:55:02.014022: Inverter 0 discharge windows currently []
2026-08-17 03:55:02.014056: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:55:02.014071: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:55:02.014088: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:55:02.090115: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 03:55:02.090249: Plan was last updated on 2026-08-17 03:45:00+01:00 and is now 10.0 minutes old
2026-08-17 03:55:02.090559: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 03:55:02.090642: Best export window [ ]
2026-08-17 03:55:02.091538: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:55:02.094768: Load divergence over 8.0 hours mean 561.63W, min 260.4W, max 1688.4W, std dev 344.13W, divergence 30.64%
2026-08-17 03:55:02.116820: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 03:55:02.117014: LoadML is_calculating False
2026-08-17 03:55:02.117140: Creating pool of 12 processes to match your CPU count
2026-08-17 03:55:02.263858: predict base end_record 08-18 04:10:00, final soc 16.0kWh, metric 267.91p, metric_keep 0kWh, min_soc 6.37kWh @ 08-17 23:55:00, load 15.12kWh, PV 0.0kWh
2026-08-17 03:55:02.415626: Battery has 48.0 hours left - now at 12.06kWh
2026-08-17 03:55:02.458887: predict base10 end_record 08-18 04:10:00, final soc 16.0kWh, metric 273.31p, metric_keep 0kWh, min_soc 5.92kWh @ 08-17 23:55:00, load 15.73kWh, PV 0.0kWh
2026-08-17 03:55:02.543014: predict best10 end_record 08-18 04:10:00, final soc 1.94kWh, metric 155.98p, metric_keep 1.83kWh, min_soc 1.29kWh @ 08-18 03:55:00, load 15.73kWh, PV 0.0kWh
2026-08-17 03:55:02.632016: predict best end_record 08-18 04:10:00, final soc 2.88kWh, metric 158.51p, metric_keep 0kWh, min_soc 2.1kWh @ 08-18 03:55:00, load 15.12kWh, PV 0.0kWh
2026-08-17 03:55:02.632141: Saving plan best values to HA entities
2026-08-17 03:55:02.809463: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:55:02.814811: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:55:02.820093: Best charging limit SoC's [16.0, 12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.75kWh, house 0kWh, export 0.0kWh, metric 158.51p, metric10 155.98p
2026-08-17 03:55:02.899459: Marginal costs baseline metric (no standing charge): 111.8726
2026-08-17 03:55:03.143344: Marginal energy costs matrix computed: min=1.49 max=26.21
2026-08-17 03:55:03.201256: Rate array import [{'start': 235, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1690, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 235, 'end': 1690, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:55:03.201652: - Your estimated bill for today is £1.05 and tomorrow is £2.83
2026-08-17 03:55:03.201719: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:55:03.201743: - The battery is currently at 75% and is charging to 79% for the next 5 minutes.
2026-08-17 03:55:03.201758: - For the next 48 hours there will be no solar generation.
2026-08-17 03:55:03.201772: - You will reach a minimum of 13% battery in 24 hours.
2026-08-17 03:55:03.201786: - Your car is currently charging.
2026-08-17 03:55:03.201800:
2026-08-17 03:55:03.255093: Plan calculation took 1.16 seconds
2026-08-17 03:55:03.257762: No high rate period found
2026-08-17 03:55:03.307624: Import threshold used for optimisation was 8.0p
2026-08-17 03:55:03.363529: Low import rate windows [0: 08-17 03:30:00 - 08-17 04:00:00 @ 8.0, 1: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 2: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 3: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 4: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 5: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 6: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 7: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 8: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 9: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 10: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 11: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 12: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 13: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 14: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 15: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 16: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 17: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 18: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 19: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 20: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 21: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 22: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 23: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 24: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 25: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0]
2026-08-17 03:55:03.369829: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:55:03.369955: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 75%, target 100%
2026-08-17 03:55:03.370175: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:55:03.370395: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:55:03.370651: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:55:03.370754: No export window planned
2026-08-17 03:55:03.370865: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 03:55:03.370900: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:55:03.371058: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:55:03.371181: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:55:03.371217: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:55:03.371284: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:55:03.371388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371625: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371664: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371690: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371726: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371756: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371793: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371819: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371961: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.371986: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.372010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.372062: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.372198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:03.372241: Inverter 0 count register writes 0
2026-08-17 03:55:03.389654: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 03:55:03.389843: Recompute is saving previous plan...
2026-08-17 03:55:03.390873: Best charge window [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 03:55:03.390927: Best export window [ ]
2026-08-17 03:55:03.391771: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 03:55:03.395157: Load divergence over 8.0 hours mean 561.63W, min 260.4W, max 1688.4W, std dev 344.13W, divergence 30.64%
2026-08-17 03:55:03.413595: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 03:55:03.413750: LoadML is_calculating False
2026-08-17 03:55:03.413833: Creating pool of 12 processes to match your CPU count
2026-08-17 03:55:03.516290: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 03:55:03.517157: Optimise levels pass started at 2026-08-17 03:55:03
2026-08-17 03:55:03.517220: Optimise all windows, total charge 25 export 1
2026-08-17 03:55:04.130877: >> Region optimisation pass width 960 gives best_metric 243.12p, best_cost 239.4p, best_cycle 36.83kWh, best_import 20.7kWh
2026-08-17 03:55:04.307208: >> Region optimisation pass width 480 gives best_metric 243.12p, best_cost 239.4p, best_cycle 36.83kWh, best_import 20.7kWh
2026-08-17 03:55:04.889897: >> Region optimisation pass width 240 gives best_metric 236.01p, best_cost 247.11p, best_cycle 39.77kWh, best_import 21.66kWh
2026-08-17 03:55:05.429683: >> Region optimisation pass width 120 gives best_metric 236.01p, best_cost 247.11p, best_cycle 39.77kWh, best_import 21.66kWh
2026-08-17 03:55:05.430148: Calculated end_record as 08-18 04:00:00 based on best_price 8.0p, next_charge_start 08-17 04:00:00, max_windows 14
2026-08-17 03:55:05.430282: Optimise levels pass ended at 2026-08-17 03:55:05, duration 1.9 seconds tried 68 combinations
2026-08-17 03:55:05.430427: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 236.01p, best_keep 0.08kWh, best_cycle 39.77kWh, best_carbon 0kg, best_import 21.66kWh
2026-08-17 03:55:05.451430: Starting detailed optimisation end_record 08-18 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 03:55:07.995830: Tweak plan optimisation started metric 90.7p, cost 102.07p
2026-08-17 03:55:08.317875: Tweak optimisation finished metric 90.32p, cost 103.51p, metric_keep 0kWh, cycle 13.93kWh, carbon 0kg, import 3.71kWh, changed 8 window(s)
2026-08-17 03:55:08.340686: Swap charge optimisation started metric 90.32p, cost 103.51p, min_improvement_swap 0.1p
2026-08-17 03:55:08.790340: Swap charge optimisation finished metric 90.32p, cost 103.51p
2026-08-17 03:55:08.875901: Raw charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 81%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 31%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 31%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:55:08.876566: Unclipped charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 31%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:55:08.876881: Unfiltered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 31%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:55:08.877281: Filtered charge windows [ 17-08 03:30:00 - 17-08 04:00:00 @ 8.0p 100%, 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 31%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 03:55:08.918072: Previous plan best metric is 90.75 (cost 104.57) and new plan best metric is 90.32 (cost 103.51)
2026-08-17 03:55:08.918333: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 03:55:08.918538: Plan valid is now true after recompute was False
2026-08-17 03:55:08.952777: predict base end_record 08-18 04:00:00, final soc 16.0kWh, metric 267.28p, metric_keep 0kWh, min_soc 6.37kWh @ 08-17 23:55:00, load 15.04kWh, PV 0.0kWh
2026-08-17 03:55:09.079455: Battery has 48.0 hours left - now at 12.06kWh
2026-08-17 03:55:09.128526: predict base10 end_record 08-18 04:00:00, final soc 16.0kWh, metric 272.64p, metric_keep 0kWh, min_soc 5.92kWh @ 08-17 23:55:00, load 15.65kWh, PV 0.0kWh
2026-08-17 03:55:09.208778: predict best10 end_record 08-18 04:00:00, final soc 1.29kWh, metric 149.76p, metric_keep 1.68kWh, min_soc 1.29kWh @ 08-18 03:55:00, load 15.65kWh, PV 0.0kWh
2026-08-17 03:55:09.299835: predict best end_record 08-18 04:00:00, final soc 2.1kWh, metric 151.2p, metric_keep 0kWh, min_soc 2.1kWh @ 08-18 03:55:00, load 15.04kWh, PV 0.0kWh
2026-08-17 03:55:09.299942: Saving plan best values to HA entities
2026-08-17 03:55:09.487630: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 03:55:09.495285: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 03:55:09.502751: Best charging limit SoC's [16.0, 12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 3.84kWh, house 0kWh, export 0.0kWh, metric 151.2p, metric10 149.76p
2026-08-17 03:55:09.584733: Marginal costs baseline metric (no standing charge): 104.5675
2026-08-17 03:55:09.890367: Marginal energy costs matrix computed: min=1.49 max=26.21
2026-08-17 03:55:09.972714: Rate array import [{'start': 235, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 235, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 03:55:09.973268: - Your estimated bill for today is £1.05 and tomorrow is £2.83
2026-08-17 03:55:09.973336: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 03:55:09.973378: - The battery is currently at 75% and is charging to 79% for the next 5 minutes.
2026-08-17 03:55:09.973413: - For the next 48 hours there will be no solar generation.
2026-08-17 03:55:09.973446: - You will reach a minimum of 13% battery in 24 hours.
2026-08-17 03:55:09.973478: - Your car is currently charging.
2026-08-17 03:55:09.973518:
2026-08-17 03:55:10.022887: Plan calculation took 6.63 seconds
2026-08-17 03:55:10.023260: Inverter 0: Type SK Sunsynk
2026-08-17 03:55:10.023309: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 03:55:10.023568: Reserve min: 7%, battery_min: 7%
2026-08-17 03:55:10.023649: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 03:55:10.023995: Inverter 0 SoC: 12.06kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power -4507W, current battery voltage 51.2V, grid power -5367W, load power 371W, PV Power 0W
2026-08-17 03:55:10.024259: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:55:10.024372: Inverter 0 scheduled charge enable is True
2026-08-17 03:55:10.024420: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 03:55:10.024561: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 03:55:10.024718: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:55:10.024766: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:55:10.024805: Inverter 0 scheduled discharge enable is False
2026-08-17 03:55:10.024969: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:55:10.025014: Inverter 0 discharge windows currently []
2026-08-17 03:55:10.025061: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:55:10.025084: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:55:10.025107: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:55:10.078213: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 03:30:00
2026-08-17 03:55:10.078345: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 75%, target 100%
2026-08-17 03:55:10.078510: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 03:55:10.078733: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:55:10.078981: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:55:10.079109: No export window planned
2026-08-17 03:55:10.079286: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 03:55:10.079330: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 03:55:10.079511: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 03:55:10.079655: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 03:55:10.079707: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 03:55:10.079779: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 03:55:10.079959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080221: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080335: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080407: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080447: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080478: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080507: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080539: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080569: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080619: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 03:55:10.080863: Inverter 0 count register writes 0
2026-08-17 03:55:10.101778: Total inverter register writes now 850
2026-08-17 03:55:10.137923: Info: Completed run status Charging
2026-08-17 03:55:10.144746: Info: record_status Charging target 75%-100.0%
2026-08-17 03:55:10.151729: Saved current settings to /config/predbat_config.json
2026-08-17 03:55:10.152100: Compare, best tariff: current metric 104.68p
2026-08-17 03:55:49.274198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:55:49.274477: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:55:49.274519: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:55:49.274656: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:55:49.274697: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:55:49.274719: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:55:49.274737: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 03:56:14.083564: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 03:56:15.042899: Processing 1345 30-minute periods for power integration
2026-08-17 03:56:15.146820: ML Component: Car charging hold False, car energy reported load False
2026-08-17 03:56:15.256867: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 03:56:15.372464: ML Temperature data points: 50166
2026-08-17 03:56:15.649657: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 03:56:15.691992: ML Component: Data fetch completed, load data age 58.0 days, 16871 data points
2026-08-17 03:56:15.692175: ML Component: No training needed, model age is 1.07 hours
2026-08-17 03:56:15.692284: ML Component: Generating predictions load data age 58.0 days, 16871 data points
2026-08-17 03:56:15.826734: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0159 max_dow {0: 0.08525277777612211, 1: 0.10017499963007867, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 03:56:16.596210: ML Component: Generated 576 predictions (total 23.95 kWh over 48h)
2026-08-17 03:56:16.632613: ML Component: Prediction cycle completed
2026-08-17 03:56:16.738658: ML Component: Saved 16871 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 03:58:03.960461: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 03:58:03.960745: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 03:58:03.960811: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 03:58:03.961033: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 03:58:03.961080: Note: Inverter does not support discharge freeze - disabled
2026-08-17 03:58:03.961101: Note: Inverter does not support charge freeze - disabled
2026-08-17 03:58:03.961119: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:00:00.183747: --------------- PredBat - update at 2026-08-17 04:00:00+01:00 with clock skew 0 minutes, minutes now 240
2026-08-17 04:00:00.184521: Saved current settings to /config/predbat_config.json
2026-08-17 04:00:00.184664: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 04:00:00.184789: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:00:00.184871: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:00:00.213344: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:00:00.213478: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:00:00.213652: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:00:00.214206: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:00:00.214329: Predbat mode is set to Control charge & discharge
2026-08-17 04:00:00.444678: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:00:00.445089: Using load_power data to fill gaps in load_today data
2026-08-17 04:00:01.451809: Processing 721 30-minute periods for power integration
2026-08-17 04:00:01.664179: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:00:01.664340: Car charging hold False, threshold 6.0kWh
2026-08-17 04:00:01.664412: Current data so far today: load 2.42kWh, import 4.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:00:01.686161: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:00:01.686295: Cars: SoC: [52.154]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:00:01.687374: Standing charge is set to 46.63p
2026-08-17 04:00:01.831049: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.831476: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.831804: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.832122: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.832490: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.832801: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.833178: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.833519: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.833750: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.834305: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.834650: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:00:01.835062: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:00:01.835386: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:00:01.835553: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:00:01.835896: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:00:01.836019: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:00:01.845501: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:00:01.846073: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:00:01.934585: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:00:01.935220: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:00:01.937588: High export rate found rates in range 99p to -99p
2026-08-17 04:00:01.978430: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:00:01.978685: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:00:01.978775: Car 0 charging plan is: [{'start': 240, 'end': 300, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:00:02.005416: Battery level now 12.06kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 10.28p, change today 10.78p, rate_forward 6.87p
2026-08-17 04:00:02.005941: Last hour: net energy 2.38kWh, import 2.38kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 19.0p, import 19.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:00:02.086824: Today's energy total net 4.3kWh, import 4.3kWh, export 0.0kWh, cost 81.03p, import 34.4p, export 0.0p, carbon 0.0kg
2026-08-17 04:00:02.086962: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:00:02.173472: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:00:02.197833: Today's load divergence 95.59%, in-day adjustment 72.94%, damping 0.95x, yesterday 68.37% today 95.81% blend 83.33%
2026-08-17 04:00:02.197937: Today's predicted so far 3.11kWh with 0.0kWh car/iBoost excluded, 2.29kWh import ignored, and 3.11kWh forecast extra.
2026-08-17 04:00:02.197969: Today's actual load so far 2.42kWh with 0.0kWh car/iBoost excluded, and 2.29kWh import ignored.
2026-08-17 04:00:02.243922: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -11.1, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.5, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]]
2026-08-17 04:00:02.244798: Sensor changes require a replan, will recompute the plan
2026-08-17 04:00:02.245114: Inverter 0: Type SK Sunsynk
2026-08-17 04:00:02.245196: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:00:02.245481: Reserve min: 7%, battery_min: 7%
2026-08-17 04:00:02.245623: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:00:02.246130: Inverter 0 SoC: 12.42kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power -4511W, current battery voltage 51.2V, grid power -5369W, load power 373W, PV Power 0W
2026-08-17 04:00:02.246427: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:00:02.246582: Inverter 0 scheduled charge enable is True
2026-08-17 04:00:02.246671: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:00:02.246851: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 04:00:02.247102: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:00:02.247167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:00:02.247232: Inverter 0 scheduled discharge enable is False
2026-08-17 04:00:02.247459: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:00:02.247519: Inverter 0 discharge windows currently []
2026-08-17 04:00:02.247561: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:00:02.247595: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:00:02.247636: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:00:02.363648: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:00:02.363749: Will recompute the plan as it is invalid
2026-08-17 04:00:02.363795: Current charge window has expired, removing it
2026-08-17 04:00:02.363887: Recompute is saving previous plan...
2026-08-17 04:00:02.364849: Best charge window [ 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 100%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 100%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 100%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 100%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 04:00:02.364902: Best export window [ ]
2026-08-17 04:00:02.365790: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:00:02.369054: Load divergence over 8.0 hours mean 564.21W, min 262.2W, max 1598.4W, std dev 339.53W, divergence 30.09%
2026-08-17 04:00:02.391671: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:00:02.391843: LoadML is_calculating False
2026-08-17 04:00:02.391933: Creating pool of 12 processes to match your CPU count
2026-08-17 04:00:02.529547: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 04:00:02.530626: Optimise levels pass started at 2026-08-17 04:00:02
2026-08-17 04:00:02.530716: Optimise all windows, total charge 25 export 1
2026-08-17 04:00:03.287078: >> Region optimisation pass width 960 gives best_metric 247.93p, best_cost 243.93p, best_cycle 36.49kWh, best_import 20.36kWh
2026-08-17 04:00:03.461819: >> Region optimisation pass width 480 gives best_metric 247.93p, best_cost 243.93p, best_cycle 36.49kWh, best_import 20.36kWh
2026-08-17 04:00:04.095549: >> Region optimisation pass width 240 gives best_metric 240.67p, best_cost 250.7p, best_cycle 39.53kWh, best_import 21.21kWh
2026-08-17 04:00:04.730884: >> Region optimisation pass width 120 gives best_metric 240.67p, best_cost 250.7p, best_cycle 39.53kWh, best_import 21.21kWh
2026-08-17 04:00:04.731141: Calculated end_record as 08-18 04:00:00 based on best_price 8.0p, next_charge_start 08-17 04:00:00, max_windows 13
2026-08-17 04:00:04.731219: Optimise levels pass ended at 2026-08-17 04:00:04, duration 2.2 seconds tried 69 combinations
2026-08-17 04:00:04.731289: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 240.67p, best_keep 0.29kWh, best_cycle 39.53kWh, best_carbon 0kg, best_import 21.21kWh
2026-08-17 04:00:04.751883: Starting detailed optimisation end_record 08-18 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 04:00:09.226272: Tweak plan optimisation started metric 94.85p, cost 107.94p
2026-08-17 04:00:09.631726: Tweak optimisation finished metric 93.99p, cost 107.03p, metric_keep 0kWh, cycle 12.61kWh, carbon 0kg, import 3.25kWh, changed 8 window(s)
2026-08-17 04:00:09.655826: Swap charge optimisation started metric 93.99p, cost 107.03p, min_improvement_swap 0.1p
2026-08-17 04:00:10.186534: Swap charge optimisation finished metric 93.99p, cost 107.03p
2026-08-17 04:00:10.289883: Raw charge windows [ 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 16%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:00:10.290352: Unclipped charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:00:10.290661: Unfiltered charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:00:10.290931: Filtered charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:00:10.330713: Previous plan best metric is 94.93 (cost 108.16) and new plan best metric is 93.99 (cost 107.03)
2026-08-17 04:00:10.330975: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 04:00:10.331233: Plan valid is now true after recompute was False
2026-08-17 04:00:10.362008: predict base end_record 08-18 04:00:00, final soc 16.0kWh, metric 271.44p, metric_keep 0kWh, min_soc 6.42kWh @ 08-17 23:55:00, load 15.18kWh, PV 0.0kWh
2026-08-17 04:00:10.731455: Battery has 48.0 hours left - now at 12.42kWh
2026-08-17 04:00:10.858521: predict base10 end_record 08-18 04:00:00, final soc 16.0kWh, metric 276.82p, metric_keep 0kWh, min_soc 5.96kWh @ 08-17 23:55:00, load 15.79kWh, PV 0.0kWh
2026-08-17 04:00:10.963436: predict best10 end_record 08-18 04:00:00, final soc 1.18kWh, metric 153.21p, metric_keep 2.15kWh, min_soc 1.18kWh @ 08-18 03:55:00, load 15.79kWh, PV 0.0kWh
2026-08-17 04:00:11.073059: predict best end_record 08-18 04:00:00, final soc 2.01kWh, metric 154.79p, metric_keep 0kWh, min_soc 2.01kWh @ 08-18 03:55:00, load 15.18kWh, PV 0.0kWh
2026-08-17 04:00:11.073194: Saving plan best values to HA entities
2026-08-17 04:00:11.292205: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:00:11.299721: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:00:11.306566: Best charging limit SoC's [12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 3.39kWh, house 0kWh, export 0.0kWh, metric 154.79p, metric10 153.21p
2026-08-17 04:00:11.392405: Marginal costs baseline metric (no standing charge): 108.1581
2026-08-17 04:00:11.694256: Marginal energy costs matrix computed: min=1.52 max=26.33
2026-08-17 04:00:11.762444: Rate array import [{'start': 240, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 240, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:00:11.762896: - Your estimated bill for today is £1.08 and tomorrow is £2.85
2026-08-17 04:00:11.762943: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:00:11.762965: - The battery is currently at 78% and is charging to 78% for the next 1 and a half hours.
2026-08-17 04:00:11.763006: - For the next 48 hours there will be no solar generation.
2026-08-17 04:00:11.763040: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:00:11.763057: - Your car is currently charging.
2026-08-17 04:00:11.763071:
2026-08-17 04:00:11.815120: Plan calculation took 9.45 seconds
2026-08-17 04:00:11.820221: Saved plan to storage
2026-08-17 04:00:11.823697: No high rate period found
2026-08-17 04:00:11.871860: Import threshold used for optimisation was 8.0p
2026-08-17 04:00:11.927183: Low import rate windows [0: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 1: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 2: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 3: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 4: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 5: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 6: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 7: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 8: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 9: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 10: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 11: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 12: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 13: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 14: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 15: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0]
2026-08-17 04:00:11.936607: Inverter 0: Type SK Sunsynk
2026-08-17 04:00:11.936699: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:00:11.937050: Reserve min: 7%, battery_min: 7%
2026-08-17 04:00:11.937150: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:00:11.937518: Inverter 0 SoC: 12.42kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power -4511W, current battery voltage 51.2V, grid power -5369W, load power 373W, PV Power 0W
2026-08-17 04:00:11.937778: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:00:11.937893: Inverter 0 scheduled charge enable is True
2026-08-17 04:00:11.937941: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:00:11.938068: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 100.0%, power 5.0kW
2026-08-17 04:00:11.938208: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:00:11.938250: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:00:11.938290: Inverter 0 scheduled discharge enable is False
2026-08-17 04:00:11.938423: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:00:11.938462: Inverter 0 discharge windows currently []
2026-08-17 04:00:11.938485: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:00:11.938509: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:00:11.938527: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:00:12.000999: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:00:12.001134: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:00:12.001265: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:00:12.001357: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:00:12.001475: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:00:12.001664: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:00:12.001768: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-17 04:00:17.008734: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-17 04:00:22.018058: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-17 04:00:22.018245: No export window planned
2026-08-17 04:00:22.018468: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:00:22.019151: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:00:22.019476: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:00:22.019650: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:00:22.019776: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.06kWh and this battery needs to add 0.06kWh to get to 12.48kWh
2026-08-17 04:00:22.019944: Inverter 0 Current charge limit is 100% and new target is 78%
2026-08-17 04:00:27.128141: Inverter 0 write_and_poll_value: Wrote 78 to charge_limit, successfully now 78.0
2026-08-17 04:00:27.128506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:27.128604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:27.128638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:27.128664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:27.128696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:27.128721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:27.128755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:27.128813: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 04:00:28.222037: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 04:00:28.233613: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 04:00:28.337668: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 04:00:28.441145: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 04:00:28.504391: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 04:00:28.608319: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-17 04:00:28.712235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:28.712338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:28.712372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:28.712399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:28.712424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:28.712449: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:28.712473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:00:28.712506: Inverter 0 count register writes 2
2026-08-17 04:00:28.739540: Total inverter register writes now 852
2026-08-17 04:00:28.776502: Info: Completed run status Hold charging
2026-08-17 04:00:29.087275: Info: record_status Hold charging target 78%-78%
2026-08-17 04:00:29.094170: Saved current settings to /config/predbat_config.json
2026-08-17 04:00:29.094491: Compare, best tariff: current metric 104.68p
2026-08-17 04:01:04.218996: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:01:04.219348: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:01:04.219394: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:01:04.219573: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:01:04.219624: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:01:04.219654: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:01:04.219681: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:03:18.487234: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:03:18.487527: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:03:18.487572: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:03:18.487735: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:03:18.487777: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:03:18.487820: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:03:18.487838: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:05:00.704444: --------------- PredBat - update at 2026-08-17 04:05:00+01:00 with clock skew 0 minutes, minutes now 245
2026-08-17 04:05:00.705288: Saved current settings to /config/predbat_config.json
2026-08-17 04:05:00.705423: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 04:05:00.705558: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:05:00.705667: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:05:00.729505: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:05:00.729673: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:05:00.729914: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:05:00.730583: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:05:00.730767: Predbat mode is set to Control charge & discharge
2026-08-17 04:05:00.946650: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:05:00.946831: Using load_power data to fill gaps in load_today data
2026-08-17 04:05:01.863167: Processing 721 30-minute periods for power integration
2026-08-17 04:05:02.059379: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:05:02.059525: Car charging hold False, threshold 6.0kWh
2026-08-17 04:05:02.059568: Current data so far today: load 2.45kWh, import 4.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:05:02.075338: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:05:02.075440: Cars: SoC: [52.74]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:05:02.076194: Standing charge is set to 46.63p
2026-08-17 04:05:02.202120: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.202429: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.202645: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.202845: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.203056: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.203246: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.203433: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.203615: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.203793: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.203988: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.204293: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:05:02.204766: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:05:02.205087: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:05:02.205297: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:05:02.205605: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:05:02.205699: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:05:02.211362: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:05:02.212127: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:05:02.260137: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:05:02.260825: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:05:02.263098: High export rate found rates in range 99p to -99p
2026-08-17 04:05:02.290133: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:05:02.290288: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:05:02.290365: Car 0 charging plan is: [{'start': 240, 'end': 300, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:05:02.305428: Battery level now 12.42kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 12.76p, change today 13.25p, rate_forward 6.87p
2026-08-17 04:05:02.305780: Last hour: net energy 2.35kWh, import 2.35kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 18.8p, import 18.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:05:02.369444: Today's energy total net 4.3kWh, import 4.3kWh, export 0.0kWh, cost 81.03p, import 34.4p, export 0.0p, carbon 0.0kg
2026-08-17 04:05:02.369608: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:05:02.435312: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:05:02.454324: Today's load divergence 95.28%, in-day adjustment 72.99%, damping 0.95x, yesterday 68.37% today 95.52% blend 82.99%
2026-08-17 04:05:02.454429: Today's predicted so far 3.19kWh with 0.0kWh car/iBoost excluded, 2.27kWh import ignored, and 3.19kWh forecast extra.
2026-08-17 04:05:02.454472: Today's actual load so far 2.46kWh with 0.0kWh car/iBoost excluded, and 2.27kWh import ignored.
2026-08-17 04:05:02.497281: Inverter 0: Type SK Sunsynk
2026-08-17 04:05:02.497395: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:05:02.497660: Reserve min: 7%, battery_min: 7%
2026-08-17 04:05:02.497790: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:05:02.498162: Inverter 0 SoC: 12.42kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -485W, load power 485W, PV Power 0W
2026-08-17 04:05:02.498387: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:05:02.498521: Inverter 0 scheduled charge enable is True
2026-08-17 04:05:02.498598: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:05:02.498754: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:05:02.498920: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:05:02.498977: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:05:02.499022: Inverter 0 scheduled discharge enable is False
2026-08-17 04:05:02.499194: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:05:02.499241: Inverter 0 discharge windows currently []
2026-08-17 04:05:02.499272: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:05:02.499317: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:05:02.499342: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:05:02.576299: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:05:02.576414: Plan was last updated on 2026-08-17 04:00:00+01:00 and is now 5.0 minutes old
2026-08-17 04:05:02.576670: Best charge window [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 04:05:02.576716: Best export window [ ]
2026-08-17 04:05:02.577856: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:05:02.581940: Load divergence over 8.0 hours mean 566.77W, min 271.2W, max 1525.8W, std dev 340.97W, divergence 30.08%
2026-08-17 04:05:02.607254: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:05:02.607426: LoadML is_calculating False
2026-08-17 04:05:02.607537: Creating pool of 12 processes to match your CPU count
2026-08-17 04:05:02.774357: predict base end_record 08-18 04:05:00, final soc 12.48kWh, metric 241.44p, metric_keep 0kWh, min_soc 2.93kWh @ 08-17 23:55:00, load 15.24kWh, PV 0.0kWh
2026-08-17 04:05:02.937341: Battery has 48.0 hours left - now at 12.42kWh
2026-08-17 04:05:02.991293: predict base10 end_record 08-18 04:05:00, final soc 12.48kWh, metric 246.82p, metric_keep 0kWh, min_soc 2.48kWh @ 08-17 23:55:00, load 15.85kWh, PV 0.0kWh
2026-08-17 04:05:03.080797: predict best10 end_record 08-18 04:05:00, final soc 1.45kWh, metric 155.81p, metric_keep 2.65kWh, min_soc 1.12kWh @ 08-18 03:55:00, load 15.85kWh, PV 0.0kWh
2026-08-17 04:05:03.178794: predict best end_record 08-18 04:05:00, final soc 2.35kWh, metric 157.98p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-18 03:55:00, load 15.24kWh, PV 0.0kWh
2026-08-17 04:05:03.178883: Saving plan best values to HA entities
2026-08-17 04:05:03.408184: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:05:03.414771: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:05:03.427254: Best charging limit SoC's [12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 3.79kWh, house 0kWh, export 0.0kWh, metric 157.98p, metric10 155.81p
2026-08-17 04:05:03.518516: Marginal costs baseline metric (no standing charge): 111.3498
2026-08-17 04:05:03.807056: Marginal energy costs matrix computed: min=1.94 max=26.39
2026-08-17 04:05:03.877857: Rate array import [{'start': 245, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1685, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 245, 'end': 1685, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:05:03.878327: - Your estimated bill for today is £1.08 and tomorrow is £2.86
2026-08-17 04:05:03.878375: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:05:03.878398: - The battery is currently at 78% and is charging to 78% for the next 1 and a half hours.
2026-08-17 04:05:03.878417: - For the next 48 hours there will be no solar generation.
2026-08-17 04:05:03.878435: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 04:05:03.878458: - Your car is currently charging.
2026-08-17 04:05:03.878475:
2026-08-17 04:05:03.935547: Plan calculation took 1.36 seconds
2026-08-17 04:05:03.939057: No high rate period found
2026-08-17 04:05:04.007356: Import threshold used for optimisation was 8.0p
2026-08-17 04:05:04.080622: Low import rate windows [0: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 1: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 2: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 3: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 4: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 5: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 6: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 7: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 8: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 9: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 10: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 11: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 12: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 13: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 14: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 15: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0]
2026-08-17 04:05:04.090058: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:05:04.090197: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:05:04.090449: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:05:04.090579: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:05:04.090860: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:05:04.091214: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:05:04.091388: No export window planned
2026-08-17 04:05:04.091588: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:05:04.091645: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:05:04.091861: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:05:04.092002: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:05:04.092115: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.06kWh and this battery needs to add 0.06kWh to get to 12.48kWh
2026-08-17 04:05:04.092221: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:05:04.092385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092467: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092573: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092657: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092777: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092853: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.092913: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093006: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093074: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093137: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093176: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093281: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:05:04.093658: Inverter 0 count register writes 0
2026-08-17 04:05:04.112496: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 04:05:04.120085: Total inverter register writes now 852
2026-08-17 04:05:04.157975: Info: Completed run status Hold charging
2026-08-17 04:05:04.180194: Info: record_status Hold charging target 78%-78%
2026-08-17 04:05:04.189617: Saved current settings to /config/predbat_config.json
2026-08-17 04:05:04.190021: Compare, best tariff: current metric 104.68p
2026-08-17 04:05:34.309893: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:05:34.310211: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:05:34.310255: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:05:34.310428: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:05:34.310474: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:05:34.310497: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:05:34.310515: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:07:48.562715: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:07:48.563174: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:07:48.563260: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:07:48.563552: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:07:48.563626: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:07:48.563667: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:07:48.563700: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:09:48.797043: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:09:48.797348: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:09:48.797393: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:09:48.797529: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:09:48.797593: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:09:48.797614: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:09:48.797633: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:10:00.893199: --------------- PredBat - update at 2026-08-17 04:10:00+01:00 with clock skew 0 minutes, minutes now 250
2026-08-17 04:10:00.893857: Saved current settings to /config/predbat_config.json
2026-08-17 04:10:00.893983: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 04:10:00.894063: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:10:00.894154: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:10:00.916891: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:10:00.917151: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:10:00.917370: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:10:00.917922: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:10:00.918139: Predbat mode is set to Control charge & discharge
2026-08-17 04:10:01.081787: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:10:01.081951: Using load_power data to fill gaps in load_today data
2026-08-17 04:10:01.820491: Processing 721 30-minute periods for power integration
2026-08-17 04:10:01.972979: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:10:01.973151: Car charging hold False, threshold 6.0kWh
2026-08-17 04:10:01.973193: Current data so far today: load 2.55kWh, import 4.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:10:01.987059: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:10:01.987165: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:10:01.987787: Standing charge is set to 46.63p
2026-08-17 04:10:02.094870: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.095664: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.095853: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.096032: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.096182: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.096365: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.096518: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.096658: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.096793: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.096930: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.097167: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:10:02.097372: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:10:02.097525: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:10:02.097596: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:10:02.097734: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:10:02.097783: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:10:02.102738: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:10:02.103241: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:10:02.149555: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:10:02.149668: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:10:02.150650: High export rate found rates in range 99p to -99p
2026-08-17 04:10:02.173481: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:10:02.173618: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:10:02.173741: Car 0 charging plan is: [{'start': 240, 'end': 300, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:10:02.188332: Battery level now 12.42kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 12.76p, change today 13.25p, rate_forward 6.87p
2026-08-17 04:10:02.189220: Last hour: net energy 2.93kWh, import 2.93kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 23.4p, import 23.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:10:02.233759: Today's energy total net 4.9kWh, import 4.9kWh, export 0.0kWh, cost 85.83p, import 39.2p, export 0.0p, carbon 0.0kg
2026-08-17 04:10:02.233901: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:10:02.295690: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:10:02.314558: Today's load divergence 95.76%, in-day adjustment 73.16%, damping 0.95x, yesterday 68.37% today 95.97% blend 82.64%
2026-08-17 04:10:02.314655: Today's predicted so far 3.19kWh with 0.0kWh car/iBoost excluded, 2.74kWh import ignored, and 3.19kWh forecast extra.
2026-08-17 04:10:02.314681: Today's actual load so far 2.53kWh with 0.0kWh car/iBoost excluded, and 2.74kWh import ignored.
2026-08-17 04:10:02.347956: Inverter 0: Type SK Sunsynk
2026-08-17 04:10:02.348040: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:10:02.348202: Reserve min: 7%, battery_min: 7%
2026-08-17 04:10:02.348269: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:10:02.348509: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -504W, load power 504W, PV Power 0W
2026-08-17 04:10:02.348643: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:10:02.348718: Inverter 0 scheduled charge enable is True
2026-08-17 04:10:02.348760: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:10:02.348836: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:10:02.348981: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:10:02.349028: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:10:02.349063: Inverter 0 scheduled discharge enable is False
2026-08-17 04:10:02.349178: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:10:02.349211: Inverter 0 discharge windows currently []
2026-08-17 04:10:02.349229: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:10:02.349245: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:10:02.349259: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:10:02.408726: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:10:02.408824: Plan was last updated on 2026-08-17 04:00:00+01:00 and is now 10.0 minutes old
2026-08-17 04:10:02.409109: Best charge window [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 34%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:00:00 @ 8.0p 100% ]
2026-08-17 04:10:02.409177: Best export window [ ]
2026-08-17 04:10:02.409808: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:10:02.412403: Load divergence over 8.0 hours mean 569.61W, min 292.2W, max 1566.6W, std dev 349.01W, divergence 30.64%
2026-08-17 04:10:02.428000: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:10:02.428129: LoadML is_calculating False
2026-08-17 04:10:02.428186: Creating pool of 12 processes to match your CPU count
2026-08-17 04:10:02.549842: predict base end_record 08-18 04:10:00, final soc 12.48kWh, metric 244.59p, metric_keep 0kWh, min_soc 3.03kWh @ 08-17 23:55:00, load 15.37kWh, PV 0.0kWh
2026-08-17 04:10:02.682731: Battery has 48.0 hours left - now at 12.64kWh
2026-08-17 04:10:02.726697: predict base10 end_record 08-18 04:10:00, final soc 12.48kWh, metric 249.98p, metric_keep 0kWh, min_soc 2.57kWh @ 08-17 23:55:00, load 15.97kWh, PV 0.0kWh
2026-08-17 04:10:02.851014: predict best10 end_record 08-18 04:10:00, final soc 1.92kWh, metric 162.96p, metric_keep 1.9kWh, min_soc 1.27kWh @ 08-18 03:55:00, load 15.97kWh, PV 0.0kWh
2026-08-17 04:10:02.942587: predict best end_record 08-18 04:10:00, final soc 2.78kWh, metric 164.77p, metric_keep 0kWh, min_soc 2.0kWh @ 08-18 03:55:00, load 15.37kWh, PV 0.0kWh
2026-08-17 04:10:02.942695: Saving plan best values to HA entities
2026-08-17 04:10:03.140715: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:10:03.147802: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:10:03.155073: Best charging limit SoC's [12.5, 5.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.04kWh, house 0kWh, export 0.0kWh, metric 164.77p, metric10 162.96p
2026-08-17 04:10:03.255187: Marginal costs baseline metric (no standing charge): 118.1363
2026-08-17 04:10:03.580177: Marginal energy costs matrix computed: min=2.26 max=26.04
2026-08-17 04:10:03.656088: Rate array import [{'start': 250, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1690, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 250, 'end': 1690, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:10:03.656756: - Your estimated bill for today is £1.11 and tomorrow is £2.85
2026-08-17 04:10:03.656835: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:10:03.656911: - The battery is currently at 79% and is charging to 78% for the next 1 and a quarter hours.
2026-08-17 04:10:03.656999: - For the next 48 hours there will be no solar generation.
2026-08-17 04:10:03.657083: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:10:03.657111: - Your car is currently charging.
2026-08-17 04:10:03.657146:
2026-08-17 04:10:03.706389: Plan calculation took 1.30 seconds
2026-08-17 04:10:03.709827: No high rate period found
2026-08-17 04:10:03.760490: Import threshold used for optimisation was 8.0p
2026-08-17 04:10:03.823243: Low import rate windows [0: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 1: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 2: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 3: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 4: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 5: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 6: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 7: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 8: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 9: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 10: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 11: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 12: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 13: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 14: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 15: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0]
2026-08-17 04:10:03.830543: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:10:03.830708: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 79%, target 78%
2026-08-17 04:10:03.830949: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:10:03.831067: Inverter 0 Hold charging as SoC 79% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:10:03.831240: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:10:03.831492: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:10:03.831602: No export window planned
2026-08-17 04:10:03.831725: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:10:03.831761: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:10:03.831895: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:10:03.832018: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-17 04:10:08.839185: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-17 04:10:18.994584: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-17 04:10:18.994792: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:10:18.994887: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 79% -> 78% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.48kWh
2026-08-17 04:10:18.995046: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:10:18.995230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995512: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995624: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995666: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995705: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995761: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995835: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995882: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.995927: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996057: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:18.996361: Inverter 0 count register writes 1
2026-08-17 04:10:19.017803: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 04:10:19.018009: Recompute is saving previous plan...
2026-08-17 04:10:19.019110: Best charge window [ 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 78%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 78%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 78%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 78%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 78%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 78%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 78%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 78%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 78%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 78%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 78%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 78%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 78%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 78%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 78%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 78%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 78%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 78%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 78% ]
2026-08-17 04:10:19.019174: Best export window [ ]
2026-08-17 04:10:19.020411: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:10:19.023635: Load divergence over 8.0 hours mean 569.61W, min 292.2W, max 1566.6W, std dev 349.01W, divergence 30.64%
2026-08-17 04:10:19.040202: Calculating data from yesterday for savings calculation
2026-08-17 04:10:19.052447: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1690, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 04:10:19.099884: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.92p, metric_keep 0kWh, min_soc 7.66kWh @ 08-17 23:25:00, load 11.44kWh, PV 0.0kWh
2026-08-17 04:10:19.117910: predict yesterday10 end_record 08-18 00:00:00, final soc 9.6kWh, metric 144.58p, metric_keep 0kWh, min_soc 7.66kWh @ 08-17 23:25:00, load 11.44kWh, PV 0.0kWh
2026-08-17 04:10:19.141262: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.92p, metric_keep 0kWh, min_soc 7.66kWh @ 08-17 23:25:00, load 11.44kWh, PV 0.0kWh
2026-08-17 04:10:19.167389: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.69 (adjusted £-1.71) with import 12.66kWh, export 0.0kWh, battery_cycle 16.72kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.62kWh
2026-08-17 04:10:19.236224: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 302.14p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.44kWh, PV 0.0kWh
2026-08-17 04:10:19.236429: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.15 (adjusted £0.52) with import 11.44kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 04:10:19.246493: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:10:19.246610: LoadML is_calculating False
2026-08-17 04:10:19.246687: Creating pool of 12 processes to match your CPU count
2026-08-17 04:10:19.342959: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 04:10:19.343694: Optimise levels pass started at 2026-08-17 04:10:19
2026-08-17 04:10:19.343740: Optimise all windows, total charge 25 export 1
2026-08-17 04:10:20.009304: >> Region optimisation pass width 960 gives best_metric 251.79p, best_cost 247.24p, best_cycle 36.32kWh, best_import 20.18kWh
2026-08-17 04:10:20.184686: >> Region optimisation pass width 480 gives best_metric 251.79p, best_cost 247.24p, best_cycle 36.32kWh, best_import 20.18kWh
2026-08-17 04:10:20.785965: >> Region optimisation pass width 240 gives best_metric 244.09p, best_cost 255.75p, best_cycle 39.76kWh, best_import 21.24kWh
2026-08-17 04:10:21.389028: >> Region optimisation pass width 120 gives best_metric 244.09p, best_cost 255.75p, best_cycle 39.76kWh, best_import 21.24kWh
2026-08-17 04:10:21.389238: Calculated end_record as 08-18 04:30:00 based on best_price 8.0p, next_charge_start 08-17 04:30:00, max_windows 14
2026-08-17 04:10:21.389299: Optimise levels pass ended at 2026-08-17 04:10:21, duration 2.0 seconds tried 72 combinations
2026-08-17 04:10:21.389391: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 244.09p, best_keep 0.03kWh, best_cycle 39.76kWh, best_carbon 0kg, best_import 21.24kWh
2026-08-17 04:10:21.406034: Starting detailed optimisation end_record 08-18 04:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 04:10:25.575686: Tweak plan optimisation started metric 99.08p, cost 112.04p
2026-08-17 04:10:25.916112: Tweak optimisation finished metric 98.52p, cost 111.47p, metric_keep 0kWh, cycle 11.46kWh, carbon 0kg, import 3.2kWh, changed 8 window(s)
2026-08-17 04:10:25.936500: Swap charge optimisation started metric 98.52p, cost 111.47p, min_improvement_swap 0.1p
2026-08-17 04:10:26.511244: Swap charge optimisation finished metric 98.52p, cost 111.47p
2026-08-17 04:10:26.595445: Raw charge windows [ 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 25%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:10:26.596161: Unclipped charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:10:26.596437: Unfiltered charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:10:26.596654: Filtered charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:10:26.628306: Previous plan best metric is 103.96 (cost 133.16) and new plan best metric is 98.52 (cost 111.47)
2026-08-17 04:10:26.628529: New plan metric is significantly better from previous plan, using new plan
2026-08-17 04:10:26.628565: Plan valid is now true after recompute was False
2026-08-17 04:10:26.654013: predict base end_record 08-18 04:30:00, final soc 12.48kWh, metric 246.28p, metric_keep 0kWh, min_soc 3.03kWh @ 08-17 23:55:00, load 15.58kWh, PV 0.0kWh
2026-08-17 04:10:26.773361: Battery has 48.0 hours left - now at 12.64kWh
2026-08-17 04:10:26.813118: predict base10 end_record 08-18 04:30:00, final soc 12.48kWh, metric 251.76p, metric_keep 0kWh, min_soc 2.57kWh @ 08-17 23:55:00, load 16.2kWh, PV 0.0kWh
2026-08-17 04:10:26.878942: predict best10 end_record 08-18 04:30:00, final soc 2.0kWh, metric 163.56p, metric_keep 0.01kWh, min_soc 1.97kWh @ 08-18 03:55:00, load 16.2kWh, PV 0.0kWh
2026-08-17 04:10:26.963296: predict best end_record 08-18 04:30:00, final soc 2.0kWh, metric 158.1p, metric_keep 0kWh, min_soc 2.0kWh @ 08-18 03:55:00, load 15.58kWh, PV 0.0kWh
2026-08-17 04:10:26.963395: Saving plan best values to HA entities
2026-08-17 04:10:27.118873: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:10:27.123727: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:10:27.128541: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.2kWh, house 0kWh, export 0.0kWh, metric 158.1p, metric10 163.56p
2026-08-17 04:10:27.202250: Marginal costs baseline metric (no standing charge): 111.4674
2026-08-17 04:10:27.453267: Marginal energy costs matrix computed: min=8.0 max=27.15
2026-08-17 04:10:27.514064: Rate array import [{'start': 250, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1710, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 250, 'end': 1710, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:10:27.514484: - Your estimated bill for today is £0.94 and tomorrow is £3.54
2026-08-17 04:10:27.514529: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:10:27.514547: - The battery is currently at 79% and is charging to 78% for the next 1 and a quarter hours.
2026-08-17 04:10:27.514562: - For the next 48 hours there will be no solar generation.
2026-08-17 04:10:27.514576: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:10:27.514590: - Your car is currently charging.
2026-08-17 04:10:27.514604:
2026-08-17 04:10:27.566534: Plan calculation took 8.55 seconds
2026-08-17 04:10:27.567071: Inverter 0: Type SK Sunsynk
2026-08-17 04:10:27.567134: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:10:27.567455: Reserve min: 7%, battery_min: 7%
2026-08-17 04:10:27.567563: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:10:27.568044: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 486W, current battery voltage 51.2V, grid power -51W, load power 547W, PV Power 0W
2026-08-17 04:10:27.568352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:10:27.568490: Inverter 0 scheduled charge enable is True
2026-08-17 04:10:27.568562: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:10:27.568691: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:10:27.568855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:10:27.568906: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:10:27.568997: Inverter 0 scheduled discharge enable is False
2026-08-17 04:10:27.569208: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:10:27.569258: Inverter 0 discharge windows currently []
2026-08-17 04:10:27.569290: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:10:27.569323: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:10:27.569348: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:10:27.636319: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:10:27.636458: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 79%, target 78%
2026-08-17 04:10:27.636596: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:10:27.636686: Inverter 0 Hold charging as SoC 79% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:10:27.636808: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:10:27.637058: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:10:27.637153: No export window planned
2026-08-17 04:10:27.637271: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:10:27.637307: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:10:27.637475: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:10:27.637590: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:10:27.637658: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 79% -> 78% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.48kWh
2026-08-17 04:10:27.637710: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:10:27.637815: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.637863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.637899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.637945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.637982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638085: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638118: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638144: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638173: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638205: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638236: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638261: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638436: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:10:27.638510: Inverter 0 count register writes 0
2026-08-17 04:10:27.663141: Total inverter register writes now 853
2026-08-17 04:10:27.701967: Info: Completed run status Hold charging
2026-08-17 04:10:27.709218: Info: record_status Hold charging target 79%-78%
2026-08-17 04:10:27.716649: Saved current settings to /config/predbat_config.json
2026-08-17 04:10:27.717028: Compare, best tariff: current metric 104.68p
2026-08-17 04:11:03.835542: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:11:03.835826: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:11:03.835862: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:11:03.836039: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:11:03.836080: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:11:03.836102: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:11:03.836120: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:13:04.072705: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:13:04.073060: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:13:04.073115: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:13:04.073280: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:13:04.073321: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:13:04.073343: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:13:04.073361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:15:00.353605: --------------- PredBat - update at 2026-08-17 04:15:00+01:00 with clock skew 0 minutes, minutes now 255
2026-08-17 04:15:00.354588: Saved current settings to /config/predbat_config.json
2026-08-17 04:15:00.354765: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 04:15:00.354910: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:15:00.355015: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:15:00.376480: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:15:00.376612: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:15:00.376791: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:15:00.377469: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:15:00.377607: Predbat mode is set to Control charge & discharge
2026-08-17 04:15:00.579730: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 04:15:00.609725: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:15:00.609910: Using load_power data to fill gaps in load_today data
2026-08-17 04:15:01.000548: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 04:15:01.571901: Processing 721 30-minute periods for power integration
2026-08-17 04:15:01.772299: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:15:01.772453: Car charging hold False, threshold 6.0kWh
2026-08-17 04:15:01.772507: Current data so far today: load 2.6kWh, import 4.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:15:01.794346: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:15:01.794479: Cars: SoC: [53.912]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:15:01.795301: Standing charge is set to 46.63p
2026-08-17 04:15:01.900977: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.901278: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.901473: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.901662: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.901861: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.902044: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.902224: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.902397: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.902566: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.902742: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.902944: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:15:01.903128: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:15:01.903300: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:15:01.903386: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:15:01.903554: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:15:01.903614: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:15:01.909263: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:15:01.909675: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:15:01.959279: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:15:01.959750: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:15:01.960989: High export rate found rates in range 99p to -99p
2026-08-17 04:15:01.990333: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:15:01.990484: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:15:01.990547: Car 0 charging plan is: [{'start': 240, 'end': 300, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:15:02.006564: Battery level now 12.64kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 14.3p, change today 14.79p, rate_forward 6.87p
2026-08-17 04:15:02.006962: Last hour: net energy 2.9kWh, import 2.9kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 23.2p, import 23.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:15:02.085153: Today's energy total net 4.9kWh, import 4.9kWh, export 0.0kWh, cost 85.83p, import 39.2p, export 0.0p, carbon 0.0kg
2026-08-17 04:15:02.085376: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:15:02.151694: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:15:02.178424: Today's load divergence 95.93%, in-day adjustment 73.29%, damping 0.95x, yesterday 68.37% today 96.14% blend 82.29%
2026-08-17 04:15:02.178533: Today's predicted so far 3.2kWh with 0.0kWh car/iBoost excluded, 2.74kWh import ignored, and 3.2kWh forecast extra.
2026-08-17 04:15:02.178567: Today's actual load so far 2.57kWh with 0.0kWh car/iBoost excluded, and 2.74kWh import ignored.
2026-08-17 04:15:02.228560: Inverter 0: Type SK Sunsynk
2026-08-17 04:15:02.228662: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:15:02.228911: Reserve min: 7%, battery_min: 7%
2026-08-17 04:15:02.229027: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:15:02.229363: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 483W, current battery voltage 51.2V, grid power -55W, load power 541W, PV Power 0W
2026-08-17 04:15:02.229571: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:15:02.229692: Inverter 0 scheduled charge enable is True
2026-08-17 04:15:02.229762: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:15:02.229926: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:15:02.230096: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:15:02.230140: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:15:02.230196: Inverter 0 scheduled discharge enable is False
2026-08-17 04:15:02.230379: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:15:02.230422: Inverter 0 discharge windows currently []
2026-08-17 04:15:02.230453: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:15:02.230498: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:15:02.230536: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:15:02.315355: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:15:02.315471: Plan was last updated on 2026-08-17 04:10:00+01:00 and is now 5.0 minutes old
2026-08-17 04:15:02.315815: Best charge window [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ]
2026-08-17 04:15:02.315892: Best export window [ ]
2026-08-17 04:15:02.316996: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:15:02.320391: Load divergence over 8.0 hours mean 572.34W, min 259.8W, max 1618.2W, std dev 354.25W, divergence 30.95%
2026-08-17 04:15:02.339864: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:15:02.340021: LoadML is_calculating False
2026-08-17 04:15:02.340128: Creating pool of 12 processes to match your CPU count
2026-08-17 04:15:02.481542: predict base end_record 08-18 04:35:00, final soc 12.48kWh, metric 246.3p, metric_keep 0kWh, min_soc 2.99kWh @ 08-17 23:55:00, load 15.62kWh, PV 0.0kWh
2026-08-17 04:15:02.630260: Battery has 48.0 hours left - now at 12.64kWh
2026-08-17 04:15:02.671229: predict base10 end_record 08-18 04:35:00, final soc 12.48kWh, metric 251.78p, metric_keep 0kWh, min_soc 2.53kWh @ 08-17 23:55:00, load 16.24kWh, PV 0.0kWh
2026-08-17 04:15:02.756230: predict best10 end_record 08-18 04:35:00, final soc 2.32kWh, metric 166.32p, metric_keep 0.01kWh, min_soc 1.98kWh @ 08-18 03:55:00, load 16.24kWh, PV 0.0kWh
2026-08-17 04:15:02.883333: predict best end_record 08-18 04:35:00, final soc 2.4kWh, metric 161.47p, metric_keep 0kWh, min_soc 2.01kWh @ 08-18 03:55:00, load 15.62kWh, PV 0.0kWh
2026-08-17 04:15:02.883438: Saving plan best values to HA entities
2026-08-17 04:15:03.063912: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:15:03.069989: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:15:03.076006: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.63kWh, house 0.0kWh, export 0.0kWh, metric 161.47p, metric10 166.32p
2026-08-17 04:15:03.153551: Marginal costs baseline metric (no standing charge): 114.8386
2026-08-17 04:15:03.428065: Marginal energy costs matrix computed: min=8.0 max=27.19
2026-08-17 04:15:03.502167: Rate array import [{'start': 255, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1715, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 255, 'end': 1715, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:15:03.502684: - Your estimated bill for today is £0.94 and tomorrow is £3.54
2026-08-17 04:15:03.502731: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:15:03.502754: - The battery is currently at 79% and is charging to 78% for the next 1 and a quarter hours.
2026-08-17 04:15:03.502773: - For the next 48 hours there will be no solar generation.
2026-08-17 04:15:03.502791: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:15:03.502813: - Your car is currently charging.
2026-08-17 04:15:03.502844:
2026-08-17 04:15:03.558569: Plan calculation took 1.24 seconds
2026-08-17 04:15:03.563679: No high rate period found
2026-08-17 04:15:03.627440: Import threshold used for optimisation was 8.0p
2026-08-17 04:15:03.685457: Low import rate windows [0: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 1: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 2: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 3: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 4: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 5: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 6: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 7: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 8: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 9: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 10: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 11: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 12: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 13: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 14: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 15: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0]
2026-08-17 04:15:03.691020: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:15:03.691130: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 79%, target 78%
2026-08-17 04:15:03.691291: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:15:03.691390: Inverter 0 Hold charging as SoC 79% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:15:03.691526: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:15:03.691739: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:15:03.691850: No export window planned
2026-08-17 04:15:03.691964: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:15:03.691993: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:15:03.692110: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:15:03.692207: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:15:03.692258: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 79% -> 78% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.48kWh
2026-08-17 04:15:03.692317: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:15:03.692402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692462: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692587: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692610: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692636: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692660: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692680: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692704: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692729: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692810: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:15:03.692996: Inverter 0 count register writes 0
2026-08-17 04:15:03.708156: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 04:15:03.713628: Total inverter register writes now 853
2026-08-17 04:15:03.744116: Info: Completed run status Hold charging
2026-08-17 04:15:03.750898: Info: record_status Hold charging target 79%-78%
2026-08-17 04:15:03.757717: Saved current settings to /config/predbat_config.json
2026-08-17 04:15:03.758034: Compare, best tariff: current metric 104.68p
2026-08-17 04:15:33.865559: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:15:33.865874: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:15:33.865943: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:15:33.866152: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:15:33.866206: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:15:33.866229: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:15:33.866252: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:16:18.554163: Info: HAHistory: Pruning history data started.
2026-08-17 04:16:18.557367: Info: HAHistory: Pruning history data completed.
2026-08-17 04:17:34.114404: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:17:34.114866: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:17:34.114946: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:17:34.115212: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:17:34.115333: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:17:34.115404: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:17:34.115450: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:19:48.374907: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:19:48.375263: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:19:48.375324: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:19:48.375520: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:19:48.375577: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:19:48.375616: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:19:48.375658: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:20:00.480066: --------------- PredBat - update at 2026-08-17 04:20:00+01:00 with clock skew 0 minutes, minutes now 260
2026-08-17 04:20:00.481007: Saved current settings to /config/predbat_config.json
2026-08-17 04:20:00.481191: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 04:20:00.481332: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:20:00.481431: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:20:00.508258: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:20:00.508372: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:20:00.508537: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:20:00.509108: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:20:00.509218: Predbat mode is set to Control charge & discharge
2026-08-17 04:20:00.765252: Found 21602 load_today datapoints going back 27 days
2026-08-17 04:20:00.765420: Using load_power data to fill gaps in load_today data
2026-08-17 04:20:01.524452: Processing 721 30-minute periods for power integration
2026-08-17 04:20:01.695077: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:20:01.696968: Car charging hold False, threshold 6.0kWh
2026-08-17 04:20:01.697337: Current data so far today: load 2.65kWh, import 5.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:20:01.712494: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:20:01.714672: Cars: SoC: [54.498000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:20:01.716021: Standing charge is set to 46.63p
2026-08-17 04:20:01.818102: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.818396: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.818590: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.818802: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.818988: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.819174: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.819358: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.819535: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.819726: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.819907: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.820081: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:20:01.820258: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:20:01.820430: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:20:01.820517: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:20:01.820702: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:20:01.820791: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:20:01.826159: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:20:01.826603: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:20:01.863623: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:20:01.863747: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:20:01.864719: High export rate found rates in range 99p to -99p
2026-08-17 04:20:01.887192: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:20:01.887326: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:20:01.887379: Car 0 charging plan is: [{'start': 240, 'end': 300, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:20:01.900152: Battery level now 12.64kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 14.3p, change today 14.79p, rate_forward 6.87p
2026-08-17 04:20:01.900535: Last hour: net energy 2.95kWh, import 2.95kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 23.6p, import 23.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:20:01.955566: Today's energy total net 5.0kWh, import 5.0kWh, export 0.0kWh, cost 86.63p, import 40.0p, export 0.0p, carbon 0.0kg
2026-08-17 04:20:01.955732: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:20:02.038291: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:20:02.061895: Today's load divergence 95.96%, in-day adjustment 73.39%, damping 0.95x, yesterday 68.37% today 96.16% blend 81.94%
2026-08-17 04:20:02.062001: Today's predicted so far 3.23kWh with 0.0kWh car/iBoost excluded, 2.78kWh import ignored, and 3.23kWh forecast extra.
2026-08-17 04:20:02.062035: Today's actual load so far 2.61kWh with 0.0kWh car/iBoost excluded, and 2.78kWh import ignored.
2026-08-17 04:20:02.109194: Inverter 0: Type SK Sunsynk
2026-08-17 04:20:02.109288: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:20:02.109491: Reserve min: 7%, battery_min: 7%
2026-08-17 04:20:02.109575: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:20:02.109874: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power -3W, current battery voltage 51.2V, grid power -2407W, load power 2379W, PV Power 0W
2026-08-17 04:20:02.110055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:20:02.110141: Inverter 0 scheduled charge enable is True
2026-08-17 04:20:02.110179: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:20:02.110303: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:20:02.110447: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:20:02.110483: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:20:02.110522: Inverter 0 scheduled discharge enable is False
2026-08-17 04:20:02.110685: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:20:02.110721: Inverter 0 discharge windows currently []
2026-08-17 04:20:02.110743: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:20:02.110776: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:20:02.110806: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:20:02.171963: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:20:02.172113: Plan was last updated on 2026-08-17 04:10:00+01:00 and is now 10.0 minutes old
2026-08-17 04:20:02.172425: Best charge window [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ]
2026-08-17 04:20:02.172471: Best export window [ ]
2026-08-17 04:20:02.173406: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:20:02.176645: Load divergence over 8.0 hours mean 578.01W, min 260.4W, max 1689.0W, std dev 354.23W, divergence 30.64%
2026-08-17 04:20:02.195760: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:20:02.195904: LoadML is_calculating False
2026-08-17 04:20:02.195980: Creating pool of 12 processes to match your CPU count
2026-08-17 04:20:02.330567: predict base end_record 08-18 04:40:00, final soc 12.48kWh, metric 247.14p, metric_keep 0kWh, min_soc 2.96kWh @ 08-17 23:55:00, load 15.67kWh, PV 0.0kWh
2026-08-17 04:20:02.484025: Battery has 48.0 hours left - now at 12.64kWh
2026-08-17 04:20:02.532561: predict base10 end_record 08-18 04:40:00, final soc 12.48kWh, metric 252.63p, metric_keep 0kWh, min_soc 2.5kWh @ 08-17 23:55:00, load 16.29kWh, PV 0.0kWh
2026-08-17 04:20:02.619750: predict best10 end_record 08-18 04:40:00, final soc 2.65kWh, metric 169.91p, metric_keep 0.0kWh, min_soc 1.99kWh @ 08-18 03:55:00, load 16.29kWh, PV 0.0kWh
2026-08-17 04:20:02.714840: predict best end_record 08-18 04:40:00, final soc 2.8kWh, metric 165.69p, metric_keep 0kWh, min_soc 2.02kWh @ 08-18 03:55:00, load 15.67kWh, PV 0.0kWh
2026-08-17 04:20:02.714977: Saving plan best values to HA entities
2026-08-17 04:20:02.965729: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:20:02.971855: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:20:02.978212: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.05kWh, house 0kWh, export 0.0kWh, metric 165.69p, metric10 169.91p
2026-08-17 04:20:03.074511: Marginal costs baseline metric (no standing charge): 119.0554
2026-08-17 04:20:03.356782: Marginal energy costs matrix computed: min=8.0 max=27.21
2026-08-17 04:20:03.448887: Rate array import [{'start': 260, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1720, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 260, 'end': 1720, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:20:03.449425: - Your estimated bill for today is £0.94 and tomorrow is £3.53
2026-08-17 04:20:03.449483: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:20:03.449507: - The battery is currently at 79% and is charging to 78% for the next 1 and a quarter hours.
2026-08-17 04:20:03.449535: - For the next 48 hours there will be no solar generation.
2026-08-17 04:20:03.449578: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:20:03.449609: - Your car is currently charging.
2026-08-17 04:20:03.449641:
2026-08-17 04:20:03.504188: Plan calculation took 1.33 seconds
2026-08-17 04:20:03.510996: No high rate period found
2026-08-17 04:20:03.565954: Import threshold used for optimisation was 8.0p
2026-08-17 04:20:03.616727: Low import rate windows [0: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 1: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 2: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 3: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 4: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 5: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 6: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 7: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 8: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 9: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 10: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 11: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 12: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 13: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 14: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 15: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0]
2026-08-17 04:20:03.621995: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:20:03.622103: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 79%, target 78%
2026-08-17 04:20:03.622259: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:20:03.622349: Inverter 0 Hold charging as SoC 79% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:20:03.622539: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:20:03.622795: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:20:03.622922: No export window planned
2026-08-17 04:20:03.623069: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:20:03.623113: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:20:03.623274: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:20:03.623396: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:20:03.623471: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 79% -> 78% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.48kWh
2026-08-17 04:20:03.623547: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:20:03.623668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623850: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623874: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623894: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623934: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623960: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.623985: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624007: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624104: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:03.624203: Inverter 0 count register writes 0
2026-08-17 04:20:03.641996: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 04:20:03.642211: Recompute is saving previous plan...
2026-08-17 04:20:03.643192: Best charge window [ 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 78%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 78%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 78%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 78%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 78%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 78%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 78%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 78%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 78%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 78%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 78%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 78%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 78%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 78%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 78%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 78%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 78%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 78%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 78% ]
2026-08-17 04:20:03.643243: Best export window [ ]
2026-08-17 04:20:03.644038: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:20:03.647559: Load divergence over 8.0 hours mean 578.01W, min 260.4W, max 1689.0W, std dev 354.23W, divergence 30.64%
2026-08-17 04:20:03.665198: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:20:03.665368: LoadML is_calculating False
2026-08-17 04:20:03.665480: Creating pool of 12 processes to match your CPU count
2026-08-17 04:20:03.763274: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 04:20:03.764135: Optimise levels pass started at 2026-08-17 04:20:03
2026-08-17 04:20:03.764194: Optimise all windows, total charge 25 export 1
2026-08-17 04:20:04.406911: >> Region optimisation pass width 960 gives best_metric 253.53p, best_cost 248.35p, best_cycle 36.36kWh, best_import 20.21kWh
2026-08-17 04:20:04.561351: >> Region optimisation pass width 480 gives best_metric 253.53p, best_cost 248.35p, best_cycle 36.36kWh, best_import 20.21kWh
2026-08-17 04:20:05.114125: >> Region optimisation pass width 240 gives best_metric 245.32p, best_cost 256.04p, best_cycle 40.06kWh, best_import 21.18kWh
2026-08-17 04:20:05.683757: >> Region optimisation pass width 120 gives best_metric 245.32p, best_cost 256.04p, best_cycle 40.06kWh, best_import 21.18kWh
2026-08-17 04:20:05.684016: Calculated end_record as 08-18 04:30:00 based on best_price 8.0p, next_charge_start 08-17 04:30:00, max_windows 14
2026-08-17 04:20:05.684088: Optimise levels pass ended at 2026-08-17 04:20:05, duration 1.9 seconds tried 72 combinations
2026-08-17 04:20:05.684228: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 245.32p, best_keep 0.13kWh, best_cycle 40.06kWh, best_carbon 0kg, best_import 21.18kWh
2026-08-17 04:20:05.700970: Starting detailed optimisation end_record 08-18 04:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 04:20:10.210336: Tweak plan optimisation started metric 98.08p, cost 111.08p
2026-08-17 04:20:10.546733: Tweak optimisation finished metric 98.08p, cost 111.08p, metric_keep 0kWh, cycle 10.49kWh, carbon 0kg, import 3.06kWh, changed 8 window(s)
2026-08-17 04:20:10.572040: Swap charge optimisation started metric 98.08p, cost 111.08p, min_improvement_swap 0.1p
2026-08-17 04:20:11.302875: Swap charge optimisation finished metric 98.08p, cost 111.08p
2026-08-17 04:20:11.418947: Raw charge windows [ 17-08 04:00:00 - 17-08 04:30:00 @ 8.0p 78%, 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 19%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 16%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 16%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:20:11.419403: Unclipped charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 19%, 18-08 01:00:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:20:11.419811: Unfiltered charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 19%, 18-08 01:00:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:20:11.420079: Filtered charge windows [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 19%, 18-08 01:00:00 - 18-08 02:30:00 @ 8.0p 16%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:20:11.460128: Previous plan best metric is 98.64 (cost 111.71) and new plan best metric is 98.08 (cost 111.08)
2026-08-17 04:20:11.460383: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 04:20:11.460598: Plan valid is now true after recompute was False
2026-08-17 04:20:11.492541: predict base end_record 08-18 04:30:00, final soc 12.48kWh, metric 246.46p, metric_keep 0kWh, min_soc 2.96kWh @ 08-17 23:55:00, load 15.59kWh, PV 0.0kWh
2026-08-17 04:20:11.634306: Battery has 48.0 hours left - now at 12.64kWh
2026-08-17 04:20:11.682357: predict base10 end_record 08-18 04:30:00, final soc 12.48kWh, metric 251.92p, metric_keep 0kWh, min_soc 2.5kWh @ 08-17 23:55:00, load 16.21kWh, PV 0.0kWh
2026-08-17 04:20:11.761387: predict best10 end_record 08-18 04:30:00, final soc 2.0kWh, metric 163.64p, metric_keep 0.0kWh, min_soc 1.99kWh @ 08-18 03:55:00, load 16.21kWh, PV 0.0kWh
2026-08-17 04:20:11.853425: predict best end_record 08-18 04:30:00, final soc 2.02kWh, metric 158.35p, metric_keep 0kWh, min_soc 2.02kWh @ 08-18 03:55:00, load 15.59kWh, PV 0.0kWh
2026-08-17 04:20:11.853530: Saving plan best values to HA entities
2026-08-17 04:20:12.029744: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:20:12.036354: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:20:12.042904: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.13kWh, house 0kWh, export 0.0kWh, metric 158.35p, metric10 163.64p
2026-08-17 04:20:12.125107: Marginal costs baseline metric (no standing charge): 111.7128
2026-08-17 04:20:12.423025: Marginal energy costs matrix computed: min=8.0 max=27.21
2026-08-17 04:20:12.501192: Rate array import [{'start': 260, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1710, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 260, 'end': 1710, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:20:12.501643: - Your estimated bill for today is £0.94 and tomorrow is £3.53
2026-08-17 04:20:12.501726: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:20:12.501765: - The battery is currently at 79% and is charging to 78% for the next 1 and a quarter hours.
2026-08-17 04:20:12.501803: - For the next 48 hours there will be no solar generation.
2026-08-17 04:20:12.501831: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:20:12.501866: - Your car is currently charging.
2026-08-17 04:20:12.501898:
2026-08-17 04:20:12.561905: Plan calculation took 8.92 seconds
2026-08-17 04:20:12.562256: Inverter 0: Type SK Sunsynk
2026-08-17 04:20:12.562304: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:20:12.562547: Reserve min: 7%, battery_min: 7%
2026-08-17 04:20:12.562626: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:20:12.563046: Inverter 0 SoC: 12.58kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 0W, current battery voltage 51.2V, grid power -2378W, load power 2377W, PV Power 0W
2026-08-17 04:20:12.563323: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:20:12.563446: Inverter 0 scheduled charge enable is True
2026-08-17 04:20:12.563502: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:20:12.563603: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:20:12.563751: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:20:12.563794: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:20:12.563834: Inverter 0 scheduled discharge enable is False
2026-08-17 04:20:12.563962: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:20:12.564000: Inverter 0 discharge windows currently []
2026-08-17 04:20:12.564022: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:20:12.564041: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:20:12.564069: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:20:12.626459: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:20:12.626588: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 79%, target 78%
2026-08-17 04:20:12.626743: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:20:12.626833: Inverter 0 Hold charging as SoC 79% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:20:12.626954: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:20:12.627146: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:20:12.627235: No export window planned
2026-08-17 04:20:12.627361: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:20:12.627397: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:20:12.627533: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:20:12.627644: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:20:12.627773: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 79% -> 78% total add is -0.1kWh and this battery needs to add -0.1kWh to get to 12.48kWh
2026-08-17 04:20:12.627849: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:20:12.627966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628007: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628091: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628213: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628254: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628281: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628312: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628342: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628381: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628408: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:20:12.628682: Inverter 0 count register writes 0
2026-08-17 04:20:12.652065: Total inverter register writes now 853
2026-08-17 04:20:12.687618: Info: Completed run status Hold charging
2026-08-17 04:20:12.695159: Info: record_status Hold charging target 79%-78%
2026-08-17 04:20:12.708229: Saved current settings to /config/predbat_config.json
2026-08-17 04:20:12.708589: Compare, best tariff: current metric 104.68p
2026-08-17 04:20:48.832898: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:20:48.833285: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:20:48.833342: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:20:48.833531: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:20:48.833582: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:20:48.833611: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:20:48.833658: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:22:49.079973: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:22:49.080315: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:22:49.080387: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:22:49.080620: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:22:49.080668: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:22:49.080698: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:22:49.080742: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:24:49.322017: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:24:49.322318: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:24:49.322363: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:24:49.322593: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:24:49.322644: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:24:49.322671: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:24:49.322715: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:25:00.424926: --------------- PredBat - update at 2026-08-17 04:25:00+01:00 with clock skew 0 minutes, minutes now 265
2026-08-17 04:25:00.425798: Saved current settings to /config/predbat_config.json
2026-08-17 04:25:00.425980: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 04:25:00.426125: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:25:00.426229: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:25:00.452233: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:25:00.452417: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:25:00.452634: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:25:00.453245: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:25:00.453436: Predbat mode is set to Control charge & discharge
2026-08-17 04:25:00.695359: Found 21602 load_today datapoints going back 27 days
2026-08-17 04:25:00.695556: Using load_power data to fill gaps in load_today data
2026-08-17 04:25:01.602344: Processing 721 30-minute periods for power integration
2026-08-17 04:25:01.797896: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:25:01.798046: Car charging hold False, threshold 6.0kWh
2026-08-17 04:25:01.798094: Current data so far today: load 2.7kWh, import 5.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:25:01.815702: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:25:01.815828: Cars: SoC: [55.084]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:25:01.816595: Standing charge is set to 46.63p
2026-08-17 04:25:01.916451: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.916718: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.916871: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.917049: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.917219: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.917363: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.917532: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.917767: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.917907: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.918048: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.918185: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:25:01.918329: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:25:01.918466: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:25:01.918546: Octopus: Intelligent slot at 08-17 04:00:00-08-17 05:00:00, assumed price 33.75, amount 7.4, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:25:01.918677: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:25:01.918728: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:25:01.923170: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:25:01.923621: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:25:01.958440: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:25:01.958565: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:25:01.959575: High export rate found rates in range 99p to -99p
2026-08-17 04:25:01.982728: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:25:01.982871: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:25:01.982930: Car 0 charging plan is: [{'start': 240, 'end': 300, 'kwh': 7.4, 'average': 8.0, 'cost': 59.2, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:25:01.996849: Battery level now 12.64kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 14.3p, change today 14.79p, rate_forward 6.87p
2026-08-17 04:25:01.997228: Last hour: net energy 2.9kWh, import 2.9kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 23.2p, import 23.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:25:02.058031: Today's energy total net 5.0kWh, import 5.0kWh, export 0.0kWh, cost 86.63p, import 40.0p, export 0.0p, carbon 0.0kg
2026-08-17 04:25:02.058175: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:25:02.134678: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:25:02.159010: Today's load divergence 95.82%, in-day adjustment 73.46%, damping 0.95x, yesterday 68.37% today 96.03% blend 81.6%
2026-08-17 04:25:02.159104: Today's predicted so far 3.25kWh with 0.0kWh car/iBoost excluded, 2.89kWh import ignored, and 3.25kWh forecast extra.
2026-08-17 04:25:02.159136: Today's actual load so far 2.6kWh with 0.0kWh car/iBoost excluded, and 2.89kWh import ignored.
2026-08-17 04:25:02.201361: Inverter 0: Type SK Sunsynk
2026-08-17 04:25:02.201459: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:25:02.201713: Reserve min: 7%, battery_min: 7%
2026-08-17 04:25:02.201807: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:25:02.202222: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 2W, current battery voltage 51.2V, grid power -2369W, load power 2369W, PV Power 0W
2026-08-17 04:25:02.202406: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:25:02.202497: Inverter 0 scheduled charge enable is True
2026-08-17 04:25:02.202560: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:25:02.202723: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:25:02.202888: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:25:02.202928: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:25:02.202967: Inverter 0 scheduled discharge enable is False
2026-08-17 04:25:02.203091: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:25:02.203127: Inverter 0 discharge windows currently []
2026-08-17 04:25:02.203149: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:25:02.203168: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:25:02.203185: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:25:02.282196: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:25:02.282337: Plan was last updated on 2026-08-17 04:20:00+01:00 and is now 5.0 minutes old
2026-08-17 04:25:02.282689: Best charge window [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ]
2026-08-17 04:25:02.282730: Best export window [ ]
2026-08-17 04:25:02.283615: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:25:02.286759: Load divergence over 8.0 hours mean 585.66W, min 260.4W, max 1688.4W, std dev 352.24W, divergence 30.07%
2026-08-17 04:25:02.306068: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:25:02.306227: LoadML is_calculating False
2026-08-17 04:25:02.306297: Creating pool of 12 processes to match your CPU count
2026-08-17 04:25:02.460303: predict base end_record 08-18 04:35:00, final soc 12.48kWh, metric 247.99p, metric_keep 0kWh, min_soc 2.77kWh @ 08-17 23:55:00, load 15.65kWh, PV 0.0kWh
2026-08-17 04:25:02.622687: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:25:02.675359: predict base10 end_record 08-18 04:35:00, final soc 12.48kWh, metric 253.45p, metric_keep 0kWh, min_soc 2.31kWh @ 08-17 23:55:00, load 16.27kWh, PV 0.0kWh
2026-08-17 04:25:02.777326: predict best10 end_record 08-18 04:35:00, final soc 2.32kWh, metric 167.92p, metric_keep 0.0kWh, min_soc 2.0kWh @ 08-18 03:55:00, load 16.27kWh, PV 0.0kWh
2026-08-17 04:25:02.911379: predict best end_record 08-18 04:35:00, final soc 2.42kWh, metric 163.27p, metric_keep 0kWh, min_soc 2.03kWh @ 08-18 03:55:00, load 15.65kWh, PV 0.0kWh
2026-08-17 04:25:02.911461: Saving plan best values to HA entities
2026-08-17 04:25:03.142646: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:25:03.151271: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:25:03.159806: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.75kWh, house 0.0kWh, export 0.0kWh, metric 163.27p, metric10 167.92p
2026-08-17 04:25:03.248717: Marginal costs baseline metric (no standing charge): 116.6344
2026-08-17 04:25:03.590023: Marginal energy costs matrix computed: min=8.0 max=27.65
2026-08-17 04:25:03.668006: Rate array import [{'start': 265, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1715, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 265, 'end': 1715, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:25:03.668449: - Your estimated bill for today is £0.96 and tomorrow is £3.53
2026-08-17 04:25:03.668496: - Import rates are cheap (8.0p) for the next 1 hour and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:25:03.668516: - The battery is currently at 78% and is charging to 78% for the next 1 hour.
2026-08-17 04:25:03.668549: - For the next 48 hours there will be no solar generation.
2026-08-17 04:25:03.668581: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:25:03.668610: - Your car is currently charging.
2026-08-17 04:25:03.668625:
2026-08-17 04:25:03.727955: Plan calculation took 1.45 seconds
2026-08-17 04:25:03.732847: No high rate period found
2026-08-17 04:25:03.790838: Import threshold used for optimisation was 8.0p
2026-08-17 04:25:03.861688: Low import rate windows [0: 08-17 04:00:00 - 08-17 04:30:00 @ 8.0, 1: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 2: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 3: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 4: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 5: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 6: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 7: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 8: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 9: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 10: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 11: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 12: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 13: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 14: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 15: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 16: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 17: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 18: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 19: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 20: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 21: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 22: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 23: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 24: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 25: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0]
2026-08-17 04:25:03.869943: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:25:03.870087: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:25:03.870308: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:25:03.870419: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:25:03.870627: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:25:03.870940: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:25:03.871105: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-17 04:25:08.879275: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-17 04:25:13.983900: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-17 04:25:13.984103: No export window planned
2026-08-17 04:25:13.984376: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:25:13.984442: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:25:13.984828: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:25:13.985026: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:25:13.985152: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:25:13.985274: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:25:13.985468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985902: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985949: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.985988: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986024: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986081: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986121: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986158: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:25:13.986670: Inverter 0 count register writes 1
2026-08-17 04:25:14.006286: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 04:25:14.013265: Total inverter register writes now 854
2026-08-17 04:25:14.051212: Info: Completed run status Hold charging
2026-08-17 04:25:14.058640: Info: record_status Hold charging target 78%-78%
2026-08-17 04:25:14.066159: Saved current settings to /config/predbat_config.json
2026-08-17 04:25:14.066517: Compare, best tariff: current metric 104.68p
2026-08-17 04:25:49.190145: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:25:49.190441: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:25:49.190487: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:25:49.190665: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:25:49.190708: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:25:49.190729: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:25:49.190747: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:26:18.433900: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 04:26:19.580688: Processing 1297 30-minute periods for power integration
2026-08-17 04:26:19.682353: ML Component: Car charging hold False, car energy reported load False
2026-08-17 04:26:19.781682: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:26:19.881009: ML Temperature data points: 48696
2026-08-17 04:26:20.176122: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 04:26:20.223941: ML Component: Data fetch completed, load data age 58.0 days, 16877 data points
2026-08-17 04:26:20.224089: ML Component: No training needed, model age is 1.57 hours
2026-08-17 04:26:20.224155: ML Component: Generating predictions load data age 58.0 days, 16877 data points
2026-08-17 04:26:20.398737: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.12 max_dow {0: 0.08525277777612211, 1: 0.10017499963007867, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 04:26:24.898763: ML Component: Generated 576 predictions (total 23.98 kWh over 48h)
2026-08-17 04:26:24.930256: ML Component: Prediction cycle completed
2026-08-17 04:26:25.025182: ML Component: Saved 16877 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 04:28:03.456588: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:28:03.456868: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:28:03.456904: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:28:03.457068: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:28:03.457113: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:28:03.457135: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:28:03.457153: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:30:00.695229: --------------- PredBat - update at 2026-08-17 04:30:00+01:00 with clock skew 0 minutes, minutes now 270
2026-08-17 04:30:00.696148: Saved current settings to /config/predbat_config.json
2026-08-17 04:30:00.696307: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 04:30:00.696413: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:30:00.696565: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:30:00.724371: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:30:00.724531: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:30:00.724750: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:30:00.725400: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:30:00.725658: Predbat mode is set to Control charge & discharge
2026-08-17 04:30:00.945376: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:30:00.945544: Using load_power data to fill gaps in load_today data
2026-08-17 04:30:01.689850: Processing 721 30-minute periods for power integration
2026-08-17 04:30:01.858347: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:30:01.858511: Car charging hold False, threshold 6.0kWh
2026-08-17 04:30:01.858584: Current data so far today: load 2.9kWh, import 5.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:30:01.873367: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:30:01.873487: Cars: SoC: [55.67]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:30:01.874236: Standing charge is set to 46.63p
2026-08-17 04:30:01.957701: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.958013: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.958254: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.958498: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.958779: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.959016: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.959237: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.959460: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.959672: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.959883: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.960089: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:30:01.960306: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:30:01.960533: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:30:01.960799: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:30:01.960863: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:30:01.966192: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:30:01.967136: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:30:02.003041: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:30:02.003167: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:30:02.004434: High export rate found rates in range 99p to -99p
2026-08-17 04:30:02.027656: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:30:02.027814: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:30:02.027871: Car 0 charging plan is: [{'start': 270, 'end': 300, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.6335, 'average': 8.0, 'cost': 5.07, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:30:02.042873: Battery level now 12.48kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour 13.2p, change today 13.69p, rate_forward 6.87p
2026-08-17 04:30:02.043246: Last hour: net energy 2.9kWh, import 2.9kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 23.2p, import 23.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:30:02.094021: Today's energy total net 5.2kWh, import 5.2kWh, export 0.0kWh, cost 88.23p, import 41.6p, export 0.0p, carbon 0.0kg
2026-08-17 04:30:02.094140: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:30:02.179739: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:30:02.199070: Today's load divergence 96.87%, in-day adjustment 73.74%, damping 0.95x, yesterday 68.37% today 97.03% blend 81.25%
2026-08-17 04:30:02.199174: Today's predicted so far 3.37kWh with 0.0kWh car/iBoost excluded, 2.89kWh import ignored, and 3.37kWh forecast extra.
2026-08-17 04:30:02.199201: Today's actual load so far 2.89kWh with 0.0kWh car/iBoost excluded, and 2.89kWh import ignored.
2026-08-17 04:30:02.240666: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -7.4, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.6335, 'source': 'SMART'}]]
2026-08-17 04:30:02.241222: Sensor changes require a replan, will recompute the plan
2026-08-17 04:30:02.241385: Inverter 0: Type SK Sunsynk
2026-08-17 04:30:02.241423: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:30:02.241598: Reserve min: 7%, battery_min: 7%
2026-08-17 04:30:02.241662: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:30:02.241889: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -3W, current battery voltage 51.2V, grid power -549W, load power 549W, PV Power 0W
2026-08-17 04:30:02.242033: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:30:02.242112: Inverter 0 scheduled charge enable is True
2026-08-17 04:30:02.242149: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:30:02.242223: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:30:02.242325: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:30:02.242349: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:30:02.242378: Inverter 0 scheduled discharge enable is False
2026-08-17 04:30:02.242494: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:30:02.242527: Inverter 0 discharge windows currently []
2026-08-17 04:30:02.242546: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:30:02.242561: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:30:02.242575: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:30:02.308123: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:30:02.308200: Will recompute the plan as it is invalid
2026-08-17 04:30:02.308321: Recompute is saving previous plan...
2026-08-17 04:30:02.309216: Best charge window [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 78%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 78%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 78%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 78%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 78%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 78%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 78%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 78%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 78%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 78%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 78%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 78%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 78%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 78%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 78%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 78%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 78%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 78%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 78% ]
2026-08-17 04:30:02.309291: Best export window [ ]
2026-08-17 04:30:02.309992: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:30:02.312525: Load divergence over 8.0 hours mean 599.66W, min 262.2W, max 1598.4W, std dev 356.19W, divergence 29.7%
2026-08-17 04:30:02.331185: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:30:02.331323: LoadML is_calculating False
2026-08-17 04:30:02.331398: Creating pool of 12 processes to match your CPU count
2026-08-17 04:30:02.448225: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 04:30:02.449049: Optimise levels pass started at 2026-08-17 04:30:02
2026-08-17 04:30:02.449103: Optimise all windows, total charge 25 export 1
2026-08-17 04:30:03.178786: >> Region optimisation pass width 960 gives best_metric 257.89p, best_cost 252.12p, best_cycle 36.62kWh, best_import 20.49kWh
2026-08-17 04:30:03.367723: >> Region optimisation pass width 480 gives best_metric 257.89p, best_cost 252.12p, best_cycle 36.62kWh, best_import 20.49kWh
2026-08-17 04:30:03.972559: >> Region optimisation pass width 240 gives best_metric 249.14p, best_cost 259.12p, best_cycle 40.29kWh, best_import 21.36kWh
2026-08-17 04:30:04.636722: >> Region optimisation pass width 120 gives best_metric 249.14p, best_cost 259.12p, best_cycle 40.29kWh, best_import 21.36kWh
2026-08-17 04:30:04.636995: Calculated end_record as 08-18 04:30:00 based on best_price 8.0p, next_charge_start 08-17 04:30:00, max_windows 13
2026-08-17 04:30:04.637099: Optimise levels pass ended at 2026-08-17 04:30:04, duration 2.2 seconds tried 70 combinations
2026-08-17 04:30:04.637191: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 249.14p, best_keep 0.27kWh, best_cycle 40.29kWh, best_carbon 0kg, best_import 21.36kWh
2026-08-17 04:30:04.664219: Starting detailed optimisation end_record 08-18 04:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 04:30:08.540185: Tweak plan optimisation started metric 102.23p, cost 115.69p
2026-08-17 04:30:08.916702: Tweak optimisation finished metric 102.23p, cost 115.69p, metric_keep 0kWh, cycle 12.68kWh, carbon 0kg, import 3.43kWh, changed 8 window(s)
2026-08-17 04:30:08.938157: Swap charge optimisation started metric 102.23p, cost 115.69p, min_improvement_swap 0.1p
2026-08-17 04:30:09.432564: Swap charge optimisation finished metric 102.23p, cost 115.69p
2026-08-17 04:30:09.527541: Raw charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 13%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:30:09.527962: Unclipped charge windows [ 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 02:30:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:30:09.528232: Unfiltered charge windows [ 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 02:30:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:30:09.528437: Filtered charge windows [ 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 02:30:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:30:09.570487: Previous plan best metric is 101.63 (cost 114.67) and new plan best metric is 102.23 (cost 115.69)
2026-08-17 04:30:09.570817: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 04:30:09.571067: Plan valid is now true after recompute was False
2026-08-17 04:30:09.605845: predict base end_record 08-18 04:30:00, final soc 12.48kWh, metric 249.4p, metric_keep 0kWh, min_soc 2.79kWh @ 08-17 23:55:00, load 15.83kWh, PV 0.0kWh
2026-08-17 04:30:09.789640: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:30:09.841694: predict base10 end_record 08-18 04:30:00, final soc 12.48kWh, metric 254.85p, metric_keep 0kWh, min_soc 2.33kWh @ 08-17 23:55:00, load 16.45kWh, PV 0.0kWh
2026-08-17 04:30:09.939725: predict best10 end_record 08-18 04:30:00, final soc 2.0kWh, metric 166.62p, metric_keep 0.01kWh, min_soc 1.98kWh @ 08-18 03:55:00, load 16.45kWh, PV 0.0kWh
2026-08-17 04:30:10.056614: predict best end_record 08-18 04:30:00, final soc 2.02kWh, metric 161.3p, metric_keep 0kWh, min_soc 2.02kWh @ 08-18 03:55:00, load 15.83kWh, PV 0.0kWh
2026-08-17 04:30:10.056719: Saving plan best values to HA entities
2026-08-17 04:30:10.261588: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:30:10.268768: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:30:10.275586: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.3kWh, house 0kWh, export 0.0kWh, metric 161.3p, metric10 166.62p
2026-08-17 04:30:10.363605: Marginal costs baseline metric (no standing charge): 114.6679
2026-08-17 04:30:10.705870: Marginal energy costs matrix computed: min=8.0 max=27.74
2026-08-17 04:30:10.813657: Rate array import [{'start': 270, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1710, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 270, 'end': 1710, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:30:10.814173: - Your estimated bill for today is £0.97 and tomorrow is £3.53
2026-08-17 04:30:10.814231: - Import rates are cheap (8.0p) for the next 1 hour and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:30:10.814256: - The battery is currently at 78% and is charging to 78% for the next 1 hour.
2026-08-17 04:30:10.814275: - For the next 48 hours there will be no solar generation.
2026-08-17 04:30:10.814303: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:30:10.814351: - Your car is currently charging.
2026-08-17 04:30:10.814387:
2026-08-17 04:30:10.883808: Plan calculation took 8.58 seconds
2026-08-17 04:30:10.888933: Saved plan to storage
2026-08-17 04:30:10.892348: No high rate period found
2026-08-17 04:30:10.956777: Import threshold used for optimisation was 8.0p
2026-08-17 04:30:11.027892: Low import rate windows [0: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 1: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 2: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 3: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 4: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 5: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 6: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 7: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 8: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 9: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 10: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 11: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 12: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 13: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 14: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0]
2026-08-17 04:30:11.035647: Inverter 0: Type SK Sunsynk
2026-08-17 04:30:11.035746: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:30:11.036047: Reserve min: 7%, battery_min: 7%
2026-08-17 04:30:11.036149: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:30:11.036601: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -551W, load power 551W, PV Power 0W
2026-08-17 04:30:11.036886: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:30:11.037048: Inverter 0 scheduled charge enable is True
2026-08-17 04:30:11.037113: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:30:11.037222: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:30:11.037358: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:30:11.037400: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:30:11.037489: Inverter 0 scheduled discharge enable is False
2026-08-17 04:30:11.037632: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:30:11.037666: Inverter 0 discharge windows currently []
2026-08-17 04:30:11.037689: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:30:11.037718: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:30:11.037737: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:30:11.100297: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:30:11.100432: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:30:11.100599: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:30:11.100703: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:30:11.100861: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:30:11.101114: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:30:11.101248: No export window planned
2026-08-17 04:30:11.101371: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:30:11.101415: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:30:11.101588: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:30:11.101716: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:30:11.101799: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:30:11.101865: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:30:11.101983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102072: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102623: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102694: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102745: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102793: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102853: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102913: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.102957: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103232: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:30:11.103475: Inverter 0 count register writes 0
2026-08-17 04:30:11.130152: Total inverter register writes now 854
2026-08-17 04:30:11.170415: Info: Completed run status Hold charging
2026-08-17 04:30:11.179748: Info: record_status Hold charging target 78%-78%
2026-08-17 04:30:11.188896: Saved current settings to /config/predbat_config.json
2026-08-17 04:30:11.189347: Compare, best tariff: current metric 104.68p
2026-08-17 04:30:49.317905: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:30:49.318213: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:30:49.318258: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:30:49.318403: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:30:49.318465: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:30:49.318492: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:30:49.318511: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:33:03.563764: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:33:03.564043: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:33:03.564093: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:33:03.564271: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:33:03.564326: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:33:03.564347: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:33:03.564365: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:35:00.795244: --------------- PredBat - update at 2026-08-17 04:35:00+01:00 with clock skew 0 minutes, minutes now 275
2026-08-17 04:35:00.796183: Saved current settings to /config/predbat_config.json
2026-08-17 04:35:00.796585: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 04:35:00.796718: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:35:00.796806: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:35:00.817966: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:35:00.818095: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:35:00.818263: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:35:00.818851: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:35:00.818974: Predbat mode is set to Control charge & discharge
2026-08-17 04:35:01.007131: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:35:01.007294: Using load_power data to fill gaps in load_today data
2026-08-17 04:35:01.734560: Processing 721 30-minute periods for power integration
2026-08-17 04:35:01.901471: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:35:01.901600: Car charging hold False, threshold 6.0kWh
2026-08-17 04:35:01.901640: Current data so far today: load 3.0kWh, import 5.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:35:01.915696: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:35:01.915818: Cars: SoC: [56.256]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:35:01.916491: Standing charge is set to 46.63p
2026-08-17 04:35:02.005465: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.005821: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.006000: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.006160: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.006309: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.006474: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.006621: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.006759: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.006897: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.007036: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.007171: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:35:02.007323: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:35:02.007480: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:35:02.007616: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:35:02.007664: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:35:02.012116: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:35:02.012493: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:35:02.048135: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:35:02.048278: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:35:02.049400: High export rate found rates in range 99p to -99p
2026-08-17 04:35:02.074564: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:35:02.074697: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:35:02.074751: Car 0 charging plan is: [{'start': 270, 'end': 300, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.6335, 'average': 8.0, 'cost': 5.07, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:35:02.088430: Battery level now 12.48kWh, -1hr ago 10.69kWh, at midnight 10.49kWh, battery value change in the last hour 12.32p, change today 13.69p, rate_forward 6.87p
2026-08-17 04:35:02.088734: Last hour: net energy 2.7kWh, import 2.7kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 21.6p, import 21.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:35:02.146685: Today's energy total net 5.2kWh, import 5.2kWh, export 0.0kWh, cost 88.23p, import 41.6p, export 0.0p, carbon 0.0kg
2026-08-17 04:35:02.146846: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:35:02.216322: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:35:02.235583: Today's load divergence 96.52%, in-day adjustment 73.78%, damping 0.95x, yesterday 68.37% today 96.69% blend 80.9%
2026-08-17 04:35:02.235674: Today's predicted so far 3.47kWh with 0.0kWh car/iBoost excluded, 2.86kWh import ignored, and 3.47kWh forecast extra.
2026-08-17 04:35:02.235701: Today's actual load so far 2.92kWh with 0.0kWh car/iBoost excluded, and 2.86kWh import ignored.
2026-08-17 04:35:02.275805: Inverter 0: Type SK Sunsynk
2026-08-17 04:35:02.275899: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:35:02.276076: Reserve min: 7%, battery_min: 7%
2026-08-17 04:35:02.276147: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:35:02.276441: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -4W, current battery voltage 51.2V, grid power -2374W, load power 2374W, PV Power 0W
2026-08-17 04:35:02.276607: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:35:02.276700: Inverter 0 scheduled charge enable is True
2026-08-17 04:35:02.276744: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:35:02.276831: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:35:02.276986: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:35:02.277029: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:35:02.277067: Inverter 0 scheduled discharge enable is False
2026-08-17 04:35:02.277192: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:35:02.277228: Inverter 0 discharge windows currently []
2026-08-17 04:35:02.277251: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:35:02.277274: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:35:02.277293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:35:02.362563: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:35:02.362659: Plan was last updated on 2026-08-17 04:30:00+01:00 and is now 5.0 minutes old
2026-08-17 04:35:02.362917: Best charge window [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ]
2026-08-17 04:35:02.362971: Best export window [ ]
2026-08-17 04:35:02.363586: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:35:02.366084: Load divergence over 8.0 hours mean 613.54W, min 271.2W, max 1561.8W, std dev 367.49W, divergence 29.95%
2026-08-17 04:35:02.381479: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:35:02.381600: LoadML is_calculating False
2026-08-17 04:35:02.381657: Creating pool of 12 processes to match your CPU count
2026-08-17 04:35:02.510656: predict base end_record 08-18 04:35:00, final soc 12.48kWh, metric 249.64p, metric_keep 0kWh, min_soc 2.83kWh @ 08-17 23:55:00, load 15.97kWh, PV 0.0kWh
2026-08-17 04:35:02.646857: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:35:02.692842: predict base10 end_record 08-18 04:35:00, final soc 12.48kWh, metric 255.1p, metric_keep 0kWh, min_soc 2.37kWh @ 08-17 23:55:00, load 16.59kWh, PV 0.0kWh
2026-08-17 04:35:02.777902: predict best10 end_record 08-18 04:35:00, final soc 2.32kWh, metric 169.71p, metric_keep 0.01kWh, min_soc 1.97kWh @ 08-18 03:55:00, load 16.59kWh, PV 0.0kWh
2026-08-17 04:35:02.906831: predict best end_record 08-18 04:35:00, final soc 2.39kWh, metric 164.79p, metric_keep 0.0kWh, min_soc 2.0kWh @ 08-18 03:55:00, load 15.97kWh, PV 0.0kWh
2026-08-17 04:35:02.906930: Saving plan best values to HA entities
2026-08-17 04:35:03.096081: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:35:03.102336: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:35:03.108296: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.74kWh, house 0kWh, export 0.0kWh, metric 164.79p, metric10 169.71p
2026-08-17 04:35:03.180766: Marginal costs baseline metric (no standing charge): 118.1604
2026-08-17 04:35:03.415983: Marginal energy costs matrix computed: min=8.1 max=27.75
2026-08-17 04:35:03.480855: Rate array import [{'start': 275, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1715, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 275, 'end': 1715, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:35:03.481338: - Your estimated bill for today is £0.96 and tomorrow is £3.54
2026-08-17 04:35:03.481409: - Import rates are cheap (8.0p) for the next 55 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:35:03.481445: - The battery is currently at 78% and is charging to 78% for the next 55 minutes.
2026-08-17 04:35:03.481474: - For the next 48 hours there will be no solar generation.
2026-08-17 04:35:03.481507: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:35:03.481535: - Your car is currently charging.
2026-08-17 04:35:03.481562:
2026-08-17 04:35:03.536538: Plan calculation took 1.17 seconds
2026-08-17 04:35:03.539274: No high rate period found
2026-08-17 04:35:03.613207: Import threshold used for optimisation was 8.0p
2026-08-17 04:35:03.662030: Low import rate windows [0: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 1: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 2: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 3: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 4: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 5: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 6: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 7: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 8: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 9: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 10: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 11: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 12: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 13: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 14: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0]
2026-08-17 04:35:03.669256: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:35:03.669416: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:35:03.669653: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:35:03.669777: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:35:03.669969: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:35:03.670266: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:35:03.670429: No export window planned
2026-08-17 04:35:03.670546: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:35:03.670582: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:35:03.670704: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:35:03.670779: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:35:03.670833: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:35:03.670890: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:35:03.670973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671094: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671148: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671175: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671195: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671217: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671239: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671283: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671304: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671554: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:35:03.671571: Inverter 0 count register writes 0
2026-08-17 04:35:03.687608: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 04:35:03.692346: Total inverter register writes now 854
2026-08-17 04:35:03.726570: Info: Completed run status Hold charging
2026-08-17 04:35:03.736048: Info: record_status Hold charging target 78%-78%
2026-08-17 04:35:03.747133: Saved current settings to /config/predbat_config.json
2026-08-17 04:35:03.747547: Compare, best tariff: current metric 104.68p
2026-08-17 04:35:33.858503: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:35:33.858839: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:35:33.858910: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:35:33.859388: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:35:33.859448: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:35:33.859479: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:35:33.859522: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:37:34.106410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:37:34.106700: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:37:34.106744: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:37:34.106880: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:37:34.106921: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:37:34.106943: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:37:34.106961: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:39:34.338936: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:39:34.339272: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:39:34.339340: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:39:34.339534: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:39:34.339582: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:39:34.339604: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:39:34.339628: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:40:00.490861: --------------- PredBat - update at 2026-08-17 04:40:00+01:00 with clock skew 0 minutes, minutes now 280
2026-08-17 04:40:00.491890: Saved current settings to /config/predbat_config.json
2026-08-17 04:40:00.492082: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 04:40:00.492185: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:40:00.492316: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:40:00.519449: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:40:00.519637: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:40:00.519926: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:40:00.520781: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:40:00.521010: Predbat mode is set to Control charge & discharge
2026-08-17 04:40:00.763800: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:40:00.763969: Using load_power data to fill gaps in load_today data
2026-08-17 04:40:01.463839: Processing 721 30-minute periods for power integration
2026-08-17 04:40:01.620661: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:40:01.620788: Car charging hold False, threshold 6.0kWh
2026-08-17 04:40:01.620829: Current data so far today: load 3.1kWh, import 5.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:40:01.635223: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:40:01.635341: Cars: SoC: [56.842]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:40:01.636002: Standing charge is set to 46.63p
2026-08-17 04:40:01.729483: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.729711: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.729860: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.730012: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.730151: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.730320: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.730472: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.730619: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.730763: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.730906: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.731379: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:40:01.731531: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 8.0, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:40:01.731666: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:40:01.731801: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:40:01.731844: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:40:01.736130: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:40:01.736539: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:40:01.773783: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:40:01.773905: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:40:01.774918: High export rate found rates in range 99p to -99p
2026-08-17 04:40:01.798035: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:40:01.798175: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:40:01.798229: Car 0 charging plan is: [{'start': 270, 'end': 300, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.6335, 'average': 8.0, 'cost': 5.07, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:40:01.810879: Battery level now 12.48kWh, -1hr ago 10.69kWh, at midnight 10.49kWh, battery value change in the last hour 12.32p, change today 13.69p, rate_forward 6.87p
2026-08-17 04:40:01.811230: Last hour: net energy 2.35kWh, import 2.35kWh, export 0.0kWh, car 0kWh, load 0.77kWh, net cost 18.8p, import 18.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:40:01.864882: Today's energy total net 5.3kWh, import 5.3kWh, export 0.0kWh, cost 89.03p, import 42.4p, export 0.0p, carbon 0.0kg
2026-08-17 04:40:01.865069: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:40:01.929185: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:40:01.951113: Today's load divergence 97.57%, in-day adjustment 74.07%, damping 0.95x, yesterday 68.37% today 97.69% blend 80.56%
2026-08-17 04:40:01.951204: Today's predicted so far 3.47kWh with 0.0kWh car/iBoost excluded, 2.82kWh import ignored, and 3.47kWh forecast extra.
2026-08-17 04:40:01.951231: Today's actual load so far 3.08kWh with 0.0kWh car/iBoost excluded, and 2.82kWh import ignored.
2026-08-17 04:40:01.997225: Inverter 0: Type SK Sunsynk
2026-08-17 04:40:01.997329: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:40:01.997507: Reserve min: 7%, battery_min: 7%
2026-08-17 04:40:01.997571: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:40:01.997808: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -455W, load power 455W, PV Power 0W
2026-08-17 04:40:01.997953: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:40:01.998031: Inverter 0 scheduled charge enable is True
2026-08-17 04:40:01.998069: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:40:01.998151: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:40:01.998292: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:40:01.998326: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:40:01.998359: Inverter 0 scheduled discharge enable is False
2026-08-17 04:40:01.998469: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:40:01.998499: Inverter 0 discharge windows currently []
2026-08-17 04:40:01.998519: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:40:01.998534: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:40:01.998548: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:40:02.062803: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:40:02.062920: Plan was last updated on 2026-08-17 04:30:00+01:00 and is now 10.0 minutes old
2026-08-17 04:40:02.063235: Best charge window [ 17-08 04:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 25%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 04:30:00 @ 8.0p 100% ]
2026-08-17 04:40:02.063300: Best export window [ ]
2026-08-17 04:40:02.064131: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:40:02.067371: Load divergence over 8.0 hours mean 623.77W, min 292.2W, max 1707.6W, std dev 385.35W, divergence 30.89%
2026-08-17 04:40:02.085932: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:40:02.086065: LoadML is_calculating False
2026-08-17 04:40:02.086132: Creating pool of 12 processes to match your CPU count
2026-08-17 04:40:02.235543: predict base end_record 08-18 04:40:00, final soc 12.48kWh, metric 250.86p, metric_keep 0kWh, min_soc 2.75kWh @ 08-17 23:55:00, load 16.11kWh, PV 0.0kWh
2026-08-17 04:40:02.396148: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:40:02.442830: predict base10 end_record 08-18 04:40:00, final soc 12.48kWh, metric 256.34p, metric_keep 0kWh, min_soc 2.29kWh @ 08-17 23:55:00, load 16.73kWh, PV 0.0kWh
2026-08-17 04:40:02.535973: predict best10 end_record 08-18 04:40:00, final soc 2.65kWh, metric 173.69p, metric_keep 0.01kWh, min_soc 1.97kWh @ 08-18 03:55:00, load 16.73kWh, PV 0.0kWh
2026-08-17 04:40:02.629855: predict best end_record 08-18 04:40:00, final soc 2.78kWh, metric 169.34p, metric_keep 0kWh, min_soc 2.0kWh @ 08-18 03:55:00, load 16.11kWh, PV 0.0kWh
2026-08-17 04:40:02.629964: Saving plan best values to HA entities
2026-08-17 04:40:02.904049: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:40:02.911772: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:40:02.918063: Best charging limit SoC's [12.5, 3.5, 4.0, 2.0, 2.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.21kWh, house 0kWh, export 0.0kWh, metric 169.34p, metric10 173.69p
2026-08-17 04:40:03.000459: Marginal costs baseline metric (no standing charge): 122.7032
2026-08-17 04:40:03.312999: Marginal energy costs matrix computed: min=8.2 max=27.88
2026-08-17 04:40:03.395385: Rate array import [{'start': 280, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1720, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 280, 'end': 1720, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:40:03.395856: - Your estimated bill for today is £0.98 and tomorrow is £3.54
2026-08-17 04:40:03.395921: - Import rates are cheap (8.0p) for the next 50 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:40:03.395980: - The battery is currently at 78% and is charging to 78% for the next 50 minutes.
2026-08-17 04:40:03.396002: - For the next 48 hours there will be no solar generation.
2026-08-17 04:40:03.396020: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 04:40:03.396037: - Your car is currently charging.
2026-08-17 04:40:03.396054:
2026-08-17 04:40:03.453325: Plan calculation took 1.39 seconds
2026-08-17 04:40:03.456759: No high rate period found
2026-08-17 04:40:03.513480: Import threshold used for optimisation was 8.0p
2026-08-17 04:40:03.582217: Low import rate windows [0: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 1: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 2: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 3: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 4: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 5: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 6: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 7: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 8: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 9: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 10: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 11: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 12: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 13: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 14: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0]
2026-08-17 04:40:03.588987: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:00:00
2026-08-17 04:40:03.589118: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:40:03.589318: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:40:03.589420: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:40:03.589593: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:40:03.589853: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:40:03.590011: No export window planned
2026-08-17 04:40:03.590208: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:40:03.590256: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:40:03.590451: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:40:03.590559: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:40:03.590621: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:40:03.590699: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:40:03.590813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.590859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.590889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.590915: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.590947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.590994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591072: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591109: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591145: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591174: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591203: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591228: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591254: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591511: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:03.591544: Inverter 0 count register writes 0
2026-08-17 04:40:03.622852: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 04:40:03.623072: Recompute is saving previous plan...
2026-08-17 04:40:03.624072: Best charge window [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 78%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 78%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 78%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 78%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 78%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 78%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 78%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 78%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 78%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 78%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 78%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 78%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 78%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 78%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 78%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 78%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 78%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 78%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 78%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 78% ]
2026-08-17 04:40:03.624124: Best export window [ ]
2026-08-17 04:40:03.625003: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:40:03.628456: Load divergence over 8.0 hours mean 623.77W, min 292.2W, max 1707.6W, std dev 385.35W, divergence 30.89%
2026-08-17 04:40:03.646262: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:40:03.646403: LoadML is_calculating False
2026-08-17 04:40:03.646475: Creating pool of 12 processes to match your CPU count
2026-08-17 04:40:03.749285: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 04:40:03.750394: Optimise levels pass started at 2026-08-17 04:40:03
2026-08-17 04:40:03.750472: Optimise all windows, total charge 25 export 1
2026-08-17 04:40:04.393965: >> Region optimisation pass width 960 gives best_metric 259.82p, best_cost 253.5p, best_cycle 36.72kWh, best_import 20.56kWh
2026-08-17 04:40:04.566818: >> Region optimisation pass width 480 gives best_metric 259.82p, best_cost 253.5p, best_cycle 36.72kWh, best_import 20.56kWh
2026-08-17 04:40:05.115295: >> Region optimisation pass width 240 gives best_metric 250.6p, best_cost 261.68p, best_cycle 40.65kWh, best_import 21.58kWh
2026-08-17 04:40:05.715796: >> Region optimisation pass width 120 gives best_metric 250.6p, best_cost 261.68p, best_cycle 40.65kWh, best_import 21.58kWh
2026-08-17 04:40:05.716132: Calculated end_record as 08-18 05:00:00 based on best_price 8.0p, next_charge_start 08-17 05:00:00, max_windows 14
2026-08-17 04:40:05.716219: Optimise levels pass ended at 2026-08-17 04:40:05, duration 2.0 seconds tried 69 combinations
2026-08-17 04:40:05.716321: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 250.6p, best_keep 0.09kWh, best_cycle 40.65kWh, best_carbon 0kg, best_import 21.58kWh
2026-08-17 04:40:05.734990: Starting detailed optimisation end_record 08-18 05:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 04:40:08.328810: Tweak plan optimisation started metric 106.68p, cost 118.98p
2026-08-17 04:40:08.711536: Tweak optimisation finished metric 106.68p, cost 118.98p, metric_keep 0.06kWh, cycle 15.94kWh, carbon 0kg, import 3.74kWh, changed 8 window(s)
2026-08-17 04:40:08.732677: Swap charge optimisation started metric 106.68p, cost 118.98p, min_improvement_swap 0.1p
2026-08-17 04:40:08.857238: Swap charge optimisation finished metric 106.68p, cost 118.98p
2026-08-17 04:40:08.898079: Raw charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:40:08.898451: Unclipped charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:40:08.898651: Unfiltered charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:40:08.898816: Filtered charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:40:08.933120: Previous plan best metric is 108.53 (cost 137.57) and new plan best metric is 106.68 (cost 118.98)
2026-08-17 04:40:08.933367: New plan is a cost-neutral improvement but less fragmented (4 vs 5 segments), using new plan
2026-08-17 04:40:08.933400: Plan valid is now true after recompute was False
2026-08-17 04:40:08.961924: predict base end_record 08-18 05:00:00, final soc 12.48kWh, metric 252.39p, metric_keep 0kWh, min_soc 2.75kWh @ 08-17 23:55:00, load 16.3kWh, PV 0.0kWh
2026-08-17 04:40:09.087477: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:40:09.136416: predict base10 end_record 08-18 05:00:00, final soc 12.48kWh, metric 257.94p, metric_keep 0kWh, min_soc 2.29kWh @ 08-17 23:55:00, load 16.93kWh, PV 0.0kWh
2026-08-17 04:40:09.219696: predict best10 end_record 08-18 05:00:00, final soc 1.12kWh, metric 164.49p, metric_keep 3.94kWh, min_soc 1.12kWh @ 08-18 04:35:00, load 16.93kWh, PV 0.0kWh
2026-08-17 04:40:09.299055: predict best end_record 08-18 05:00:00, final soc 1.89kWh, metric 165.61p, metric_keep 0.06kWh, min_soc 1.89kWh @ 08-18 04:55:00, load 16.3kWh, PV 0.0kWh
2026-08-17 04:40:09.299158: Saving plan best values to HA entities
2026-08-17 04:40:09.468925: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:40:09.474770: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:40:09.480529: Best charging limit SoC's [12.5, 13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.74kWh, house 0kWh, export 0.0kWh, metric 165.61p, metric10 164.49p
2026-08-17 04:40:09.584514: Marginal costs baseline metric (no standing charge): 118.9793
2026-08-17 04:40:09.899097: Marginal energy costs matrix computed: min=2.3 max=25.37
2026-08-17 04:40:10.009421: Rate array import [{'start': 280, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1740, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 280, 'end': 1740, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:40:10.009789: - Your estimated bill for today is £1.19 and tomorrow is £3.91
2026-08-17 04:40:10.009828: - Import rates are cheap (8.0p) for the next 50 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:40:10.009847: - The battery is currently at 78% and is charging to 78% for the next 20 minutes.
2026-08-17 04:40:10.009862: - For the next 48 hours there will be no solar generation.
2026-08-17 04:40:10.009876: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 04:40:10.009890: - Your car is currently charging.
2026-08-17 04:40:10.009921:
2026-08-17 04:40:10.069458: Plan calculation took 6.45 seconds
2026-08-17 04:40:10.069833: Inverter 0: Type SK Sunsynk
2026-08-17 04:40:10.069873: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:40:10.070072: Reserve min: 7%, battery_min: 7%
2026-08-17 04:40:10.070139: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:40:10.070445: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -453W, load power 453W, PV Power 0W
2026-08-17 04:40:10.070649: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:40:10.070738: Inverter 0 scheduled charge enable is True
2026-08-17 04:40:10.070785: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:40:10.070872: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:40:10.070977: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:40:10.071010: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:40:10.071042: Inverter 0 scheduled discharge enable is False
2026-08-17 04:40:10.071143: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:40:10.071174: Inverter 0 discharge windows currently []
2026-08-17 04:40:10.071193: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:40:10.071209: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:40:10.071227: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:40:10.126758: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:30:00
2026-08-17 04:40:10.126903: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:40:10.127027: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:40:10.127101: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:40:10.127245: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:40:10.127424: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:40:10.127519: No export window planned
2026-08-17 04:40:10.127639: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:40:10.127669: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:40:10.127815: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:40:10.127889: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:40:10.127957: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:40:10.128001: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:40:10.128101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128323: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128355: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128377: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128400: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128423: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128448: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128468: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128605: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:40:10.128659: Inverter 0 count register writes 0
2026-08-17 04:40:10.151708: Total inverter register writes now 854
2026-08-17 04:40:10.187624: Info: Completed run status Hold charging
2026-08-17 04:40:10.194697: Info: record_status Hold charging target 78%-78%
2026-08-17 04:40:10.203813: Saved current settings to /config/predbat_config.json
2026-08-17 04:40:10.204122: Compare, best tariff: current metric 104.68p
2026-08-17 04:40:49.328090: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:40:49.328497: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:40:49.328566: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:40:49.328788: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:40:49.328848: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:40:49.328883: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:40:49.328921: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:43:03.573549: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:43:03.573852: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:43:03.573935: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:43:03.574126: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:43:03.574174: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:43:03.574201: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:43:03.574250: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:45:00.831081: --------------- PredBat - update at 2026-08-17 04:45:00+01:00 with clock skew 0 minutes, minutes now 285
2026-08-17 04:45:00.831806: Saved current settings to /config/predbat_config.json
2026-08-17 04:45:00.831942: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 04:45:00.832111: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:45:00.832229: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:45:00.852396: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:45:00.852552: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:45:00.852761: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:45:00.853541: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:45:00.853701: Predbat mode is set to Control charge & discharge
2026-08-17 04:45:01.047795: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:45:01.047957: Using load_power data to fill gaps in load_today data
2026-08-17 04:45:01.812518: Processing 721 30-minute periods for power integration
2026-08-17 04:45:02.003514: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:45:02.003659: Car charging hold False, threshold 6.0kWh
2026-08-17 04:45:02.003707: Current data so far today: load 3.2kWh, import 5.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:45:02.020652: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:45:02.020794: Cars: SoC: [57.428000000000004]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:45:02.021575: Standing charge is set to 46.63p
2026-08-17 04:45:02.120675: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.121034: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.121345: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.121578: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.121785: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.121984: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.122224: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.122449: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.122720: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.123011: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.123233: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.123474: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.123680: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:45:02.123943: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:45:02.124129: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:45:02.124207: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:45:02.129308: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:45:02.129661: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:45:02.170672: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:45:02.170820: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:45:02.171887: High export rate found rates in range 99p to -99p
2026-08-17 04:45:02.194828: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:45:02.194939: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:45:02.194992: Car 0 charging plan is: [{'start': 270, 'end': 300, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.6335, 'average': 8.0, 'cost': 5.07, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:45:02.208481: Battery level now 12.48kWh, -1hr ago 11.02kWh, at midnight 10.49kWh, battery value change in the last hour 10.01p, change today 13.69p, rate_forward 6.87p
2026-08-17 04:45:02.208903: Last hour: net energy 1.9kWh, import 1.9kWh, export 0.0kWh, car 0kWh, load 0.85kWh, net cost 15.2p, import 15.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:45:02.260169: Today's energy total net 5.3kWh, import 5.3kWh, export 0.0kWh, cost 89.03p, import 42.4p, export 0.0p, carbon 0.0kg
2026-08-17 04:45:02.260304: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:45:02.326946: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:45:02.346159: Today's load divergence 98.14%, in-day adjustment 74.28%, damping 0.95x, yesterday 68.37% today 98.24% blend 80.21%
2026-08-17 04:45:02.346260: Today's predicted so far 3.47kWh with 0.0kWh car/iBoost excluded, 2.8kWh import ignored, and 3.47kWh forecast extra.
2026-08-17 04:45:02.346287: Today's actual load so far 3.17kWh with 0.0kWh car/iBoost excluded, and 2.8kWh import ignored.
2026-08-17 04:45:02.381782: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.6335, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.6335, 'source': 'SMART'}]]
2026-08-17 04:45:02.382429: Sensor changes require a replan, will recompute the plan
2026-08-17 04:45:02.382621: Inverter 0: Type SK Sunsynk
2026-08-17 04:45:02.382670: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:45:02.382883: Reserve min: 7%, battery_min: 7%
2026-08-17 04:45:02.382961: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:45:02.383325: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -2W, current battery voltage 51.2V, grid power -449W, load power 450W, PV Power 0W
2026-08-17 04:45:02.383527: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:45:02.383632: Inverter 0 scheduled charge enable is True
2026-08-17 04:45:02.383699: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:45:02.383846: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:45:02.384018: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:45:02.384061: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:45:02.384104: Inverter 0 scheduled discharge enable is False
2026-08-17 04:45:02.384378: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:45:02.384458: Inverter 0 discharge windows currently []
2026-08-17 04:45:02.384515: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:45:02.384554: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:45:02.384599: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:45:02.442964: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:45:02.443047: Will recompute the plan as it is invalid
2026-08-17 04:45:02.443153: Recompute is saving previous plan...
2026-08-17 04:45:02.444147: Best charge window [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 78%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 78%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 78%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 78%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 78%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 78%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 78%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 78%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 78%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 78%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 78%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 78%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 78%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 78%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 78%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 78%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 78%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 78%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 78%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 78% ]
2026-08-17 04:45:02.444215: Best export window [ ]
2026-08-17 04:45:02.445136: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:45:02.448377: Load divergence over 8.0 hours mean 636.22W, min 259.8W, max 1788.0W, std dev 401.71W, divergence 31.57%
2026-08-17 04:45:02.468001: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:45:02.468127: LoadML is_calculating False
2026-08-17 04:45:02.468208: Creating pool of 12 processes to match your CPU count
2026-08-17 04:45:02.581778: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 04:45:02.582607: Optimise levels pass started at 2026-08-17 04:45:02
2026-08-17 04:45:02.582670: Optimise all windows, total charge 25 export 1
2026-08-17 04:45:03.261997: >> Region optimisation pass width 960 gives best_metric 260.4p, best_cost 253.72p, best_cycle 36.76kWh, best_import 20.59kWh
2026-08-17 04:45:03.443021: >> Region optimisation pass width 480 gives best_metric 260.4p, best_cost 253.72p, best_cycle 36.76kWh, best_import 20.59kWh
2026-08-17 04:45:03.985525: >> Region optimisation pass width 240 gives best_metric 250.87p, best_cost 261.45p, best_cycle 40.76kWh, best_import 21.55kWh
2026-08-17 04:45:04.594002: >> Region optimisation pass width 120 gives best_metric 250.87p, best_cost 261.45p, best_cycle 40.76kWh, best_import 21.55kWh
2026-08-17 04:45:04.594267: Calculated end_record as 08-18 05:00:00 based on best_price 8.0p, next_charge_start 08-17 05:00:00, max_windows 14
2026-08-17 04:45:04.594340: Optimise levels pass ended at 2026-08-17 04:45:04, duration 2.0 seconds tried 69 combinations
2026-08-17 04:45:04.594411: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 250.87p, best_keep 0.18kWh, best_cycle 40.76kWh, best_carbon 0kg, best_import 21.55kWh
2026-08-17 04:45:04.614146: Starting detailed optimisation end_record 08-18 05:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 04:45:07.196084: Tweak plan optimisation started metric 106.49p, cost 119.12p
2026-08-17 04:45:07.548851: Tweak optimisation finished metric 106.49p, cost 119.12p, metric_keep 0.03kWh, cycle 15.93kWh, carbon 0kg, import 3.76kWh, changed 8 window(s)
2026-08-17 04:45:07.578249: Swap charge optimisation started metric 106.49p, cost 119.12p, min_improvement_swap 0.1p
2026-08-17 04:45:07.691287: Swap charge optimisation finished metric 106.49p, cost 119.12p
2026-08-17 04:45:07.739506: Raw charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:45:07.739936: Unclipped charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:45:07.740175: Unfiltered charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:45:07.740467: Filtered charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:45:07.778814: Previous plan best metric is 106.49 (cost 119.12) and new plan best metric is 106.49 (cost 119.12)
2026-08-17 04:45:07.779087: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 04:45:07.779294: Plan valid is now true after recompute was False
2026-08-17 04:45:07.810485: predict base end_record 08-18 05:00:00, final soc 12.48kWh, metric 252.25p, metric_keep 0kWh, min_soc 2.7kWh @ 08-17 23:55:00, load 16.38kWh, PV 0.0kWh
2026-08-17 04:45:07.945966: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:45:08.001853: predict base10 end_record 08-18 05:00:00, final soc 12.48kWh, metric 257.81p, metric_keep 0kWh, min_soc 2.23kWh @ 08-17 23:55:00, load 17.0kWh, PV 0.0kWh
2026-08-17 04:45:08.089693: predict best10 end_record 08-18 05:00:00, final soc 1.12kWh, metric 164.29p, metric_keep 3.8kWh, min_soc 1.12kWh @ 08-18 04:40:00, load 17.0kWh, PV 0.0kWh
2026-08-17 04:45:08.183493: predict best end_record 08-18 05:00:00, final soc 1.93kWh, metric 165.75p, metric_keep 0.03kWh, min_soc 1.93kWh @ 08-18 04:55:00, load 16.38kWh, PV 0.0kWh
2026-08-17 04:45:08.183594: Saving plan best values to HA entities
2026-08-17 04:45:08.366413: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:45:08.374165: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:45:08.380732: Best charging limit SoC's [12.5, 13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.76kWh, house 0kWh, export 0.0kWh, metric 165.75p, metric10 164.29p
2026-08-17 04:45:08.460294: Marginal costs baseline metric (no standing charge): 119.1189
2026-08-17 04:45:08.757042: Marginal energy costs matrix computed: min=1.96 max=25.4
2026-08-17 04:45:08.835366: Rate array import [{'start': 285, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1740, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 285, 'end': 1740, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:45:08.835941: - Your estimated bill for today is £1.19 and tomorrow is £3.90
2026-08-17 04:45:08.835995: - Import rates are cheap (8.0p) for the next 45 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:45:08.836020: - The battery is currently at 78% and is charging to 78% for the next 15 minutes.
2026-08-17 04:45:08.836041: - For the next 48 hours there will be no solar generation.
2026-08-17 04:45:08.836062: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 04:45:08.836087: - Your car is currently charging.
2026-08-17 04:45:08.836112:
2026-08-17 04:45:08.903591: Plan calculation took 6.46 seconds
2026-08-17 04:45:08.909876: Saved plan to storage
2026-08-17 04:45:08.913419: No high rate period found
2026-08-17 04:45:08.985946: Import threshold used for optimisation was 8.0p
2026-08-17 04:45:09.050521: Low import rate windows [0: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 1: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 2: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 3: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 4: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 5: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 6: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 7: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 8: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 9: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 10: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 11: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 12: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 13: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 14: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0]
2026-08-17 04:45:09.060492: Inverter 0: Type SK Sunsynk
2026-08-17 04:45:09.060612: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:45:09.061046: Reserve min: 7%, battery_min: 7%
2026-08-17 04:45:09.061208: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:45:09.061774: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power 0W, current battery voltage 51.2V, grid power -446W, load power 447W, PV Power 0W
2026-08-17 04:45:09.062124: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:45:09.062299: Inverter 0 scheduled charge enable is True
2026-08-17 04:45:09.062389: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:45:09.062554: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:45:09.062758: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:45:09.062818: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:45:09.062878: Inverter 0 scheduled discharge enable is False
2026-08-17 04:45:09.063094: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:45:09.063149: Inverter 0 discharge windows currently []
2026-08-17 04:45:09.063211: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:45:09.063257: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:45:09.063288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:45:09.127805: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:30:00
2026-08-17 04:45:09.127935: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:45:09.128070: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:45:09.128152: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:45:09.128298: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:45:09.128496: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:45:09.128610: No export window planned
2026-08-17 04:45:09.128729: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:45:09.128765: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:45:09.128902: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:45:09.129017: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:45:09.129083: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:45:09.129144: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:45:09.129296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129437: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129536: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129564: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129589: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129624: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129654: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129678: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129710: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129909: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129932: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:45:09.129959: Inverter 0 count register writes 0
2026-08-17 04:45:09.153483: Total inverter register writes now 854
2026-08-17 04:45:09.192698: Info: Completed run status Hold charging
2026-08-17 04:45:09.199501: Info: record_status Hold charging target 78%-78%
2026-08-17 04:45:09.206504: Saved current settings to /config/predbat_config.json
2026-08-17 04:45:09.206802: Compare, best tariff: current metric 104.68p
2026-08-17 04:45:49.336531: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:45:49.336774: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:45:49.336810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:45:49.337003: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:45:49.337066: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:45:49.337087: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:45:49.337117: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:48:03.588260: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:48:03.588662: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:48:03.588770: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:48:03.589069: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:48:03.589141: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:48:03.589168: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:48:03.589186: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:50:00.839063: --------------- PredBat - update at 2026-08-17 04:50:00+01:00 with clock skew 0 minutes, minutes now 290
2026-08-17 04:50:00.840071: Saved current settings to /config/predbat_config.json
2026-08-17 04:50:00.840287: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 04:50:00.840434: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:50:00.840547: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:50:00.868610: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:50:00.868805: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:50:00.869124: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:50:00.869924: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:50:00.870078: Predbat mode is set to Control charge & discharge
2026-08-17 04:50:01.132680: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:50:01.132857: Using load_power data to fill gaps in load_today data
2026-08-17 04:50:02.038354: Processing 721 30-minute periods for power integration
2026-08-17 04:50:02.244642: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:50:02.244804: Car charging hold False, threshold 6.0kWh
2026-08-17 04:50:02.244857: Current data so far today: load 3.15kWh, import 5.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:50:02.264086: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:50:02.264212: Cars: SoC: [58.014]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:50:02.265174: Standing charge is set to 46.63p
2026-08-17 04:50:02.372186: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.372606: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.372919: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.373253: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.373490: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.373702: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.373892: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.374070: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.374241: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.374411: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.374595: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.374775: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.374945: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:50:02.375182: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:50:02.375352: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:50:02.375415: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:50:02.381215: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:50:02.381757: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:50:02.427326: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:50:02.427465: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:50:02.429115: High export rate found rates in range 99p to -99p
2026-08-17 04:50:02.458534: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:50:02.458702: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:50:02.458766: Car 0 charging plan is: [{'start': 270, 'end': 300, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.6335, 'average': 8.0, 'cost': 5.07, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:50:02.474768: Battery level now 12.48kWh, -1hr ago 11.37kWh, at midnight 10.49kWh, battery value change in the last hour 7.64p, change today 13.69p, rate_forward 6.87p
2026-08-17 04:50:02.475188: Last hour: net energy 1.65kWh, import 1.65kWh, export 0.0kWh, car 0kWh, load 0.78kWh, net cost 13.2p, import 13.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:50:02.541794: Today's energy total net 5.5kWh, import 5.5kWh, export 0.0kWh, cost 90.63p, import 44.0p, export 0.0p, carbon 0.0kg
2026-08-17 04:50:02.541937: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:50:02.619820: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:50:02.645146: Today's load divergence 97.63%, in-day adjustment 74.29%, damping 0.95x, yesterday 68.37% today 97.75% blend 79.86%
2026-08-17 04:50:02.645517: Today's predicted so far 3.49kWh with 0.0kWh car/iBoost excluded, 2.93kWh import ignored, and 3.49kWh forecast extra.
2026-08-17 04:50:02.645584: Today's actual load so far 3.12kWh with 0.0kWh car/iBoost excluded, and 2.93kWh import ignored.
2026-08-17 04:50:02.689377: Inverter 0: Type SK Sunsynk
2026-08-17 04:50:02.689471: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:50:02.689719: Reserve min: 7%, battery_min: 7%
2026-08-17 04:50:02.689811: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:50:02.690172: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -1W, current battery voltage 51.2V, grid power -448W, load power 448W, PV Power 0W
2026-08-17 04:50:02.690379: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:50:02.690496: Inverter 0 scheduled charge enable is True
2026-08-17 04:50:02.690572: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:50:02.690673: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:50:02.690824: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:50:02.690868: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:50:02.690910: Inverter 0 scheduled discharge enable is False
2026-08-17 04:50:02.691046: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:50:02.691085: Inverter 0 discharge windows currently []
2026-08-17 04:50:02.691109: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:50:02.691132: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:50:02.691150: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:50:02.767759: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:50:02.767902: Plan was last updated on 2026-08-17 04:45:00+01:00 and is now 5.0 minutes old
2026-08-17 04:50:02.768337: Best charge window [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ]
2026-08-17 04:50:02.768414: Best export window [ ]
2026-08-17 04:50:02.769885: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:50:02.773367: Load divergence over 8.0 hours mean 646.89W, min 260.4W, max 1896.0W, std dev 414.29W, divergence 32.02%
2026-08-17 04:50:02.791960: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:50:02.792088: LoadML is_calculating False
2026-08-17 04:50:02.792155: Creating pool of 12 processes to match your CPU count
2026-08-17 04:50:02.928141: predict base end_record 08-18 05:05:00, final soc 12.48kWh, metric 253.92p, metric_keep 0kWh, min_soc 2.68kWh @ 08-17 23:55:00, load 16.33kWh, PV 0.0kWh
2026-08-17 04:50:03.095297: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:50:03.147398: predict base10 end_record 08-18 05:05:00, final soc 12.48kWh, metric 259.45p, metric_keep 0kWh, min_soc 2.21kWh @ 08-17 23:55:00, load 16.96kWh, PV 0.0kWh
2026-08-17 04:50:03.229397: predict best10 end_record 08-18 05:05:00, final soc 1.44kWh, metric 168.68p, metric_keep 3.82kWh, min_soc 1.12kWh @ 08-18 04:40:00, load 16.96kWh, PV 0.0kWh
2026-08-17 04:50:03.318803: predict best end_record 08-18 05:05:00, final soc 2.35kWh, metric 170.92p, metric_keep 0.01kWh, min_soc 1.96kWh @ 08-18 04:55:00, load 16.33kWh, PV 0.0kWh
2026-08-17 04:50:03.318960: Saving plan best values to HA entities
2026-08-17 04:50:03.489194: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:50:03.494913: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:50:03.500233: Best charging limit SoC's [12.5, 13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.21kWh, house 0kWh, export 0.0kWh, metric 170.92p, metric10 168.68p
2026-08-17 04:50:03.584591: Marginal costs baseline metric (no standing charge): 124.2891
2026-08-17 04:50:03.823081: Marginal energy costs matrix computed: min=1.76 max=25.37
2026-08-17 04:50:03.909988: Rate array import [{'start': 290, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1745, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 290, 'end': 1745, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:50:03.910428: - Your estimated bill for today is £1.21 and tomorrow is £3.89
2026-08-17 04:50:03.910481: - Import rates are cheap (8.0p) for the next 40 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:50:03.910505: - The battery is currently at 78% and is charging to 78% for the next 10 minutes.
2026-08-17 04:50:03.910523: - For the next 48 hours there will be no solar generation.
2026-08-17 04:50:03.910541: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 04:50:03.910577: - Your car is currently charging.
2026-08-17 04:50:03.910606:
2026-08-17 04:50:03.973741: Plan calculation took 1.21 seconds
2026-08-17 04:50:03.979141: No high rate period found
2026-08-17 04:50:04.048813: Import threshold used for optimisation was 8.0p
2026-08-17 04:50:04.112662: Low import rate windows [0: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 1: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 2: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 3: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 4: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 5: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 6: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 7: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 8: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 9: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 10: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 11: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 12: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 13: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 14: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0]
2026-08-17 04:50:04.119548: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:30:00
2026-08-17 04:50:04.119702: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:50:04.119894: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:50:04.119997: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:50:04.120161: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:50:04.120469: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:50:04.120650: No export window planned
2026-08-17 04:50:04.120786: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:50:04.120823: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:50:04.121028: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:50:04.121187: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:50:04.121262: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:50:04.121334: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:50:04.121459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121635: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121660: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121716: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121745: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121770: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121804: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121833: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121864: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121894: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.121999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.122024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.122048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.122075: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.122098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.122127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:50:04.122148: Inverter 0 count register writes 0
2026-08-17 04:50:04.143057: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 04:50:04.150663: Total inverter register writes now 854
2026-08-17 04:50:04.192190: Info: Completed run status Hold charging
2026-08-17 04:50:04.199875: Info: record_status Hold charging target 78%-78%
2026-08-17 04:50:04.209482: Saved current settings to /config/predbat_config.json
2026-08-17 04:50:04.209934: Compare, best tariff: current metric 104.68p
2026-08-17 04:50:34.346247: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:50:34.346546: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:50:34.346600: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:50:34.346795: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:50:34.346843: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:50:34.346866: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:50:34.346884: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:52:48.596189: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:52:48.596598: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:52:48.596652: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:52:48.596836: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:52:48.596900: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:52:48.596926: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:52:48.597003: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:54:48.833725: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:54:48.834456: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:54:48.834519: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:54:48.834706: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:54:48.834753: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:54:48.834779: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:54:48.834815: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:55:00.933403: --------------- PredBat - update at 2026-08-17 04:55:00+01:00 with clock skew 0 minutes, minutes now 295
2026-08-17 04:55:00.934325: Saved current settings to /config/predbat_config.json
2026-08-17 04:55:00.934571: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 04:55:00.934744: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 04:55:00.934905: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 04:55:00.958693: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 04:55:00.958844: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 04:55:00.959042: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 04:55:00.959596: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 04:55:00.959722: Predbat mode is set to Control charge & discharge
2026-08-17 04:55:01.186013: Found 21602 load_today datapoints going back 28 days
2026-08-17 04:55:01.186180: Using load_power data to fill gaps in load_today data
2026-08-17 04:55:02.096063: Processing 721 30-minute periods for power integration
2026-08-17 04:55:02.302463: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 04:55:02.302628: Car charging hold False, threshold 6.0kWh
2026-08-17 04:55:02.302746: Current data so far today: load 3.2kWh, import 5.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 04:55:02.319956: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 04:55:02.320090: Cars: SoC: [58.014]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 04:55:02.321106: Standing charge is set to 46.63p
2026-08-17 04:55:02.413833: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.414159: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.414351: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.414546: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.414727: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.414916: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.415099: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.415269: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.415433: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.415602: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.415765: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.415951: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.416119: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 04:55:02.416350: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:55:02.416515: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.63, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 04:55:02.416576: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 04:55:02.422058: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 04:55:02.422512: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 04:55:02.467083: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 04:55:02.467215: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 04:55:02.468396: High export rate found rates in range 99p to -99p
2026-08-17 04:55:02.500774: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 04:55:02.500932: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 04:55:02.501021: Car 0 charging plan is: [{'start': 270, 'end': 300, 'kwh': 3.7, 'average': 8.0, 'cost': 29.6, 'soc': 58.6, 'octopus': True}, {'start': 450, 'end': 480, 'kwh': 0.6335, 'average': 8.0, 'cost': 5.07, 'soc': 58.6, 'octopus': True}]
2026-08-17 04:55:02.514806: Battery level now 12.48kWh, -1hr ago 12.06kWh, at midnight 10.49kWh, battery value change in the last hour 2.91p, change today 13.69p, rate_forward 6.87p
2026-08-17 04:55:02.515168: Last hour: net energy 1.2kWh, import 1.2kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 9.6p, import 9.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 04:55:02.570060: Today's energy total net 5.5kWh, import 5.5kWh, export 0.0kWh, cost 90.63p, import 44.0p, export 0.0p, carbon 0.0kg
2026-08-17 04:55:02.570246: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:55:02.650620: Using weighted-bucket historical load forecast over 14 days
2026-08-17 04:55:02.675203: Today's load divergence 97.73%, in-day adjustment 74.41%, damping 0.95x, yesterday 68.37% today 97.85% blend 79.51%
2026-08-17 04:55:02.675302: Today's predicted so far 3.52kWh with 0.0kWh car/iBoost excluded, 2.97kWh import ignored, and 3.52kWh forecast extra.
2026-08-17 04:55:02.675333: Today's actual load so far 3.16kWh with 0.0kWh car/iBoost excluded, and 2.97kWh import ignored.
2026-08-17 04:55:02.715389: Inverter 0: Type SK Sunsynk
2026-08-17 04:55:02.715488: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:55:02.715726: Reserve min: 7%, battery_min: 7%
2026-08-17 04:55:02.715821: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:55:02.716175: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power 0W, current battery voltage 51.2V, grid power -456W, load power 456W, PV Power 0W
2026-08-17 04:55:02.716385: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:55:02.716489: Inverter 0 scheduled charge enable is True
2026-08-17 04:55:02.716569: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:55:02.716722: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:55:02.716913: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:55:02.716989: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:55:02.717052: Inverter 0 scheduled discharge enable is False
2026-08-17 04:55:02.717246: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:55:02.717291: Inverter 0 discharge windows currently []
2026-08-17 04:55:02.717316: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:55:02.717335: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:55:02.717360: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:55:02.786489: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 04:55:02.786601: Plan was last updated on 2026-08-17 04:45:00+01:00 and is now 10.0 minutes old
2026-08-17 04:55:02.786860: Best charge window [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ]
2026-08-17 04:55:02.786920: Best export window [ ]
2026-08-17 04:55:02.787754: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:55:02.790950: Load divergence over 8.0 hours mean 653.98W, min 260.4W, max 2007.0W, std dev 415.35W, divergence 31.76%
2026-08-17 04:55:02.809820: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:55:02.809992: LoadML is_calculating False
2026-08-17 04:55:02.810069: Creating pool of 12 processes to match your CPU count
2026-08-17 04:55:02.955012: predict base end_record 08-18 05:10:00, final soc 12.48kWh, metric 254.05p, metric_keep 0kWh, min_soc 2.65kWh @ 08-17 23:55:00, load 16.39kWh, PV 0.0kWh
2026-08-17 04:55:03.122061: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:55:03.170873: predict base10 end_record 08-18 05:10:00, final soc 12.48kWh, metric 259.63p, metric_keep 0kWh, min_soc 2.17kWh @ 08-17 23:55:00, load 17.02kWh, PV 0.0kWh
2026-08-17 04:55:03.263300: predict best10 end_record 08-18 05:10:00, final soc 1.77kWh, metric 171.6p, metric_keep 3.86kWh, min_soc 1.12kWh @ 08-18 04:40:00, load 17.02kWh, PV 0.0kWh
2026-08-17 04:55:03.363109: predict best end_record 08-18 05:10:00, final soc 2.74kWh, metric 174.41p, metric_keep 0.01kWh, min_soc 1.97kWh @ 08-18 04:55:00, load 16.39kWh, PV 0.0kWh
2026-08-17 04:55:03.363247: Saving plan best values to HA entities
2026-08-17 04:55:03.546623: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:55:03.552717: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:55:03.558698: Best charging limit SoC's [12.5, 13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.64kWh, house 0kWh, export 0.0kWh, metric 174.41p, metric10 171.6p
2026-08-17 04:55:03.637962: Marginal costs baseline metric (no standing charge): 127.78
2026-08-17 04:55:03.931044: Marginal energy costs matrix computed: min=1.7 max=25.41
2026-08-17 04:55:04.011536: Rate array import [{'start': 295, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1750, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 295, 'end': 1750, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:55:04.012026: - Your estimated bill for today is £1.20 and tomorrow is £3.89
2026-08-17 04:55:04.012082: - Import rates are cheap (8.0p) for the next 35 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:55:04.012106: - The battery is currently at 78% and is charging to 78% for the next 5 minutes.
2026-08-17 04:55:04.012124: - For the next 48 hours there will be no solar generation.
2026-08-17 04:55:04.012141: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 04:55:04.012159: - Your car is currently charging.
2026-08-17 04:55:04.012176:
2026-08-17 04:55:04.066960: Plan calculation took 1.28 seconds
2026-08-17 04:55:04.069706: No high rate period found
2026-08-17 04:55:04.128522: Import threshold used for optimisation was 8.0p
2026-08-17 04:55:04.192693: Low import rate windows [0: 08-17 04:30:00 - 08-17 05:00:00 @ 8.0, 1: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 2: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 3: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 4: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 5: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 6: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 7: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 8: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 9: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 10: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 11: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 12: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 13: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 14: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 15: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 16: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 17: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 18: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 19: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 20: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 21: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 22: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 23: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 24: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 25: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0]
2026-08-17 04:55:04.198816: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:30:00
2026-08-17 04:55:04.198958: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:55:04.199177: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:55:04.199296: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:55:04.199513: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:55:04.199817: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:55:04.200012: No export window planned
2026-08-17 04:55:04.200193: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:55:04.200239: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:55:04.200457: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:55:04.200572: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:55:04.200673: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:55:04.200777: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:55:04.200993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201413: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201470: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201524: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201568: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201626: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201692: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201752: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.201971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.202029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.202107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.202143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.202172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.202197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:04.202222: Inverter 0 count register writes 0
2026-08-17 04:55:04.218755: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 04:55:04.218934: Recompute is saving previous plan...
2026-08-17 04:55:04.219766: Best charge window [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 78%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 78%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 78%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 78%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 78%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 78%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 78%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 78%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 78%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 78%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 78%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 78%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 78%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 78%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 78%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 78%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 78%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 78%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 78%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 78% ]
2026-08-17 04:55:04.219813: Best export window [ ]
2026-08-17 04:55:04.220513: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 04:55:04.223028: Load divergence over 8.0 hours mean 653.98W, min 260.4W, max 2007.0W, std dev 415.35W, divergence 31.76%
2026-08-17 04:55:04.237334: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 04:55:04.237442: LoadML is_calculating False
2026-08-17 04:55:04.237504: Creating pool of 12 processes to match your CPU count
2026-08-17 04:55:04.328273: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 04:55:04.329478: Optimise levels pass started at 2026-08-17 04:55:04
2026-08-17 04:55:04.329558: Optimise all windows, total charge 25 export 1
2026-08-17 04:55:04.965996: >> Region optimisation pass width 960 gives best_metric 262.85p, best_cost 255.58p, best_cycle 36.79kWh, best_import 20.62kWh
2026-08-17 04:55:05.137260: >> Region optimisation pass width 480 gives best_metric 262.85p, best_cost 255.58p, best_cycle 36.79kWh, best_import 20.62kWh
2026-08-17 04:55:05.662065: >> Region optimisation pass width 240 gives best_metric 252.86p, best_cost 262.56p, best_cycle 40.89kWh, best_import 21.49kWh
2026-08-17 04:55:06.258102: >> Region optimisation pass width 120 gives best_metric 252.86p, best_cost 262.56p, best_cycle 40.89kWh, best_import 21.49kWh
2026-08-17 04:55:06.258333: Calculated end_record as 08-18 05:00:00 based on best_price 8.0p, next_charge_start 08-17 05:00:00, max_windows 14
2026-08-17 04:55:06.258398: Optimise levels pass ended at 2026-08-17 04:55:06, duration 1.9 seconds tried 69 combinations
2026-08-17 04:55:06.258476: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 252.86p, best_keep 0.34kWh, best_cycle 40.89kWh, best_carbon 0kg, best_import 21.49kWh
2026-08-17 04:55:06.276031: Starting detailed optimisation end_record 08-18 05:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 04:55:08.871173: Tweak plan optimisation started metric 107.53p, cost 120.42p
2026-08-17 04:55:09.194696: Tweak optimisation finished metric 107.53p, cost 120.42p, metric_keep 0.01kWh, cycle 15.9kWh, carbon 0kg, import 3.72kWh, changed 8 window(s)
2026-08-17 04:55:09.215927: Swap charge optimisation started metric 107.53p, cost 120.42p, min_improvement_swap 0.1p
2026-08-17 04:55:09.334273: Swap charge optimisation finished metric 107.53p, cost 120.42p
2026-08-17 04:55:09.373426: Raw charge windows [ 17-08 04:30:00 - 17-08 05:00:00 @ 8.0p 78%, 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:55:09.373741: Unclipped charge windows [ 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:55:09.373936: Unfiltered charge windows [ 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:55:09.374083: Filtered charge windows [ 17-08 04:30:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 04:55:09.405241: Previous plan best metric is 107.53 (cost 120.42) and new plan best metric is 107.53 (cost 120.42)
2026-08-17 04:55:09.405456: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 04:55:09.405624: Plan valid is now true after recompute was False
2026-08-17 04:55:09.432939: predict base end_record 08-18 05:00:00, final soc 12.48kWh, metric 253.36p, metric_keep 0kWh, min_soc 2.65kWh @ 08-17 23:55:00, load 16.31kWh, PV 0.0kWh
2026-08-17 04:55:09.573243: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 04:55:09.619837: predict base10 end_record 08-18 05:00:00, final soc 12.48kWh, metric 258.9p, metric_keep 0kWh, min_soc 2.17kWh @ 08-17 23:55:00, load 16.93kWh, PV 0.0kWh
2026-08-17 04:55:09.703156: predict best10 end_record 08-18 05:00:00, final soc 1.12kWh, metric 165.32p, metric_keep 3.59kWh, min_soc 1.12kWh @ 08-18 04:40:00, load 16.93kWh, PV 0.0kWh
2026-08-17 04:55:09.789315: predict best end_record 08-18 05:00:00, final soc 1.97kWh, metric 167.06p, metric_keep 0.01kWh, min_soc 1.97kWh @ 08-18 04:55:00, load 16.31kWh, PV 0.0kWh
2026-08-17 04:55:09.789413: Saving plan best values to HA entities
2026-08-17 04:55:09.986335: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 04:55:09.991881: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 04:55:09.997532: Best charging limit SoC's [12.5, 13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.72kWh, house 0kWh, export 0.0kWh, metric 167.06p, metric10 165.32p
2026-08-17 04:55:10.086914: Marginal costs baseline metric (no standing charge): 120.4245
2026-08-17 04:55:10.371261: Marginal energy costs matrix computed: min=1.7 max=25.41
2026-08-17 04:55:10.476346: Rate array import [{'start': 295, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1740, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 295, 'end': 1740, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 04:55:10.477196: - Your estimated bill for today is £1.20 and tomorrow is £3.89
2026-08-17 04:55:10.477276: - Import rates are cheap (8.0p) for the next 35 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 04:55:10.477302: - The battery is currently at 78% and is charging to 78% for the next 5 minutes.
2026-08-17 04:55:10.477321: - For the next 48 hours there will be no solar generation.
2026-08-17 04:55:10.477343: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 04:55:10.477361: - Your car is currently charging.
2026-08-17 04:55:10.477379:
2026-08-17 04:55:10.592724: Plan calculation took 6.37 seconds
2026-08-17 04:55:10.593216: Inverter 0: Type SK Sunsynk
2026-08-17 04:55:10.593283: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 04:55:10.593549: Reserve min: 7%, battery_min: 7%
2026-08-17 04:55:10.593659: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 04:55:10.594051: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power 0W, current battery voltage 51.2V, grid power -456W, load power 456W, PV Power 0W
2026-08-17 04:55:10.594304: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:55:10.594416: Inverter 0 scheduled charge enable is True
2026-08-17 04:55:10.594472: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 04:55:10.594603: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 04:55:10.594745: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:55:10.594786: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:55:10.594826: Inverter 0 scheduled discharge enable is False
2026-08-17 04:55:10.594992: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:55:10.595036: Inverter 0 discharge windows currently []
2026-08-17 04:55:10.595059: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:55:10.595105: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:55:10.595125: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:55:10.727081: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 04:30:00
2026-08-17 04:55:10.727199: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 78%
2026-08-17 04:55:10.727321: Inverter 0 Target SoC 78%, (this inverter 78%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 04:55:10.727401: Inverter 0 Hold charging as SoC 78% is above target SoC 78% (global soc target 78%) set_discharge_during_charge True
2026-08-17 04:55:10.727513: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:55:10.727677: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:55:10.727767: No export window planned
2026-08-17 04:55:10.727866: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 04:55:10.727915: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 04:55:10.728038: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 04:55:10.728115: Inverter 0 setting charging SoC to 78% as per target
2026-08-17 04:55:10.728165: Inverter 0 adjust target SoC for charge to 78% (12.48kWh/16.0kWh 16.0kWh) based on going from 78% -> 78% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.48kWh
2026-08-17 04:55:10.728210: Inverter 0 Current Target SoC is 78%, already at target
2026-08-17 04:55:10.728305: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728391: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728489: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728513: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728537: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728558: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728585: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728605: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728629: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 04:55:10.728851: Inverter 0 count register writes 0
2026-08-17 04:55:10.766671: Total inverter register writes now 854
2026-08-17 04:55:10.804866: Info: Completed run status Hold charging
2026-08-17 04:55:10.813458: Info: record_status Hold charging target 78%-78%
2026-08-17 04:55:10.821828: Saved current settings to /config/predbat_config.json
2026-08-17 04:55:10.822306: Compare, best tariff: current metric 104.68p
2026-08-17 04:55:26.597573: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 04:55:27.664835: Processing 1345 30-minute periods for power integration
2026-08-17 04:55:27.771206: ML Component: Car charging hold False, car energy reported load False
2026-08-17 04:55:27.877784: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 04:55:27.982650: ML Temperature data points: 50106
2026-08-17 04:55:28.265770: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 04:55:28.310713: ML Component: Data fetch completed, load data age 58.0 days, 16883 data points
2026-08-17 04:55:28.310886: ML Component: Starting fine-tune training (2h interval), model age is 2.068673483611111 hours
2026-08-17 04:55:28.310936: ML Component: Doing training...
2026-08-17 04:55:28.326570: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-17 04:55:28.326741: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.6 days)
2026-08-17 04:55:28.388620: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-17 04:55:28.388780: ML Predictor: Starting initial training with 30 epochs
2026-08-17 04:55:29.035138: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-17 04:55:33.768715: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-17 04:55:33.836973: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0482) load(mean=0.0588 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.6012 std=4.4849) import_rate(mean=16.9112 std=8.3457) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5257)
2026-08-17 04:55:48.704926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:55:48.706076: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:55:48.706258: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:55:48.706591: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:55:48.706768: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:55:48.706894: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:55:48.707155: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:56:03.247356: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0233 val_mae=0.0073 kWh val_bias=+0.0024 kWh (+3.3%) combined=0.0049 kWh ema_combined=0.0049 kWh
2026-08-17 04:56:33.381694: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0280 val_mae=0.0059 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0038 kWh ema_combined=0.0046 kWh
2026-08-17 04:57:01.725316: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0187 val_mae=0.0057 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0040 kWh ema_combined=0.0044 kWh
2026-08-17 04:57:31.216230: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0177 val_mae=0.0046 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0023 kWh ema_combined=0.0038 kWh
2026-08-17 04:57:49.289617: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 04:57:49.290075: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 04:57:49.290358: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 04:57:49.290673: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 04:57:49.290746: Note: Inverter does not support discharge freeze - disabled
2026-08-17 04:57:49.290784: Note: Inverter does not support charge freeze - disabled
2026-08-17 04:57:49.290817: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 04:57:59.531251: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0163 val_mae=0.0053 kWh val_bias=-0.0013 kWh (-1.7%) combined=0.0027 kWh ema_combined=0.0035 kWh
2026-08-17 04:58:25.459655: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0132 val_mae=0.0067 kWh val_bias=-0.0051 kWh (-7.0%) combined=0.0061 kWh ema_combined=0.0042 kWh
2026-08-17 04:58:52.788360: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0126 val_mae=0.0046 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0026 kWh ema_combined=0.0037 kWh
2026-08-17 04:59:21.600174: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0126 val_mae=0.0045 kWh val_bias=-0.0015 kWh (-2.1%) combined=0.0031 kWh ema_combined=0.0035 kWh
2026-08-17 04:59:50.048831: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0110 val_mae=0.0039 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0023 kWh ema_combined=0.0032 kWh
2026-08-17 05:00:00.707592: --------------- PredBat - update at 2026-08-17 05:00:00+01:00 with clock skew 0 minutes, minutes now 300
2026-08-17 05:00:00.708991: Saved current settings to /config/predbat_config.json
2026-08-17 05:00:00.709378: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 05:00:00.709639: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:00:00.709873: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:00:00.748520: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:00:00.748715: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:00:00.748974: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:00:00.749711: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:00:00.749873: Predbat mode is set to Control charge & discharge
2026-08-17 05:00:01.158742: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:00:01.159390: Using load_power data to fill gaps in load_today data
2026-08-17 05:00:02.953332: Processing 721 30-minute periods for power integration
2026-08-17 05:00:03.398223: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:00:03.398534: Car charging hold False, threshold 6.0kWh
2026-08-17 05:00:03.398629: Current data so far today: load 3.25kWh, import 5.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:00:03.417434: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:00:03.418300: Cars: SoC: [58.014]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:00:03.419418: Standing charge is set to 46.63p
2026-08-17 05:00:03.640834: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.641618: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.644422: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.644736: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.645024: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.645454: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.645881: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.646319: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.646716: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.652036: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.652487: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.652893: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.653341: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:00:03.653739: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:00:03.654203: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:00:03.654382: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:00:03.663406: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:00:03.664281: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:00:03.762408: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:00:03.762826: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:00:03.765588: High export rate found rates in range 99p to -99p
2026-08-17 05:00:03.848176: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:00:03.861415: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:00:03.861717: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:00:03.906014: Battery level now 12.48kWh, -1hr ago 12.42kWh, at midnight 10.49kWh, battery value change in the last hour 0.44p, change today 13.69p, rate_forward 6.87p
2026-08-17 05:00:03.907525: Last hour: net energy 1.0kWh, import 1.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 8.0p, import 8.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:00:04.061491: Today's energy total net 5.6kWh, import 5.6kWh, export 0.0kWh, cost 91.43p, import 44.8p, export 0.0p, carbon 0.0kg
2026-08-17 05:00:04.061648: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:00:04.162299: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:00:04.189698: Today's load divergence 97.43%, in-day adjustment 74.45%, damping 0.95x, yesterday 68.37% today 97.56% blend 79.17%
2026-08-17 05:00:04.189809: Today's predicted so far 3.64kWh with 0.0kWh car/iBoost excluded, 2.98kWh import ignored, and 3.64kWh forecast extra.
2026-08-17 05:00:04.189843: Today's actual load so far 3.24kWh with 0.0kWh car/iBoost excluded, and 2.98kWh import ignored.
2026-08-17 05:00:04.239869: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.6335, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]]
2026-08-17 05:00:04.240750: Sensor changes require a replan, will recompute the plan
2026-08-17 05:00:04.241036: Inverter 0: Type SK Sunsynk
2026-08-17 05:00:04.241104: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:00:04.241377: Reserve min: 7%, battery_min: 7%
2026-08-17 05:00:04.241502: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:00:04.241830: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -1W, current battery voltage 51.2V, grid power -455W, load power 455W, PV Power 0W
2026-08-17 05:00:04.242049: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:00:04.242197: Inverter 0 scheduled charge enable is True
2026-08-17 05:00:04.242267: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:00:04.242444: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 05:00:04.242628: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:00:04.242673: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:00:04.242779: Inverter 0 scheduled discharge enable is False
2026-08-17 05:00:04.242965: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:00:04.243009: Inverter 0 discharge windows currently []
2026-08-17 05:00:04.243101: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:00:04.243138: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:00:04.243158: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:00:04.335726: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:00:04.335950: Will recompute the plan as it is invalid
2026-08-17 05:00:04.336201: Current charge window has expired, removing it
2026-08-17 05:00:04.336422: Recompute is saving previous plan...
2026-08-17 05:00:04.337784: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 78%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 78%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 78%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 78%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 78%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 78%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 78%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 78%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 78%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 78%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 78%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 78%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 78%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 78%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 78%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 78%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 78%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 78%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 78%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 78% ]
2026-08-17 05:00:04.337943: Best export window [ ]
2026-08-17 05:00:04.339110: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:00:04.343404: Load divergence over 8.0 hours mean 661.65W, min 262.2W, max 1983.0W, std dev 413.02W, divergence 31.21%
2026-08-17 05:00:04.369492: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:00:04.369799: LoadML is_calculating True
2026-08-17 05:00:04.369957: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:00:04.383622: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 05:00:04.384348: Optimise levels pass started at 2026-08-17 05:00:04
2026-08-17 05:00:04.384476: Optimise all windows, total charge 25 export 1
2026-08-17 05:00:09.794279: >> Region optimisation pass width 960 gives best_metric 264.26p, best_cost 256.72p, best_cycle 36.8kWh, best_import 20.66kWh
2026-08-17 05:00:10.030768: >> Region optimisation pass width 480 gives best_metric 264.26p, best_cost 256.72p, best_cycle 36.8kWh, best_import 20.66kWh
2026-08-17 05:00:13.615723: >> Region optimisation pass width 240 gives best_metric 254.12p, best_cost 263.2p, best_cycle 40.96kWh, best_import 21.47kWh
2026-08-17 05:00:15.086139: >> Region optimisation pass width 120 gives best_metric 254.12p, best_cost 263.2p, best_cycle 40.96kWh, best_import 21.47kWh
2026-08-17 05:00:15.086431: Calculated end_record as 08-18 05:00:00 based on best_price 8.0p, next_charge_start 08-17 05:00:00, max_windows 13
2026-08-17 05:00:15.086490: Optimise levels pass ended at 2026-08-17 05:00:15, duration 10.7 seconds tried 67 combinations
2026-08-17 05:00:15.086540: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 254.12p, best_keep 0.5kWh, best_cycle 40.96kWh, best_carbon 0kg, best_import 21.47kWh
2026-08-17 05:00:15.108464: Starting detailed optimisation end_record 08-18 05:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 05:00:31.199297: Tweak plan optimisation started metric 107.74p, cost 120.08p
2026-08-17 05:00:31.694222: Tweak optimisation finished metric 107.74p, cost 120.08p, metric_keep 0.05kWh, cycle 14.96kWh, carbon 0kg, import 3.58kWh, changed 8 window(s)
2026-08-17 05:00:31.723699: Swap charge optimisation started metric 107.74p, cost 120.08p, min_improvement_swap 0.1p
2026-08-17 05:00:32.092017: Swap charge optimisation finished metric 107.74p, cost 120.08p
2026-08-17 05:00:32.164398: Raw charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 19%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:00:32.165150: Unclipped charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 19%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:00:32.165744: Unfiltered charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 19%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:00:32.166169: Filtered charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 78%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 19%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:00:32.236748: Previous plan best metric is 108.26 (cost 120.5) and new plan best metric is 107.74 (cost 120.08)
2026-08-17 05:00:32.249396: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 05:00:32.249727: Plan valid is now true after recompute was False
2026-08-17 05:00:32.347825: predict base end_record 08-18 05:00:00, final soc 12.48kWh, metric 254.01p, metric_keep 0kWh, min_soc 2.7kWh @ 08-17 23:55:00, load 16.35kWh, PV 0.0kWh
2026-08-17 05:00:32.596289: Battery has 48.0 hours left - now at 12.48kWh
2026-08-17 05:00:32.650131: predict base10 end_record 08-18 05:00:00, final soc 12.48kWh, metric 259.53p, metric_keep 0kWh, min_soc 2.23kWh @ 08-17 23:55:00, load 16.97kWh, PV 0.0kWh
2026-08-17 05:00:32.755116: predict best10 end_record 08-18 05:00:00, final soc 1.12kWh, metric 166.01p, metric_keep 4.1kWh, min_soc 1.12kWh @ 08-18 04:35:00, load 16.97kWh, PV 0.0kWh
2026-08-17 05:00:32.983234: predict best end_record 08-18 05:00:00, final soc 1.88kWh, metric 167.14p, metric_keep 0.06kWh, min_soc 1.88kWh @ 08-18 04:55:00, load 16.35kWh, PV 0.0kWh
2026-08-17 05:00:32.983334: Saving plan best values to HA entities
2026-08-17 05:00:33.317216: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:00:33.325689: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:00:33.335362: Best charging limit SoC's [13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.63kWh, house 0.0kWh, export 0.0kWh, metric 167.14p, metric10 166.01p
2026-08-17 05:00:33.533906: Marginal costs baseline metric (no standing charge): 120.5013
2026-08-17 05:00:33.909755: Marginal energy costs matrix computed: min=2.33 max=25.5
2026-08-17 05:00:34.058657: Rate array import [{'start': 300, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1740, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 300, 'end': 1740, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:00:34.059139: - Your estimated bill for today is £1.21 and tomorrow is £3.91
2026-08-17 05:00:34.059210: - Import rates are cheap (8.0p) for the next 30 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:00:34.059251: - The battery is currently at 78% and is charging to 81% for the next 30 minutes.
2026-08-17 05:00:34.059369: - For the next 48 hours there will be no solar generation.
2026-08-17 05:00:34.073658: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 05:00:34.073699:
2026-08-17 05:00:34.140498: Plan calculation took 29.80 seconds
2026-08-17 05:00:34.189929: Saved plan to storage
2026-08-17 05:00:34.195500: No high rate period found
2026-08-17 05:00:34.357894: Import threshold used for optimisation was 8.0p
2026-08-17 05:00:34.468406: Low import rate windows [0: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 1: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 2: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 3: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 4: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 5: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 6: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 7: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 8: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 9: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 10: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 11: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 12: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 13: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0]
2026-08-17 05:00:34.488062: Inverter 0: Type SK Sunsynk
2026-08-17 05:00:34.488560: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:00:34.488809: Reserve min: 7%, battery_min: 7%
2026-08-17 05:00:34.488890: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:00:34.489240: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 0W, current battery power -1W, current battery voltage 51.2V, grid power -455W, load power 455W, PV Power 0W
2026-08-17 05:00:34.489432: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:00:34.489519: Inverter 0 scheduled charge enable is True
2026-08-17 05:00:34.489578: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:00:34.489670: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 78.0%, power 5.0kW
2026-08-17 05:00:34.489801: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:00:34.489839: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:00:34.489878: Inverter 0 scheduled discharge enable is False
2026-08-17 05:00:34.490021: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:00:34.490057: Inverter 0 discharge windows currently []
2026-08-17 05:00:34.490095: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:00:34.490118: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:00:34.490138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:00:34.631186: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:00:34.631343: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 78%, target 81%
2026-08-17 05:00:34.631606: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:00:34.631860: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:00:34.632190: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:00:34.632348: No export window planned
2026-08-17 05:00:34.632553: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:00:34.632608: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:00:34.632893: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:00:34.633120: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-17 05:00:39.653702: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-17 05:00:42.384797: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0094 val_mae=0.0035 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0023 kWh ema_combined=0.0029 kWh
2026-08-17 05:00:44.752704: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-17 05:00:44.752867: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:00:44.752973: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 78% -> 81% total add is 0.48kWh and this battery needs to add 0.48kWh to get to 12.96kWh
2026-08-17 05:00:44.753212: Inverter 0 Current charge limit is 78% and new target is 81%
2026-08-17 05:00:49.880887: Inverter 0 write_and_poll_value: Wrote 81 to charge_limit, successfully now 81.0
2026-08-17 05:00:49.881585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:49.881799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:49.882249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:49.882348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:49.882768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:49.882975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:49.883053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:49.883178: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 05:00:49.923467: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 05:00:50.027423: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 05:00:50.132122: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 05:00:50.245027: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 05:00:50.360359: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 05:00:50.412152: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-17 05:00:50.491139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:50.491263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:50.491306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:50.491343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:50.491378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:50.491412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:50.491446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:00:50.491486: Inverter 0 count register writes 2
2026-08-17 05:00:50.617978: Total inverter register writes now 856
2026-08-17 05:00:50.712148: Info: Completed run status Charging
2026-08-17 05:00:51.041200: Info: record_status Charging target 78%-81%
2026-08-17 05:00:51.069865: Saved current settings to /config/predbat_config.json
2026-08-17 05:00:51.070458: Compare, best tariff: current metric 104.68p
2026-08-17 05:01:13.968013: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0089 val_mae=0.0037 kWh val_bias=-0.0012 kWh (-1.6%) combined=0.0028 kWh ema_combined=0.0029 kWh
2026-08-17 05:01:34.314890: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:01:34.315342: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:01:34.315410: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:01:34.315623: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:01:34.315684: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:01:34.315840: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:01:34.315990: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:01:42.525076: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0082 val_mae=0.0039 kWh val_bias=-0.0018 kWh (-2.5%) combined=0.0027 kWh ema_combined=0.0028 kWh
2026-08-17 05:02:09.996464: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0082 val_mae=0.0032 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0021 kWh ema_combined=0.0026 kWh
2026-08-17 05:02:38.645650: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0080 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-17 05:03:06.889611: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0083 val_mae=0.0034 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 05:03:35.593038: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0078 val_mae=0.0033 kWh val_bias=+0.0006 kWh (+0.9%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-17 05:03:48.821550: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:03:48.821871: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:03:48.821926: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:03:48.822094: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:03:48.822181: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:03:48.822215: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:03:48.822241: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:04:04.040022: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0076 val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-17 05:04:32.968247: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-17 05:05:00.124820: --------------- PredBat - update at 2026-08-17 05:05:00+01:00 with clock skew 0 minutes, minutes now 305
2026-08-17 05:05:00.126338: Saved current settings to /config/predbat_config.json
2026-08-17 05:05:00.126640: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 05:05:00.126989: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:05:00.127206: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:05:00.162664: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:05:00.162948: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:05:00.163248: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:05:00.163885: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:05:00.164103: Predbat mode is set to Control charge & discharge
2026-08-17 05:05:00.609037: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:05:00.609284: Using load_power data to fill gaps in load_today data
2026-08-17 05:05:01.898038: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0070 val_mae=0.0031 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-17 05:05:02.043464: Processing 721 30-minute periods for power integration
2026-08-17 05:05:02.315041: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:05:02.315334: Car charging hold False, threshold 6.0kWh
2026-08-17 05:05:02.315401: Current data so far today: load 3.3kWh, import 5.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:05:02.337695: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:05:02.337949: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:05:02.338905: Standing charge is set to 46.63p
2026-08-17 05:05:02.569550: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.569954: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.570292: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.570682: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.570994: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.571335: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.571667: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.571965: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.572274: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.572617: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.572921: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.573296: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.573600: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:05:02.573919: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:05:02.574226: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:05:02.574333: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:05:02.580222: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:05:02.604973: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:05:02.659930: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:05:02.660272: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:05:02.661733: High export rate found rates in range 99p to -99p
2026-08-17 05:05:02.714823: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:05:02.715182: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:05:02.715390: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:05:02.743888: Battery level now 12.48kWh, -1hr ago 12.42kWh, at midnight 10.49kWh, battery value change in the last hour 0.44p, change today 13.69p, rate_forward 6.87p
2026-08-17 05:05:02.744580: Last hour: net energy 0.7kWh, import 0.7kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 5.6p, import 5.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:05:02.841421: Today's energy total net 5.6kWh, import 5.6kWh, export 0.0kWh, cost 91.43p, import 44.8p, export 0.0p, carbon 0.0kg
2026-08-17 05:05:02.841586: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:05:02.927022: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:05:02.951787: Today's load divergence 97.23%, in-day adjustment 74.51%, damping 0.95x, yesterday 68.37% today 97.37% blend 78.82%
2026-08-17 05:05:02.952077: Today's predicted so far 3.73kWh with 0.0kWh car/iBoost excluded, 2.92kWh import ignored, and 3.73kWh forecast extra.
2026-08-17 05:05:02.952125: Today's actual load so far 3.3kWh with 0.0kWh car/iBoost excluded, and 2.92kWh import ignored.
2026-08-17 05:05:03.007385: Inverter 0: Type SK Sunsynk
2026-08-17 05:05:03.007502: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:05:03.007742: Reserve min: 7%, battery_min: 7%
2026-08-17 05:05:03.007835: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:05:03.008215: Inverter 0 SoC: 12.63kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power -4487W, current battery voltage 51.2V, grid power -5387W, load power 391W, PV Power 0W
2026-08-17 05:05:03.008415: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:05:03.008525: Inverter 0 scheduled charge enable is True
2026-08-17 05:05:03.008591: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:05:03.008708: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:05:03.008861: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:05:03.008908: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:05:03.009018: Inverter 0 scheduled discharge enable is False
2026-08-17 05:05:03.009224: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:05:03.009274: Inverter 0 discharge windows currently []
2026-08-17 05:05:03.009314: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:05:03.009348: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:05:03.009382: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:05:03.152680: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:05:03.152822: Plan was last updated on 2026-08-17 05:00:00+01:00 and is now 5.0 minutes old
2026-08-17 05:05:03.153226: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ]
2026-08-17 05:05:03.153293: Best export window [ ]
2026-08-17 05:05:03.154591: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:05:03.160010: Load divergence over 8.0 hours mean 670.55W, min 271.2W, max 1926.0W, std dev 418.17W, divergence 31.18%
2026-08-17 05:05:03.189345: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:05:03.189569: LoadML is_calculating True
2026-08-17 05:05:03.189606: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:05:03.268894: predict base end_record 08-18 05:05:00, final soc 12.96kWh, metric 257.09p, metric_keep 0kWh, min_soc 3.21kWh @ 08-17 23:55:00, load 16.43kWh, PV 0.0kWh
2026-08-17 05:05:03.493497: Battery has 48.0 hours left - now at 12.63kWh
2026-08-17 05:05:03.596068: predict base10 end_record 08-18 05:05:00, final soc 12.96kWh, metric 262.62p, metric_keep 0kWh, min_soc 2.75kWh @ 08-17 23:55:00, load 17.06kWh, PV 0.0kWh
2026-08-17 05:05:03.787254: predict best10 end_record 08-18 05:05:00, final soc 1.44kWh, metric 167.79p, metric_keep 4.62kWh, min_soc 1.12kWh @ 08-18 04:25:00, load 17.06kWh, PV 0.0kWh
2026-08-17 05:05:03.990734: predict best end_record 08-18 05:05:00, final soc 2.2kWh, metric 168.97p, metric_keep 0.13kWh, min_soc 1.82kWh @ 08-18 04:55:00, load 16.43kWh, PV 0.0kWh
2026-08-17 05:05:03.990855: Saving plan best values to HA entities
2026-08-17 05:05:04.247248: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:05:04.265949: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:05:04.275744: Best charging limit SoC's [13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 3.86kWh, house 0.0kWh, export 0.0kWh, metric 168.97p, metric10 167.79p
2026-08-17 05:05:04.456644: Marginal costs baseline metric (no standing charge): 122.3408
2026-08-17 05:05:04.756268: Marginal energy costs matrix computed: min=2.82 max=25.58
2026-08-17 05:05:04.870405: Rate array import [{'start': 305, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1745, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 305, 'end': 1745, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:05:04.881595: - Your estimated bill for today is £1.19 and tomorrow is £3.93
2026-08-17 05:05:04.881669: - Import rates are cheap (8.0p) for the next 25 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:05:04.881749: - The battery is currently at 79% and is charging to 81% for the next 25 minutes.
2026-08-17 05:05:04.881821: - For the next 48 hours there will be no solar generation.
2026-08-17 05:05:04.881887: - You will reach a minimum of 11% battery in 23 hours.
2026-08-17 05:05:04.881942:
2026-08-17 05:05:04.933945: Plan calculation took 1.78 seconds
2026-08-17 05:05:04.943026: No high rate period found
2026-08-17 05:05:05.047937: Import threshold used for optimisation was 8.0p
2026-08-17 05:05:05.139644: Low import rate windows [0: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 1: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 2: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 3: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 4: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 5: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 6: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 7: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 8: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 9: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 10: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 11: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 12: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 13: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:05:05.150698: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:05:05.150850: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 79%, target 81%
2026-08-17 05:05:05.151127: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:05:05.151403: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:05:05.151686: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:05:05.151842: No export window planned
2026-08-17 05:05:05.152024: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:05:05.152077: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:05:05.152325: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:05:05.152538: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:05:05.152670: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 79% -> 81% total add is 0.33kWh and this battery needs to add 0.33kWh to get to 12.96kWh
2026-08-17 05:05:05.152782: Inverter 0 Current Target SoC is 81%, already at target
2026-08-17 05:05:05.152990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153783: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153838: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153941: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.153993: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154093: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154144: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154260: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.154940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.155017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:05:05.155084: Inverter 0 count register writes 0
2026-08-17 05:05:05.181216: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 05:05:05.189716: Total inverter register writes now 856
2026-08-17 05:05:05.263447: Info: Completed run status Charging
2026-08-17 05:05:05.274750: Info: record_status Charging target 79%-81%
2026-08-17 05:05:05.289759: Saved current settings to /config/predbat_config.json
2026-08-17 05:05:05.290107: Compare, best tariff: current metric 104.68p
2026-08-17 05:05:32.187188: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0066 val_mae=0.0026 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 05:05:48.483490: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:05:48.483980: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:05:48.484042: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:05:48.484359: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:05:48.484528: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:05:48.484647: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:05:48.484687: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:06:00.927613: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0070 val_mae=0.0028 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-17 05:06:26.663653: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0060 val_mae=0.0027 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-17 05:06:55.384411: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0058 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 05:07:24.092656: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0061 val_mae=0.0025 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-17 05:07:48.890505: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:07:48.891100: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:07:48.891268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:07:48.891633: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:07:48.891783: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:07:48.891938: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:07:48.892050: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:07:51.310941: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-17 05:08:19.443497: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0058 val_mae=0.0027 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-17 05:08:45.667620: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0058 val_mae=0.0024 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 05:09:12.809983: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0058 val_mae=0.0024 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 05:09:39.971952: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0017 kWh
2026-08-17 05:09:49.285418: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:09:49.285927: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:09:49.286081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:09:49.286373: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:09:49.286512: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:09:49.286627: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:09:49.286736: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:10:00.520907: --------------- PredBat - update at 2026-08-17 05:10:00+01:00 with clock skew 0 minutes, minutes now 310
2026-08-17 05:10:00.522185: Saved current settings to /config/predbat_config.json
2026-08-17 05:10:00.522346: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-17 05:10:00.522452: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:10:00.522637: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:10:00.581504: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:10:00.581809: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:10:00.582163: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:10:00.582929: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:10:00.583132: Predbat mode is set to Control charge & discharge
2026-08-17 05:10:00.910713: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:10:00.910870: Using load_power data to fill gaps in load_today data
2026-08-17 05:10:02.249334: Processing 721 30-minute periods for power integration
2026-08-17 05:10:02.477496: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:10:02.477673: Car charging hold False, threshold 6.0kWh
2026-08-17 05:10:02.477730: Current data so far today: load 3.35kWh, import 5.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:10:02.521006: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:10:02.521297: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:10:02.522330: Standing charge is set to 46.63p
2026-08-17 05:10:02.861736: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.862184: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.862553: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.864034: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.864414: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.865314: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.865740: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.866926: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.867370: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.867687: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.867993: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.868425: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.868890: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:10:02.869404: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:10:02.869913: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:10:02.870120: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:10:02.876297: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:10:02.876771: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:10:02.915546: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:10:02.915682: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:10:02.916855: High export rate found rates in range 99p to -99p
2026-08-17 05:10:02.945618: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:10:02.946059: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:10:02.946880: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:10:02.980627: Battery level now 12.63kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour -0.05p, change today 14.74p, rate_forward 6.87p
2026-08-17 05:10:02.981177: Last hour: net energy 0.95kWh, import 0.95kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 7.6p, import 7.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:10:03.083480: Today's energy total net 5.9kWh, import 5.9kWh, export 0.0kWh, cost 93.83p, import 47.2p, export 0.0p, carbon 0.0kg
2026-08-17 05:10:03.083686: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:10:03.295016: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:10:03.321339: Today's load divergence 97.39%, in-day adjustment 74.64%, damping 0.95x, yesterday 68.37% today 97.52% blend 78.47%
2026-08-17 05:10:03.321851: Today's predicted so far 3.73kWh with 0.0kWh car/iBoost excluded, 3.09kWh import ignored, and 3.73kWh forecast extra.
2026-08-17 05:10:03.321903: Today's actual load so far 3.32kWh with 0.0kWh car/iBoost excluded, and 3.09kWh import ignored.
2026-08-17 05:10:03.367564: Inverter 0: Type SK Sunsynk
2026-08-17 05:10:03.367673: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:10:03.367898: Reserve min: 7%, battery_min: 7%
2026-08-17 05:10:03.367988: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:10:03.368337: Inverter 0 SoC: 12.63kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power -42W, current battery voltage 51.2V, grid power -543W, load power 489W, PV Power 0W
2026-08-17 05:10:03.368534: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:10:03.368641: Inverter 0 scheduled charge enable is True
2026-08-17 05:10:03.368707: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:10:03.368825: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:10:03.369015: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:10:03.369073: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:10:03.369121: Inverter 0 scheduled discharge enable is False
2026-08-17 05:10:03.369307: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:10:03.369359: Inverter 0 discharge windows currently []
2026-08-17 05:10:03.369389: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:10:03.369448: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:10:03.369475: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:10:03.463374: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:10:03.463534: Plan was last updated on 2026-08-17 05:00:00+01:00 and is now 10.0 minutes old
2026-08-17 05:10:03.463783: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 38%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:00:00 @ 8.0p 100% ]
2026-08-17 05:10:03.463832: Best export window [ ]
2026-08-17 05:10:03.464648: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:10:03.467999: Load divergence over 8.0 hours mean 676.95W, min 292.2W, max 1707.6W, std dev 419.43W, divergence 30.98%
2026-08-17 05:10:03.494010: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:10:03.494166: LoadML is_calculating True
2026-08-17 05:10:03.494214: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:10:03.545870: predict base end_record 08-18 05:10:00, final soc 12.96kWh, metric 259.71p, metric_keep 0kWh, min_soc 3.16kWh @ 08-17 23:55:00, load 16.5kWh, PV 0.0kWh
2026-08-17 05:10:03.779477: Battery has 48.0 hours left - now at 12.63kWh
2026-08-17 05:10:03.898727: predict base10 end_record 08-18 05:10:00, final soc 12.96kWh, metric 265.25p, metric_keep 0kWh, min_soc 2.69kWh @ 08-17 23:55:00, load 17.13kWh, PV 0.0kWh
2026-08-17 05:10:04.154079: predict best10 end_record 08-18 05:10:00, final soc 1.77kWh, metric 173.14p, metric_keep 4.6kWh, min_soc 1.12kWh @ 08-18 04:25:00, load 17.13kWh, PV 0.0kWh
2026-08-17 05:10:04.264774: predict best end_record 08-18 05:10:00, final soc 2.61kWh, metric 175.0p, metric_keep 0.11kWh, min_soc 1.83kWh @ 08-18 04:55:00, load 16.5kWh, PV 0.0kWh
2026-08-17 05:10:04.264878: Saving plan best values to HA entities
2026-08-17 05:10:04.734603: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:10:04.749974: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:10:04.758538: Best charging limit SoC's [13.0, 6.0, 16.0, 16.0]kWh, export []kWh gives import battery 4.32kWh, house 0.0kWh, export 0.0kWh, metric 175.0p, metric10 173.14p
2026-08-17 05:10:04.914436: Marginal costs baseline metric (no standing charge): 128.3645
2026-08-17 05:10:05.271082: Marginal energy costs matrix computed: min=2.69 max=25.64
2026-08-17 05:10:05.395497: Rate array import [{'start': 310, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1750, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 310, 'end': 1750, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:10:05.396748: - Your estimated bill for today is £1.21 and tomorrow is £3.92
2026-08-17 05:10:05.396923: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:10:05.396990: - The battery is currently at 79% and is charging to 81% for the next 20 minutes.
2026-08-17 05:10:05.397025: - For the next 48 hours there will be no solar generation.
2026-08-17 05:10:05.397050: - You will reach a minimum of 11% battery in 23 hours.
2026-08-17 05:10:05.397068:
2026-08-17 05:10:05.442083: Plan calculation took 1.98 seconds
2026-08-17 05:10:05.446870: No high rate period found
2026-08-17 05:10:05.702394: Import threshold used for optimisation was 8.0p
2026-08-17 05:10:05.815895: Low import rate windows [0: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 1: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 2: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 3: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 4: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 5: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 6: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 7: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 8: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 9: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 10: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 11: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 12: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 13: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:10:05.838745: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:10:05.838903: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 79%, target 81%
2026-08-17 05:10:05.839050: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:10:05.839250: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:10:05.839483: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:10:05.839578: No export window planned
2026-08-17 05:10:05.839707: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:10:05.839752: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:10:05.839922: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:10:05.840040: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:10:05.840119: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 79% -> 81% total add is 0.33kWh and this battery needs to add 0.33kWh to get to 12.96kWh
2026-08-17 05:10:05.840175: Inverter 0 Current Target SoC is 81%, already at target
2026-08-17 05:10:05.840311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840611: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840657: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840692: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840736: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840806: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840855: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.840891: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841121: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:05.841338: Inverter 0 count register writes 0
2026-08-17 05:10:05.890410: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 05:10:05.890673: Recompute is saving previous plan...
2026-08-17 05:10:05.892114: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 81%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 81%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 81%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 81%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 81%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 81%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 81%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 81%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 81%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 81%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 81%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 81%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 81%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 81%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 81%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 81%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 81%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 81% ]
2026-08-17 05:10:05.892185: Best export window [ ]
2026-08-17 05:10:05.893557: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:10:05.898846: Load divergence over 8.0 hours mean 676.95W, min 292.2W, max 1707.6W, std dev 419.43W, divergence 30.98%
2026-08-17 05:10:05.926249: Calculating data from yesterday for savings calculation
2026-08-17 05:10:05.944775: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1750, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 05:10:06.010408: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.92p, metric_keep 0kWh, min_soc 7.66kWh @ 08-17 23:25:00, load 11.44kWh, PV 0.0kWh
2026-08-17 05:10:06.034645: predict yesterday10 end_record 08-18 00:00:00, final soc 9.6kWh, metric 144.58p, metric_keep 0kWh, min_soc 7.66kWh @ 08-17 23:25:00, load 11.44kWh, PV 0.0kWh
2026-08-17 05:10:06.068292: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.92p, metric_keep 0kWh, min_soc 7.66kWh @ 08-17 23:25:00, load 11.44kWh, PV 0.0kWh
2026-08-17 05:10:06.121602: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.69 (adjusted £-1.71) with import 12.66kWh, export 0.0kWh, battery_cycle 16.72kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.62kWh
2026-08-17 05:10:06.272151: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 302.14p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.44kWh, PV 0.0kWh
2026-08-17 05:10:06.272367: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.15 (adjusted £0.52) with import 11.44kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 05:10:06.294928: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:10:06.295049: LoadML is_calculating True
2026-08-17 05:10:06.295100: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:10:06.316443: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 05:10:06.325230: Optimise levels pass started at 2026-08-17 05:10:06
2026-08-17 05:10:06.325321: Optimise all windows, total charge 25 export 1
2026-08-17 05:10:10.786386: >> Region optimisation pass width 960 gives best_metric 266.31p, best_cost 258.22p, best_cycle 36.7kWh, best_import 20.55kWh
2026-08-17 05:10:11.124289: >> Region optimisation pass width 480 gives best_metric 266.31p, best_cost 258.22p, best_cycle 36.7kWh, best_import 20.55kWh
2026-08-17 05:10:13.920261: >> Region optimisation pass width 240 gives best_metric 256.1p, best_cost 263.76p, best_cycle 40.99kWh, best_import 21.24kWh
2026-08-17 05:10:14.012021: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-17 05:10:14.013753: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=+0.0003 kWh (+0.4%)
2026-08-17 05:10:14.040290: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=+0.0003 kWh (+0.4%)
2026-08-17 05:10:15.781514: >> Region optimisation pass width 120 gives best_metric 256.1p, best_cost 263.76p, best_cycle 40.99kWh, best_import 21.24kWh
2026-08-17 05:10:15.781890: Calculated end_record as 08-18 05:30:00 based on best_price 8.0p, next_charge_start 08-17 05:30:00, max_windows 14
2026-08-17 05:10:15.782061: Optimise levels pass ended at 2026-08-17 05:10:15, duration 9.5 seconds tried 60 combinations
2026-08-17 05:10:15.782184: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 256.1p, best_keep 1.04kWh, best_cycle 40.99kWh, best_carbon 0kg, best_import 21.24kWh
2026-08-17 05:10:15.860047: Starting detailed optimisation end_record 08-18 05:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 05:10:29.496715: ML Predictor: AR rollout over holdout: ar_mae=0.0027 kWh ar_bias=+0.0003 kWh (+0.5%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-17 05:10:29.529622: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0024 kWh
2026-08-17 05:10:29.659922: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-17 05:10:29.665179: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 05:10:30.686172: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 05:10:42.711473: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 05:10:42.796600: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0589 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.6137 std=4.4953) import_rate(mean=16.8950 std=8.3466) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1891 std=0.5259)
2026-08-17 05:10:42.907655: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 05:10:42.957386: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 05:10:43.060468: ML Predictor: Baseline (pre-finetune) val_mae=0.0056 kWh val_bias=-0.0002 kWh
2026-08-17 05:10:44.632684: Tweak plan optimisation started metric 109.66p, cost 121.97p
2026-08-17 05:10:45.296786: Tweak optimisation finished metric 109.66p, cost 121.97p, metric_keep 0.04kWh, cycle 12.92kWh, carbon 0kg, import 3.52kWh, changed 8 window(s)
2026-08-17 05:10:45.325526: Swap charge optimisation started metric 109.66p, cost 121.97p, min_improvement_swap 0.1p
2026-08-17 05:10:46.215050: Swap charge optimisation finished metric 109.66p, cost 121.97p
2026-08-17 05:10:46.360703: Raw charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:10:46.385942: Unclipped charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:10:46.386474: Unfiltered charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:10:46.386939: Filtered charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:10:46.448157: Previous plan best metric is 115.03 (cost 142.98) and new plan best metric is 109.66 (cost 121.97)
2026-08-17 05:10:46.448730: New plan metric is significantly better from previous plan, using new plan
2026-08-17 05:10:46.448788: Plan valid is now true after recompute was False
2026-08-17 05:10:46.487657: predict base end_record 08-18 05:30:00, final soc 12.96kWh, metric 261.0p, metric_keep 0kWh, min_soc 3.16kWh @ 08-17 23:55:00, load 16.66kWh, PV 0.0kWh
2026-08-17 05:10:46.852804: Battery has 48.0 hours left - now at 12.63kWh
2026-08-17 05:10:46.936659: predict base10 end_record 08-18 05:30:00, final soc 12.96kWh, metric 266.6p, metric_keep 0kWh, min_soc 2.69kWh @ 08-17 23:55:00, load 17.3kWh, PV 0.0kWh
2026-08-17 05:10:47.071668: predict best10 end_record 08-18 05:30:00, final soc 1.79kWh, metric 173.27p, metric_keep 0.19kWh, min_soc 1.79kWh @ 08-18 05:25:00, load 17.3kWh, PV 0.0kWh
2026-08-17 05:10:47.227664: predict best end_record 08-18 05:30:00, final soc 1.92kWh, metric 168.6p, metric_keep 0.04kWh, min_soc 1.92kWh @ 08-18 05:25:00, load 16.66kWh, PV 0.0kWh
2026-08-17 05:10:47.227927: Saving plan best values to HA entities
2026-08-17 05:10:47.562863: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:10:47.593267: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:10:47.600994: Best charging limit SoC's [13.0, 3.5, 4.5, 2.0, 16.0]kWh, export []kWh gives import battery 3.52kWh, house 0.0kWh, export 0.0kWh, metric 168.6p, metric10 173.27p
2026-08-17 05:10:47.820818: Marginal costs baseline metric (no standing charge): 121.9681
2026-08-17 05:10:48.121459: Marginal energy costs matrix computed: min=8.82 max=26.65
2026-08-17 05:10:48.252605: Rate array import [{'start': 310, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 310, 'end': 1770, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:10:48.253343: - Your estimated bill for today is £1.01 and tomorrow is £4.62
2026-08-17 05:10:48.253586: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:10:48.254250: - The battery is currently at 79% and is charging to 81% for the next 20 minutes.
2026-08-17 05:10:48.254352: - For the next 48 hours there will be no solar generation.
2026-08-17 05:10:48.254503: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 05:10:48.254563:
2026-08-17 05:10:48.307889: Plan calculation took 42.42 seconds
2026-08-17 05:10:48.308272: Inverter 0: Type SK Sunsynk
2026-08-17 05:10:48.308324: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:10:48.308561: Reserve min: 7%, battery_min: 7%
2026-08-17 05:10:48.308714: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:10:48.309072: Inverter 0 SoC: 12.93kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power -21W, current battery voltage 51.2V, grid power -511W, load power 487W, PV Power 0W
2026-08-17 05:10:48.309324: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:10:48.309463: Inverter 0 scheduled charge enable is True
2026-08-17 05:10:48.309563: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:10:48.309711: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:10:48.309905: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:10:48.309952: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:10:48.310065: Inverter 0 scheduled discharge enable is False
2026-08-17 05:10:48.310269: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:10:48.310318: Inverter 0 discharge windows currently []
2026-08-17 05:10:48.310398: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:10:48.310456: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:10:48.310526: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:10:48.428413: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:10:48.428544: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 81%, target 81%
2026-08-17 05:10:48.428793: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:10:48.429022: Inverter 0 Hold charging as SoC 81% is above target SoC 81% (global soc target 81%) set_discharge_during_charge True
2026-08-17 05:10:48.429520: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:10:48.429813: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:10:48.430005: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-17 05:10:53.440326: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-17 05:10:58.474527: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-17 05:10:58.474685: No export window planned
2026-08-17 05:10:58.474886: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:10:58.475032: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:10:58.475518: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:10:58.475720: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:10:58.475904: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 81% -> 81% total add is 0.03kWh and this battery needs to add 0.03kWh to get to 12.96kWh
2026-08-17 05:10:58.476088: Inverter 0 Current Target SoC is 81%, already at target
2026-08-17 05:10:58.476333: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.476496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.476622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.476763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.476884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.477148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.477516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.477691: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.477820: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.477963: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.478086: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.478242: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.478371: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.478512: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.478714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.478863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.478985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.479126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.479265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.479411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.479531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:10:58.479660: Inverter 0 count register writes 1
2026-08-17 05:10:58.526692: Total inverter register writes now 857
2026-08-17 05:10:58.599471: Info: Completed run status Hold charging
2026-08-17 05:10:58.868630: Info: record_status Hold charging target 81%-81%
2026-08-17 05:10:58.878901: Saved current settings to /config/predbat_config.json
2026-08-17 05:10:58.879135: Compare, best tariff: current metric 104.68p
2026-08-17 05:11:12.252101: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0110 val_mae=0.0054 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-17 05:11:34.087283: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:11:34.087626: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:11:34.087685: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:11:34.087857: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:11:34.087903: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:11:34.087930: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:11:34.088048: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:11:40.319632: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0133 val_mae=0.0056 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0030 kWh ema_combined=0.0028 kWh
2026-08-17 05:12:05.937267: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0137 val_mae=0.0057 kWh val_bias=-0.0029 kWh (-3.2%) combined=0.0041 kWh ema_combined=0.0032 kWh
2026-08-17 05:12:34.743045: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0142 val_mae=0.0058 kWh val_bias=-0.0021 kWh (-2.3%) combined=0.0036 kWh ema_combined=0.0033 kWh
2026-08-17 05:13:01.745455: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0129 val_mae=0.0047 kWh val_bias=+0.0022 kWh (+2.5%) combined=0.0038 kWh ema_combined=0.0035 kWh
2026-08-17 05:13:28.820728: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0103 val_mae=0.0048 kWh val_bias=+0.0030 kWh (+3.3%) combined=0.0045 kWh ema_combined=0.0038 kWh
2026-08-17 05:13:48.539253: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:13:48.539652: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:13:48.539726: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:13:48.540071: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:13:48.540142: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:13:48.540262: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:13:48.540359: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:13:54.689536: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0110 val_mae=0.0045 kWh val_bias=-0.0021 kWh (-2.4%) combined=0.0035 kWh ema_combined=0.0037 kWh
2026-08-17 05:14:21.149661: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0119 val_mae=0.0047 kWh val_bias=-0.0019 kWh (-2.1%) combined=0.0036 kWh ema_combined=0.0037 kWh
2026-08-17 05:14:48.379263: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0111 val_mae=0.0037 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0018 kWh ema_combined=0.0031 kWh
2026-08-17 05:15:00.933139: --------------- PredBat - update at 2026-08-17 05:15:00+01:00 with clock skew 0 minutes, minutes now 315
2026-08-17 05:15:00.933960: Saved current settings to /config/predbat_config.json
2026-08-17 05:15:01.331557: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:15:01.332466: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:15:01.401330: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:15:01.401476: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:15:01.401656: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:15:01.402310: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:15:01.402548: Predbat mode is set to Control charge & discharge
2026-08-17 05:15:01.734870: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:15:01.735050: Using load_power data to fill gaps in load_today data
2026-08-17 05:15:03.170395: Processing 721 30-minute periods for power integration
2026-08-17 05:15:03.389144: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:15:03.389412: Car charging hold False, threshold 6.0kWh
2026-08-17 05:15:03.389476: Current data so far today: load 3.4kWh, import 5.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:15:03.409124: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:15:03.409393: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:15:03.410123: Standing charge is set to 46.63p
2026-08-17 05:15:03.690943: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.691482: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.691851: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.692149: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.692460: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.696859: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.697212: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.697680: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.698013: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.698364: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.698638: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.698999: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.699296: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:15:03.699599: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:15:03.699864: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:15:03.700029: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:15:03.709875: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:15:03.725444: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:15:03.839735: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:15:03.840100: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:15:03.841697: High export rate found rates in range 99p to -99p
2026-08-17 05:15:03.871434: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:15:03.871768: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:15:03.871858: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:15:03.907218: Battery level now 12.63kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour -0.05p, change today 14.74p, rate_forward 6.87p
2026-08-17 05:15:03.907795: Last hour: net energy 0.9kWh, import 0.9kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 7.2p, import 7.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:15:04.013038: Today's energy total net 5.9kWh, import 5.9kWh, export 0.0kWh, cost 93.83p, import 47.2p, export 0.0p, carbon 0.0kg
2026-08-17 05:15:04.013212: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:15:04.220269: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:15:04.252437: Today's load divergence 97.65%, in-day adjustment 74.8%, damping 0.95x, yesterday 68.37% today 97.77% blend 78.12%
2026-08-17 05:15:04.252569: Today's predicted so far 3.73kWh with 0.0kWh car/iBoost excluded, 3.09kWh import ignored, and 3.73kWh forecast extra.
2026-08-17 05:15:04.252621: Today's actual load so far 3.36kWh with 0.0kWh car/iBoost excluded, and 3.09kWh import ignored.
2026-08-17 05:15:04.322081: Inverter 0: Type SK Sunsynk
2026-08-17 05:15:04.322350: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:15:04.322662: Reserve min: 7%, battery_min: 7%
2026-08-17 05:15:04.322847: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:15:04.323271: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -493W, load power 492W, PV Power 0W
2026-08-17 05:15:04.323581: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:15:04.323756: Inverter 0 scheduled charge enable is True
2026-08-17 05:15:04.323880: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:15:04.324055: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:15:04.324302: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:15:04.324360: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:15:04.324453: Inverter 0 scheduled discharge enable is False
2026-08-17 05:15:04.324719: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:15:04.324772: Inverter 0 discharge windows currently []
2026-08-17 05:15:04.324848: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:15:04.324930: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:15:04.325022: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:15:04.470294: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:15:04.470445: Plan was last updated on 2026-08-17 05:10:00+01:00 and is now 5.0 minutes old
2026-08-17 05:15:04.470863: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:15:04.470930: Best export window [ ]
2026-08-17 05:15:04.472062: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:15:04.475301: Load divergence over 8.0 hours mean 683.72W, min 259.8W, max 1788.0W, std dev 422.4W, divergence 30.89%
2026-08-17 05:15:04.495644: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:15:04.496291: LoadML is_calculating True
2026-08-17 05:15:04.496333: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:15:04.533587: predict base end_record 08-18 05:35:00, final soc 12.92kWh, metric 257.96p, metric_keep 0kWh, min_soc 3.11kWh @ 08-17 23:55:00, load 16.72kWh, PV 0.0kWh
2026-08-17 05:15:04.786918: Battery has 48.0 hours left - now at 12.96kWh
2026-08-17 05:15:04.850145: predict base10 end_record 08-18 05:35:00, final soc 12.91kWh, metric 263.56p, metric_keep 0kWh, min_soc 2.64kWh @ 08-17 23:55:00, load 17.36kWh, PV 0.0kWh
2026-08-17 05:15:04.967202: predict best10 end_record 08-18 05:35:00, final soc 1.76kWh, metric 170.28p, metric_keep 0.51kWh, min_soc 1.76kWh @ 08-18 05:30:00, load 17.36kWh, PV 0.0kWh
2026-08-17 05:15:05.085512: predict best end_record 08-18 05:35:00, final soc 1.89kWh, metric 165.63p, metric_keep 0.19kWh, min_soc 1.89kWh @ 08-18 05:30:00, load 16.72kWh, PV 0.0kWh
2026-08-17 05:15:05.085808: Saving plan best values to HA entities
2026-08-17 05:15:05.454343: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:15:05.469978: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:15:05.489116: Best charging limit SoC's [13.0, 3.5, 4.5, 2.0, 16.0]kWh, export []kWh gives import battery 3.14kWh, house 0kWh, export 0.0kWh, metric 165.63p, metric10 170.28p
2026-08-17 05:15:05.646714: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 05:15:05.685920: Marginal costs baseline metric (no standing charge): 118.9922
2026-08-17 05:15:05.877659: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 05:15:06.323630: Marginal energy costs matrix computed: min=8.92 max=26.71
2026-08-17 05:15:06.439042: Rate array import [{'start': 315, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1775, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 315, 'end': 1775, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:15:06.465622: - Your estimated bill for today is £0.98 and tomorrow is £4.62
2026-08-17 05:15:06.465808: - Import rates are cheap (8.0p) for the next 15 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:15:06.465864: - The battery is currently at 81% and is charging to 81% for the next 15 minutes.
2026-08-17 05:15:06.465991: - For the next 48 hours there will be no solar generation.
2026-08-17 05:15:06.466050: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 05:15:06.466141:
2026-08-17 05:15:06.512919: Plan calculation took 2.04 seconds
2026-08-17 05:15:06.517707: No high rate period found
2026-08-17 05:15:06.649981: Import threshold used for optimisation was 8.0p
2026-08-17 05:15:06.816648: Low import rate windows [0: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 1: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 2: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 3: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 4: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 5: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 6: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 7: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 8: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 9: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 10: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 11: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 12: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 13: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:15:06.843333: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:15:06.843477: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 81%, target 81%
2026-08-17 05:15:06.843624: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:15:06.843702: Inverter 0 Hold charging as SoC 81% is above target SoC 81% (global soc target 81%) set_discharge_during_charge True
2026-08-17 05:15:06.843833: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:15:06.844045: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:15:06.844155: No export window planned
2026-08-17 05:15:06.844299: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:15:06.844337: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:15:06.844506: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:15:06.844617: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:15:06.844685: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 81% -> 81% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.96kWh
2026-08-17 05:15:06.844743: Inverter 0 Current Target SoC is 81%, already at target
2026-08-17 05:15:06.844850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.844915: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.844984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845182: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845218: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845387: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845654: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845699: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845735: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845771: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.845972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.846006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.846039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.846073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:15:06.846101: Inverter 0 count register writes 0
2026-08-17 05:15:06.922127: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 05:15:06.932569: Total inverter register writes now 857
2026-08-17 05:15:07.073528: Info: Completed run status Hold charging
2026-08-17 05:15:07.083739: Info: record_status Hold charging target 81%-81%
2026-08-17 05:15:07.093762: Saved current settings to /config/predbat_config.json
2026-08-17 05:15:07.093974: Compare, best tariff: current metric 104.68p
2026-08-17 05:15:19.316195: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0099 val_mae=0.0038 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0020 kWh ema_combined=0.0028 kWh
2026-08-17 05:15:47.844116: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0099 val_mae=0.0038 kWh val_bias=-0.0019 kWh (-2.1%) combined=0.0031 kWh ema_combined=0.0029 kWh
2026-08-17 05:15:47.844274: ML Predictor: Early stopping at epoch 11
2026-08-17 05:15:47.845334: ML Predictor: Restored best weights from epoch with val_mae=0.0054 kWh val_bias=-0.0005 kWh (-0.5%)
2026-08-17 05:15:47.845496: ML Predictor: Training complete, final val_mae=0.0054 kWh val_bias=-0.0005 kWh (-0.5%)
2026-08-17 05:15:49.593343: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:15:49.593781: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:15:49.593939: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:15:49.594294: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:15:49.594390: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:15:49.594437: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:15:49.594516: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:15:53.195045: ML Predictor: AR rollout over holdout: ar_mae=0.0070 kWh ar_bias=-0.0002 kWh (-0.2%) [drift vs teacher-forced: +0.0015 kWh]
2026-08-17 05:15:53.209617: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0054 kWh
2026-08-17 05:15:53.295813: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-17 05:15:53.296073: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 05:15:53.975597: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 05:15:59.327774: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 05:15:59.383920: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0590 std=0.0473) pv(mean=0.0000 std=0.0100) temp(mean=19.6270 std=4.5032) import_rate(mean=16.8648 std=8.3480) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-17 05:15:59.473726: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 05:15:59.492400: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 05:15:59.548095: ML Predictor: Baseline (pre-finetune) val_mae=0.0082 kWh val_bias=+0.0009 kWh
2026-08-17 05:16:27.527617: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0132 val_mae=0.0071 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0043 kWh ema_combined=0.0043 kWh
2026-08-17 05:16:31.830917: Info: HAHistory: Pruning history data started.
2026-08-17 05:16:31.834264: Info: HAHistory: Pruning history data completed.
2026-08-17 05:16:52.856358: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0120 val_mae=0.0055 kWh val_bias=-0.0013 kWh (-1.7%) combined=0.0036 kWh ema_combined=0.0041 kWh
2026-08-17 05:17:19.368499: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0121 val_mae=0.0052 kWh val_bias=+0.0014 kWh (+1.8%) combined=0.0040 kWh ema_combined=0.0041 kWh
2026-08-17 05:17:49.839789: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0109 val_mae=0.0048 kWh val_bias=-0.0012 kWh (-1.5%) combined=0.0030 kWh ema_combined=0.0037 kWh
2026-08-17 05:18:04.060107: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:18:04.060424: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:18:04.060477: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:18:04.060618: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:18:04.060661: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:18:04.060683: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:18:04.060792: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:18:17.218760: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0127 val_mae=0.0049 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0029 kWh ema_combined=0.0035 kWh
2026-08-17 05:18:53.091936: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0122 val_mae=0.0062 kWh val_bias=-0.0036 kWh (-4.6%) combined=0.0051 kWh ema_combined=0.0040 kWh
2026-08-17 05:19:24.633967: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0106 val_mae=0.0045 kWh val_bias=-0.0013 kWh (-1.6%) combined=0.0032 kWh ema_combined=0.0037 kWh
2026-08-17 05:19:53.193615: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0108 val_mae=0.0044 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0023 kWh ema_combined=0.0033 kWh
2026-08-17 05:20:00.523573: --------------- PredBat - update at 2026-08-17 05:20:00+01:00 with clock skew 0 minutes, minutes now 320
2026-08-17 05:20:00.524528: Saved current settings to /config/predbat_config.json
2026-08-17 05:20:00.524694: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 05:20:00.524854: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:20:00.524995: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:20:00.554536: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:20:00.554676: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:20:00.554986: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:20:00.555605: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:20:00.555797: Predbat mode is set to Control charge & discharge
2026-08-17 05:20:00.957979: Found 21602 load_today datapoints going back 27 days
2026-08-17 05:20:00.958407: Using load_power data to fill gaps in load_today data
2026-08-17 05:20:02.214695: Processing 721 30-minute periods for power integration
2026-08-17 05:20:02.434874: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:20:02.435046: Car charging hold False, threshold 6.0kWh
2026-08-17 05:20:02.435129: Current data so far today: load 3.45kWh, import 6.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:20:02.460663: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:20:02.461062: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:20:02.462186: Standing charge is set to 46.63p
2026-08-17 05:20:02.713554: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.714122: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.714578: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.715002: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.715432: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.715846: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.716276: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.716685: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.717139: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.717569: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.717970: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.718406: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.718813: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:20:02.719212: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:20:02.719629: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:20:02.719858: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:20:02.755543: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:20:02.756286: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:20:02.821767: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:20:02.821899: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:20:02.822879: High export rate found rates in range 99p to -99p
2026-08-17 05:20:02.847923: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:20:02.848658: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:20:02.848726: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:20:02.863289: Battery level now 12.96kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour 2.2p, change today 16.99p, rate_forward 6.87p
2026-08-17 05:20:02.863609: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 8.8p, import 8.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:20:02.988915: Today's energy total net 6.2kWh, import 6.2kWh, export 0.0kWh, cost 96.23p, import 49.6p, export 0.0p, carbon 0.0kg
2026-08-17 05:20:02.989165: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:20:03.150901: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:20:03.180410: Today's load divergence 97.82%, in-day adjustment 74.94%, damping 0.95x, yesterday 68.37% today 97.93% blend 77.78%
2026-08-17 05:20:03.180578: Today's predicted so far 3.75kWh with 0.0kWh car/iBoost excluded, 3.36kWh import ignored, and 3.75kWh forecast extra.
2026-08-17 05:20:03.180620: Today's actual load so far 3.4kWh with 0.0kWh car/iBoost excluded, and 3.36kWh import ignored.
2026-08-17 05:20:03.232851: Inverter 0: Type SK Sunsynk
2026-08-17 05:20:03.233016: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:20:03.233460: Reserve min: 7%, battery_min: 7%
2026-08-17 05:20:03.233607: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:20:03.234075: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -487W, load power 487W, PV Power 0W
2026-08-17 05:20:03.234406: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:20:03.234635: Inverter 0 scheduled charge enable is True
2026-08-17 05:20:03.234747: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:20:03.234975: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:20:03.235542: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:20:03.235690: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:20:03.236061: Inverter 0 scheduled discharge enable is False
2026-08-17 05:20:03.236269: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:20:03.236321: Inverter 0 discharge windows currently []
2026-08-17 05:20:03.236351: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:20:03.236460: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:20:03.236502: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:20:03.370076: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:20:03.370217: Plan was last updated on 2026-08-17 05:10:00+01:00 and is now 10.0 minutes old
2026-08-17 05:20:03.370551: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:20:03.370604: Best export window [ ]
2026-08-17 05:20:03.371982: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:20:03.377643: Load divergence over 8.0 hours mean 690.89W, min 260.4W, max 1896.0W, std dev 427.0W, divergence 30.9%
2026-08-17 05:20:03.425151: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:20:03.425317: LoadML is_calculating True
2026-08-17 05:20:03.425351: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:20:03.488849: predict base end_record 08-18 05:40:00, final soc 12.88kWh, metric 260.23p, metric_keep 0kWh, min_soc 3.07kWh @ 08-17 23:55:00, load 16.79kWh, PV 0.0kWh
2026-08-17 05:20:03.680252: Battery has 48.0 hours left - now at 12.96kWh
2026-08-17 05:20:03.731887: predict base10 end_record 08-18 05:40:00, final soc 12.87kWh, metric 265.82p, metric_keep 0kWh, min_soc 2.6kWh @ 08-17 23:55:00, load 17.42kWh, PV 0.0kWh
2026-08-17 05:20:03.837822: predict best10 end_record 08-18 05:40:00, final soc 1.72kWh, metric 172.53p, metric_keep 0.9kWh, min_soc 1.72kWh @ 08-18 05:35:00, load 17.42kWh, PV 0.0kWh
2026-08-17 05:20:04.001145: predict best end_record 08-18 05:40:00, final soc 1.85kWh, metric 167.88p, metric_keep 0.4kWh, min_soc 1.85kWh @ 08-18 05:35:00, load 16.79kWh, PV 0.0kWh
2026-08-17 05:20:04.001406: Saving plan best values to HA entities
2026-08-17 05:20:04.306031: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:20:04.312593: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:20:04.318461: Best charging limit SoC's [13.0, 3.5, 4.5, 2.0, 16.0]kWh, export []kWh gives import battery 3.13kWh, house 0.0kWh, export 0.0kWh, metric 167.88p, metric10 172.53p
2026-08-17 05:20:04.477137: Marginal costs baseline metric (no standing charge): 121.2416
2026-08-17 05:20:04.757998: Marginal energy costs matrix computed: min=9.02 max=26.74
2026-08-17 05:20:04.849018: Rate array import [{'start': 320, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1780, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 320, 'end': 1780, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:20:04.849684: - Your estimated bill for today is £1.00 and tomorrow is £4.62
2026-08-17 05:20:04.849850: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:20:04.849923: - The battery is currently at 81% and is charging to 81% for the next 10 minutes.
2026-08-17 05:20:04.849946: - For the next 48 hours there will be no solar generation.
2026-08-17 05:20:04.863108: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 05:20:04.863329:
2026-08-17 05:20:04.926325: Plan calculation took 1.56 seconds
2026-08-17 05:20:04.931404: No high rate period found
2026-08-17 05:20:05.068817: Import threshold used for optimisation was 8.0p
2026-08-17 05:20:05.133478: Low import rate windows [0: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 1: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 2: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 3: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 4: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 5: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 6: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 7: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 8: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 9: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 10: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 11: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 12: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 13: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:20:05.140644: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:20:05.140759: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 81%, target 81%
2026-08-17 05:20:05.140876: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:20:05.140986: Inverter 0 Hold charging as SoC 81% is above target SoC 81% (global soc target 81%) set_discharge_during_charge True
2026-08-17 05:20:05.141108: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:20:05.141434: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:20:05.141613: No export window planned
2026-08-17 05:20:05.141782: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:20:05.141827: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:20:05.142078: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:20:05.142210: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:20:05.142329: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 81% -> 81% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.96kWh
2026-08-17 05:20:05.142432: Inverter 0 Current Target SoC is 81%, already at target
2026-08-17 05:20:05.142582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.142631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.142732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.142800: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.142900: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143293: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143418: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143537: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143641: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143743: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143845: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.143959: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.144112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.144284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.144450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.144606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.144761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.144916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.145138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:05.145305: Inverter 0 count register writes 0
2026-08-17 05:20:05.164747: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 05:20:05.165073: Recompute is saving previous plan...
2026-08-17 05:20:05.166337: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 81%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 81%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 81%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 81%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 81%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 81%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 81%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 81%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 81%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 81%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 81%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 81%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 81%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 81%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 81%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 81%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 81%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 81% ]
2026-08-17 05:20:05.166543: Best export window [ ]
2026-08-17 05:20:05.167711: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:20:05.171691: Load divergence over 8.0 hours mean 690.89W, min 260.4W, max 1896.0W, std dev 427.0W, divergence 30.9%
2026-08-17 05:20:05.193138: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:20:05.193350: LoadML is_calculating True
2026-08-17 05:20:05.193455: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:20:05.205780: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 05:20:05.206722: Optimise levels pass started at 2026-08-17 05:20:05
2026-08-17 05:20:05.207371: Optimise all windows, total charge 25 export 1
2026-08-17 05:20:07.412449: >> Region optimisation pass width 960 gives best_metric 272.66p, best_cost 369.11p, best_cycle 45.78kWh, best_import 34.11kWh
2026-08-17 05:20:07.566084: >> Region optimisation pass width 480 gives best_metric 272.66p, best_cost 369.11p, best_cycle 45.78kWh, best_import 34.11kWh
2026-08-17 05:20:08.152291: >> Region optimisation pass width 240 gives best_metric 260.84p, best_cost 298.58p, best_cycle 42.94kWh, best_import 25.29kWh
2026-08-17 05:20:09.150573: >> Region optimisation pass width 120 gives best_metric 260.84p, best_cost 298.58p, best_cycle 42.94kWh, best_import 25.29kWh
2026-08-17 05:20:09.151000: Calculated end_record as 08-18 05:30:00 based on best_price 8.0p, next_charge_start 08-17 05:30:00, max_windows 14
2026-08-17 05:20:09.151202: Optimise levels pass ended at 2026-08-17 05:20:09, duration 3.9 seconds tried 66 combinations
2026-08-17 05:20:09.151393: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 260.84p, best_keep 0.11kWh, best_cycle 42.94kWh, best_carbon 0kg, best_import 25.29kWh
2026-08-17 05:20:09.181616: Starting detailed optimisation end_record 08-18 05:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 05:20:31.477438: Tweak plan optimisation started metric 108.83p, cost 121.24p
2026-08-17 05:20:32.076792: Tweak optimisation finished metric 108.83p, cost 121.24p, metric_keep 0.03kWh, cycle 12.63kWh, carbon 0kg, import 3.13kWh, changed 8 window(s)
2026-08-17 05:20:32.105494: Swap charge optimisation started metric 108.83p, cost 121.24p, min_improvement_swap 0.1p
2026-08-17 05:20:33.284879: Swap charge optimisation finished metric 108.83p, cost 121.24p
2026-08-17 05:20:33.410448: Raw charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 13%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 13%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 13%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:20:33.410974: Unclipped charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:20:33.411305: Unfiltered charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:20:33.411581: Filtered charge windows [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:20:33.456705: Previous plan best metric is 108.83 (cost 121.24) and new plan best metric is 108.83 (cost 121.24)
2026-08-17 05:20:33.457175: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 05:20:33.457458: Plan valid is now true after recompute was False
2026-08-17 05:20:33.496185: predict base end_record 08-18 05:30:00, final soc 12.96kWh, metric 260.23p, metric_keep 0kWh, min_soc 3.07kWh @ 08-17 23:55:00, load 16.71kWh, PV 0.0kWh
2026-08-17 05:20:33.720265: Battery has 48.0 hours left - now at 12.96kWh
2026-08-17 05:20:33.831332: predict base10 end_record 08-18 05:30:00, final soc 12.96kWh, metric 265.82p, metric_keep 0kWh, min_soc 2.6kWh @ 08-17 23:55:00, load 17.34kWh, PV 0.0kWh
2026-08-17 05:20:33.979050: predict best10 end_record 08-18 05:30:00, final soc 1.81kWh, metric 172.53p, metric_keep 0.17kWh, min_soc 1.81kWh @ 08-18 05:25:00, load 17.34kWh, PV 0.0kWh
2026-08-17 05:20:34.149871: predict best end_record 08-18 05:30:00, final soc 1.93kWh, metric 167.88p, metric_keep 0.03kWh, min_soc 1.93kWh @ 08-18 05:25:00, load 16.71kWh, PV 0.0kWh
2026-08-17 05:20:34.149974: Saving plan best values to HA entities
2026-08-17 05:20:34.423534: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:20:34.453193: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:20:34.461287: Best charging limit SoC's [13.0, 3.5, 4.5, 2.0, 16.0]kWh, export []kWh gives import battery 3.13kWh, house 0.0kWh, export 0.0kWh, metric 167.88p, metric10 172.53p
2026-08-17 05:20:34.591328: Marginal costs baseline metric (no standing charge): 121.2416
2026-08-17 05:20:34.877673: Marginal energy costs matrix computed: min=9.02 max=26.74
2026-08-17 05:20:34.963842: Rate array import [{'start': 320, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 320, 'end': 1770, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:20:34.964370: - Your estimated bill for today is £1.00 and tomorrow is £4.62
2026-08-17 05:20:34.964427: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:20:34.964555: - The battery is currently at 81% and is charging to 81% for the next 10 minutes.
2026-08-17 05:20:34.964594: - For the next 48 hours there will be no solar generation.
2026-08-17 05:20:34.964648: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 05:20:34.964679:
2026-08-17 05:20:34.999322: Plan calculation took 29.83 seconds
2026-08-17 05:20:34.999574: Inverter 0: Type SK Sunsynk
2026-08-17 05:20:34.999675: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:20:34.999881: Reserve min: 7%, battery_min: 7%
2026-08-17 05:20:35.000060: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:20:35.000376: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -487W, load power 486W, PV Power 0W
2026-08-17 05:20:35.000793: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:20:35.000895: Inverter 0 scheduled charge enable is True
2026-08-17 05:20:35.009871: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:20:35.010492: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:20:35.010787: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:20:35.010923: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:20:35.011047: Inverter 0 scheduled discharge enable is False
2026-08-17 05:20:35.011310: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:20:35.011422: Inverter 0 discharge windows currently []
2026-08-17 05:20:35.011523: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:20:35.011610: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:20:35.011700: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:20:35.137566: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:20:35.137794: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 81%, target 81%
2026-08-17 05:20:35.137933: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:20:35.138011: Inverter 0 Hold charging as SoC 81% is above target SoC 81% (global soc target 81%) set_discharge_during_charge True
2026-08-17 05:20:35.138128: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:20:35.138348: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:20:35.138460: No export window planned
2026-08-17 05:20:35.138614: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:20:35.138659: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:20:35.138806: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:20:35.138882: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:20:35.138935: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 81% -> 81% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.96kWh
2026-08-17 05:20:35.138990: Inverter 0 Current Target SoC is 81%, already at target
2026-08-17 05:20:35.139179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139762: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139809: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139908: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.139955: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140031: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140125: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140170: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140434: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:20:35.140681: Inverter 0 count register writes 0
2026-08-17 05:20:35.209498: Total inverter register writes now 857
2026-08-17 05:20:35.274417: Info: Completed run status Hold charging
2026-08-17 05:20:35.294031: Info: record_status Hold charging target 81%-81%
2026-08-17 05:20:35.302307: Saved current settings to /config/predbat_config.json
2026-08-17 05:20:35.302504: Compare, best tariff: current metric 104.68p
2026-08-17 05:20:41.504357: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0116 val_mae=0.0051 kWh val_bias=-0.0028 kWh (-3.6%) combined=0.0045 kWh ema_combined=0.0037 kWh
2026-08-17 05:21:09.979739: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0136 val_mae=0.0041 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0023 kWh ema_combined=0.0032 kWh
2026-08-17 05:21:18.499499: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:21:18.499743: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:21:18.499801: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:21:18.499949: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:21:18.499988: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:21:18.500007: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:21:18.500021: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:21:35.752304: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0106 val_mae=0.0039 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0028 kWh ema_combined=0.0031 kWh
2026-08-17 05:22:04.123144: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0093 val_mae=0.0036 kWh val_bias=+0.0009 kWh (+1.2%) combined=0.0027 kWh ema_combined=0.0030 kWh
2026-08-17 05:22:29.868473: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0081 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-17 05:22:56.335765: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0073 val_mae=0.0031 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-17 05:23:18.843712: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:23:18.844043: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:23:18.844096: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:23:18.844267: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:23:18.844317: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:23:18.844345: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:23:18.844484: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:23:24.288248: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0072 val_mae=0.0032 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-17 05:23:50.046826: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0031 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-17 05:24:18.460186: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0065 val_mae=0.0031 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-17 05:24:46.490115: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0067 val_mae=0.0029 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-17 05:25:00.301135: --------------- PredBat - update at 2026-08-17 05:25:00+01:00 with clock skew 0 minutes, minutes now 325
2026-08-17 05:25:00.302107: Saved current settings to /config/predbat_config.json
2026-08-17 05:25:00.302281: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 05:25:00.302429: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:25:00.302576: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:25:00.348222: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:25:00.348357: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:25:00.348677: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:25:00.349310: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:25:00.349503: Predbat mode is set to Control charge & discharge
2026-08-17 05:25:00.747505: Found 21602 load_today datapoints going back 27 days
2026-08-17 05:25:00.748379: Using load_power data to fill gaps in load_today data
2026-08-17 05:25:02.003485: Processing 721 30-minute periods for power integration
2026-08-17 05:25:02.257364: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:25:02.257649: Car charging hold False, threshold 6.0kWh
2026-08-17 05:25:02.257734: Current data so far today: load 3.5kWh, import 6.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:25:02.274814: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:25:02.274991: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:25:02.275661: Standing charge is set to 46.63p
2026-08-17 05:25:02.471027: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.471520: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.471947: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.472300: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.472896: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.473290: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.479122: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.479596: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.480601: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.481001: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.481313: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.481644: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.481934: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:25:02.482233: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:25:02.482553: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:25:02.482697: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:25:02.495946: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:25:02.496431: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:25:02.596721: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:25:02.596851: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:25:02.598057: High export rate found rates in range 99p to -99p
2026-08-17 05:25:02.633602: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:25:02.634179: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:25:02.634240: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:25:02.654694: Battery level now 12.96kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 3.3p, change today 16.99p, rate_forward 6.87p
2026-08-17 05:25:02.655219: Last hour: net energy 1.0kWh, import 1.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 8.0p, import 8.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:25:02.764029: Today's energy total net 6.2kWh, import 6.2kWh, export 0.0kWh, cost 96.23p, import 49.6p, export 0.0p, carbon 0.0kg
2026-08-17 05:25:02.764190: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:25:02.864775: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:25:02.886294: Today's load divergence 98.03%, in-day adjustment 75.09%, damping 0.95x, yesterday 68.37% today 98.13% blend 77.43%
2026-08-17 05:25:02.886650: Today's predicted so far 3.76kWh with 0.0kWh car/iBoost excluded, 3.4kWh import ignored, and 3.76kWh forecast extra.
2026-08-17 05:25:02.886705: Today's actual load so far 3.45kWh with 0.0kWh car/iBoost excluded, and 3.4kWh import ignored.
2026-08-17 05:25:02.968279: Inverter 0: Type SK Sunsynk
2026-08-17 05:25:02.968388: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:25:02.968629: Reserve min: 7%, battery_min: 7%
2026-08-17 05:25:02.968731: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:25:02.969134: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -485W, load power 485W, PV Power 0W
2026-08-17 05:25:02.972862: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:25:02.973044: Inverter 0 scheduled charge enable is True
2026-08-17 05:25:02.973124: Inverter 0 charge windows currently [{'start': 0, 'end': 330, 'average': 0}, {'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:25:02.973258: Inverter 0 Charge settings: 08-17 00:00:00-08-17 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:25:02.973422: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:25:02.973469: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:25:02.973516: Inverter 0 scheduled discharge enable is False
2026-08-17 05:25:02.973708: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:25:02.973755: Inverter 0 discharge windows currently []
2026-08-17 05:25:02.973785: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:25:02.973822: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:25:02.973847: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:25:03.111806: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:25:03.111947: Plan was last updated on 2026-08-17 05:20:00+01:00 and is now 5.0 minutes old
2026-08-17 05:25:03.112266: Best charge window [ 17-08 05:00:00 - 17-08 05:30:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:25:03.112318: Best export window [ ]
2026-08-17 05:25:03.113760: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:25:03.119109: Load divergence over 8.0 hours mean 698.07W, min 260.4W, max 2007.0W, std dev 425.12W, divergence 30.45%
2026-08-17 05:25:03.181760: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:25:03.181912: LoadML is_calculating True
2026-08-17 05:25:03.181944: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:25:03.251163: predict base end_record 08-18 05:35:00, final soc 12.92kWh, metric 260.17p, metric_keep 0kWh, min_soc 3.03kWh @ 08-17 23:55:00, load 16.78kWh, PV 0.0kWh
2026-08-17 05:25:03.484871: Battery has 48.0 hours left - now at 12.96kWh
2026-08-17 05:25:03.549702: predict base10 end_record 08-18 05:35:00, final soc 12.92kWh, metric 265.75p, metric_keep 0kWh, min_soc 2.56kWh @ 08-17 23:55:00, load 17.42kWh, PV 0.0kWh
2026-08-17 05:25:03.643941: predict best10 end_record 08-18 05:35:00, final soc 1.77kWh, metric 172.5p, metric_keep 0.48kWh, min_soc 1.77kWh @ 08-18 05:30:00, load 17.42kWh, PV 0.0kWh
2026-08-17 05:25:03.800995: predict best end_record 08-18 05:35:00, final soc 1.9kWh, metric 167.86p, metric_keep 0.17kWh, min_soc 1.9kWh @ 08-18 05:30:00, load 16.78kWh, PV 0.0kWh
2026-08-17 05:25:03.811788: Saving plan best values to HA entities
2026-08-17 05:25:04.130881: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 05:25:04.139723: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:25:04.146438: Best charging limit SoC's [13.0, 3.5, 4.5, 2.0, 16.0]kWh, export []kWh gives import battery 3.12kWh, house 0kWh, export 0.0kWh, metric 167.86p, metric10 172.5p
2026-08-17 05:25:04.315156: Marginal costs baseline metric (no standing charge): 121.224
2026-08-17 05:25:04.722870: Marginal energy costs matrix computed: min=9.12 max=26.81
2026-08-17 05:25:04.826488: Rate array import [{'start': 325, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1775, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 325, 'end': 1775, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:25:04.826917: - Your estimated bill for today is £1.00 and tomorrow is £4.62
2026-08-17 05:25:04.826976: - Import rates are cheap (8.0p) for the next 5 minutes and then very expensive (33.8p) for the next 2 hours.
2026-08-17 05:25:04.826999: - The battery is currently at 81% and is charging to 81% for the next 5 minutes.
2026-08-17 05:25:04.827017: - For the next 48 hours there will be no solar generation.
2026-08-17 05:25:04.827120: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 05:25:04.827156:
2026-08-17 05:25:04.880171: Plan calculation took 1.77 seconds
2026-08-17 05:25:04.884791: No high rate period found
2026-08-17 05:25:04.991636: Import threshold used for optimisation was 8.0p
2026-08-17 05:25:05.081289: Low import rate windows [0: 08-17 05:00:00 - 08-17 05:30:00 @ 8.0, 1: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 2: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 3: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 4: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 5: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 6: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 7: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 8: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 9: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 10: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 11: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 12: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 13: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 14: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 15: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 16: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 17: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 18: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 19: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 20: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 21: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 22: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 23: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 24: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 25: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:25:05.089228: Include original charge start 08-17 00:00:00, keeping this instead of new start 08-17 05:00:00
2026-08-17 05:25:05.089354: Inverter 0 Charge window will be: 2026-08-17 00:00:00+01:00 - 2026-08-17 05:30:00+01:00 - current SoC 81%, target 81%
2026-08-17 05:25:05.089522: Inverter 0 Target SoC 81%, (this inverter 81%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 05:25:05.089630: Inverter 0 Hold charging as SoC 81% is above target SoC 81% (global soc target 81%) set_discharge_during_charge True
2026-08-17 05:25:05.089756: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:25:05.089947: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:25:05.090067: No export window planned
2026-08-17 05:25:05.090176: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:25:05.090215: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:25:05.090358: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:25:05.090437: Inverter 0 setting charging SoC to 81% as per target
2026-08-17 05:25:05.090498: Inverter 0 adjust target SoC for charge to 81% (12.96kWh/16.0kWh 16.0kWh) based on going from 81% -> 81% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 12.96kWh
2026-08-17 05:25:05.090561: Inverter 0 Current Target SoC is 81%, already at target
2026-08-17 05:25:05.090661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090798: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090903: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090935: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090962: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.090998: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091027: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091141: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091190: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091740: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091805: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:25:05.091880: Inverter 0 count register writes 0
2026-08-17 05:25:05.112036: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 05:25:05.119110: Total inverter register writes now 857
2026-08-17 05:25:05.160778: Info: Completed run status Hold charging
2026-08-17 05:25:05.169268: Info: record_status Hold charging target 81%-81%
2026-08-17 05:25:05.179283: Saved current settings to /config/predbat_config.json
2026-08-17 05:25:05.179594: Compare, best tariff: current metric 104.68p
2026-08-17 05:25:16.488028: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0068 val_mae=0.0028 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-17 05:25:43.480183: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0071 val_mae=0.0029 kWh val_bias=+0.0008 kWh (+1.1%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-17 05:25:49.329336: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:25:49.329638: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:25:49.329685: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:25:49.329826: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:25:49.329870: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:25:49.329897: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:25:49.329920: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:26:11.740207: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0060 val_mae=0.0028 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-17 05:26:37.992169: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0057 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 05:27:05.146740: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0060 val_mae=0.0028 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-17 05:27:31.692031: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-17 05:27:58.808028: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0059 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-17 05:28:03.739549: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:28:03.739893: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:28:03.740021: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:28:03.740225: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:28:03.740335: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:28:03.740412: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:28:03.740511: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:28:27.861054: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0057 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-17 05:28:53.795497: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 05:29:21.528096: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0052 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 05:29:48.446929: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-17 05:30:00.129988: --------------- PredBat - update at 2026-08-17 05:30:00+01:00 with clock skew 0 minutes, minutes now 330
2026-08-17 05:30:00.130649: Saved current settings to /config/predbat_config.json
2026-08-17 05:30:00.130751: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 05:30:00.130826: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:30:00.130949: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:30:00.161350: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:30:00.161486: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:30:00.161651: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:30:00.162172: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:30:00.162293: Predbat mode is set to Control charge & discharge
2026-08-17 05:30:00.548553: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:30:00.548739: Using load_power data to fill gaps in load_today data
2026-08-17 05:30:01.864851: Processing 721 30-minute periods for power integration
2026-08-17 05:30:02.027280: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:30:02.027411: Car charging hold False, threshold 6.0kWh
2026-08-17 05:30:02.027668: Current data so far today: load 3.4kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:30:02.041627: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:30:02.041720: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:30:02.042410: Standing charge is set to 46.63p
2026-08-17 05:30:02.312546: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.313033: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.322146: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.322538: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.322951: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.323360: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.323899: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.324409: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.324774: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.325267: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.325670: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.326062: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.326418: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:30:02.326766: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:30:02.327137: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:30:02.327321: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:30:02.335571: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:30:02.336219: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:30:02.382705: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:30:02.382997: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:30:02.384253: High export rate found rates in range 99p to -99p
2026-08-17 05:30:02.428993: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:30:02.429302: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:30:02.429474: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:30:02.461954: Battery level now 12.96kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 3.3p, change today 16.99p, rate_forward 6.87p
2026-08-17 05:30:02.462383: Last hour: net energy 1.05kWh, import 1.05kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 8.4p, import 8.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:30:02.567548: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 05:30:02.573194: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:30:02.661038: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:30:02.686263: Today's load divergence 96.93%, in-day adjustment 74.95%, damping 0.95x, yesterday 68.37% today 97.08% blend 77.08%
2026-08-17 05:30:02.686476: Today's predicted so far 3.88kWh with 0.0kWh car/iBoost excluded, 3.5kWh import ignored, and 3.88kWh forecast extra.
2026-08-17 05:30:02.686515: Today's actual load so far 3.4kWh with 0.0kWh car/iBoost excluded, and 3.5kWh import ignored.
2026-08-17 05:30:02.751659: Inverter 0: Type SK Sunsynk
2026-08-17 05:30:02.751898: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:30:02.752171: Reserve min: 7%, battery_min: 7%
2026-08-17 05:30:02.752283: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:30:02.752715: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -484W, load power 484W, PV Power 0W
2026-08-17 05:30:02.752993: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:30:02.753150: Inverter 0 scheduled charge enable is True
2026-08-17 05:30:02.753209: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:30:02.753413: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 81.0%, power 5.0kW
2026-08-17 05:30:02.753559: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:30:02.753597: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:30:02.753635: Inverter 0 scheduled discharge enable is False
2026-08-17 05:30:02.753816: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:30:02.753864: Inverter 0 discharge windows currently []
2026-08-17 05:30:02.753888: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:30:02.753913: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:30:02.753930: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:30:02.890888: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:30:02.891155: Plan was last updated on 2026-08-17 05:20:00+01:00 and is now 10.0 minutes old
2026-08-17 05:30:02.891292: Current charge window has expired, removing it
2026-08-17 05:30:02.891600: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 22%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 28%, 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 13%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:30:02.891831: Best export window [ ]
2026-08-17 05:30:02.892855: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:30:02.905263: Load divergence over 8.0 hours mean 705.89W, min 262.2W, max 1983.0W, std dev 419.69W, divergence 29.73%
2026-08-17 05:30:03.002822: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:30:03.005082: LoadML is_calculating True
2026-08-17 05:30:03.011049: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:30:03.169186: predict base end_record 08-18 05:40:00, final soc 12.88kWh, metric 260.68p, metric_keep 0kWh, min_soc 3.11kWh @ 08-17 23:55:00, load 16.7kWh, PV 0.0kWh
2026-08-17 05:30:03.456650: Battery has 48.0 hours left - now at 12.96kWh
2026-08-17 05:30:03.565314: predict base10 end_record 08-18 05:40:00, final soc 12.87kWh, metric 266.26p, metric_keep 0kWh, min_soc 2.64kWh @ 08-17 23:55:00, load 17.33kWh, PV 0.0kWh
2026-08-17 05:30:03.714711: predict best10 end_record 08-18 05:40:00, final soc 1.72kWh, metric 173.05p, metric_keep 0.88kWh, min_soc 1.72kWh @ 08-18 05:35:00, load 17.33kWh, PV 0.0kWh
2026-08-17 05:30:03.844820: predict best end_record 08-18 05:40:00, final soc 1.85kWh, metric 168.4p, metric_keep 0.4kWh, min_soc 1.85kWh @ 08-18 05:35:00, load 16.7kWh, PV 0.0kWh
2026-08-17 05:30:03.844943: Saving plan best values to HA entities
2026-08-17 05:30:04.183487: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:30:04.194742: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 05:30:04.205595: Best charging limit SoC's [3.5, 4.5, 2.0, 16.0]kWh, export []kWh gives import battery 3.09kWh, house 0.0kWh, export 0.0kWh, metric 168.4p, metric10 173.05p
2026-08-17 05:30:04.324356: Marginal costs baseline metric (no standing charge): 121.7662
2026-08-17 05:30:04.645080: Marginal energy costs matrix computed: min=9.23 max=26.86
2026-08-17 05:30:04.802734: Rate array import [{'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1780, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 330, 'end': 1780, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:30:04.816016: - Your estimated bill for today is £1.00 and tomorrow is £4.62
2026-08-17 05:30:04.816539: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:30:04.816591: - The battery is currently at 81% and is in eco mode for the next 18 hours.
2026-08-17 05:30:04.816614: - For the next 48 hours there will be no solar generation.
2026-08-17 05:30:04.816674: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 05:30:04.816707: - Your next charge slot will be in 18 hours where import rates will be cheap (8.0p).
2026-08-17 05:30:04.816727:
2026-08-17 05:30:04.851052: Plan calculation took 1.96 seconds
2026-08-17 05:30:04.854216: No high rate period found
2026-08-17 05:30:04.923641: Import threshold used for optimisation was 8.0p
2026-08-17 05:30:04.992589: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:30:05.002679: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 00:30:00+01:00 - current SoC 81%, target 22%
2026-08-17 05:30:05.002846: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:30:00 charge start time 08-18 00:00:00)
2026-08-17 05:30:05.002960: No export window planned
2026-08-17 05:30:05.003162: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:30:05.003211: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:30:05.003469: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:30:05.003624: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-17 05:30:10.012015: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-17 05:30:15.109390: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-17 05:30:15.109872: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:30:15.110066: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:30:15.110247: Inverter 0 Current charge limit is 81% and new target is 7%
2026-08-17 05:30:20.189915: Inverter 0 write_and_poll_value: Wrote 7 to charge_limit, successfully now 7.0
2026-08-17 05:30:20.190363: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Gen'}
2026-08-17 05:30:20.235246: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Gen'}
2026-08-17 05:30:20.345270: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Gen'}
2026-08-17 05:30:20.461092: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Gen'}
2026-08-17 05:30:20.511059: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Gen'}
2026-08-17 05:30:20.593774: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Gen'}
2026-08-17 05:30:20.633211: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-17 05:30:20.759954: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:20.760072: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:20.760114: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:20.760150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:20.760185: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:20.760364: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:20.760525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:20.760670: Inverter 0 count register writes 2
2026-08-17 05:30:20.805793: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 05:30:20.806248: Recompute is saving previous plan...
2026-08-17 05:30:20.807762: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 81%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 81%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 81%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 81%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 81%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 81%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 81%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 81%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 81%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 81%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 81%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 81%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 81%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 81%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 81%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 81%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 81%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 81%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 81%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 81% ]
2026-08-17 05:30:20.807927: Best export window [ ]
2026-08-17 05:30:20.809349: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:30:20.814433: Load divergence over 8.0 hours mean 705.89W, min 262.2W, max 1983.0W, std dev 419.69W, divergence 29.73%
2026-08-17 05:30:20.856009: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:30:20.856291: LoadML is_calculating True
2026-08-17 05:30:20.856417: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:30:20.867376: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 05:30:20.867969: Optimise levels pass started at 2026-08-17 05:30:20
2026-08-17 05:30:20.868106: Optimise all windows, total charge 25 export 1
2026-08-17 05:30:24.904542: >> Region optimisation pass width 960 gives best_metric 268.56p, best_cost 259.26p, best_cycle 36.43kWh, best_import 20.28kWh
2026-08-17 05:30:25.229467: >> Region optimisation pass width 480 gives best_metric 268.56p, best_cost 259.26p, best_cycle 36.43kWh, best_import 20.28kWh
2026-08-17 05:30:27.733689: >> Region optimisation pass width 240 gives best_metric 257.89p, best_cost 263.44p, best_cycle 40.89kWh, best_import 20.8kWh
2026-08-17 05:30:29.029735: >> Region optimisation pass width 120 gives best_metric 257.89p, best_cost 263.44p, best_cycle 40.89kWh, best_import 20.8kWh
2026-08-17 05:30:29.030050: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 05:30:29.030116: Optimise levels pass ended at 2026-08-17 05:30:29, duration 8.2 seconds tried 55 combinations
2026-08-17 05:30:29.030162: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 257.89p, best_keep 1.87kWh, best_cycle 40.89kWh, best_carbon 0kg, best_import 20.8kWh
2026-08-17 05:30:29.050719: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 05:30:29.631313: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0058 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-17 05:30:29.655266: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.4%)
2026-08-17 05:30:29.660609: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.4%)
2026-08-17 05:30:39.512430: ML Predictor: AR rollout over holdout: ar_mae=0.0023 kWh ar_bias=-0.0003 kWh (-0.4%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-17 05:30:39.543950: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0022 kWh
2026-08-17 05:30:39.677949: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-17 05:30:39.683173: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 05:30:40.846956: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 05:30:47.675745: Tweak plan optimisation started metric 216.22p, cost 228.74p
2026-08-17 05:30:48.389242: Tweak optimisation finished metric 216.22p, cost 228.74p, metric_keep 0kWh, cycle 34.54kWh, carbon 0kg, import 16.46kWh, changed 8 window(s)
2026-08-17 05:30:48.410155: Swap charge optimisation started metric 216.22p, cost 228.74p, min_improvement_swap 0.1p
2026-08-17 05:30:49.341250: Swap charge optimisation finished metric 216.22p, cost 228.74p
2026-08-17 05:30:49.448125: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 94%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:30:49.448541: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:30:49.449192: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:30:49.449454: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:30:49.488536: Previous plan best metric is 744.49 (cost 491.45) and new plan best metric is 216.22 (cost 228.74)
2026-08-17 05:30:49.488708: New plan metric is significantly better from previous plan, using new plan
2026-08-17 05:30:49.488746: Plan valid is now true after recompute was False
2026-08-17 05:30:49.518326: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 283.81p, metric_keep 16.13kWh, min_soc 1.12kWh @ 08-18 22:50:00, load 28.33kWh, PV 0.0kWh
2026-08-17 05:30:49.652271: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 05:30:49.709500: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0591 std=0.0474) pv(mean=0.0000 std=0.0100) temp(mean=19.6335 std=4.5092) import_rate(mean=16.8254 std=8.3511) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1909 std=0.5265)
2026-08-17 05:30:49.710491: Battery has 41.33 hours left - now at 12.96kWh
2026-08-17 05:30:49.756077: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 308.23p, metric_keep 24.76kWh, min_soc 1.12kWh @ 08-18 22:20:00, load 29.52kWh, PV 0.0kWh
2026-08-17 05:30:49.810904: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 05:30:49.839515: predict best10 end_record 08-18 23:30:00, final soc 1.39kWh, metric 280.61p, metric_keep 2.84kWh, min_soc 1.39kWh @ 08-18 23:25:00, load 29.52kWh, PV 0.0kWh
2026-08-17 05:30:49.849150: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 05:30:49.885497: ML Predictor: Baseline (pre-finetune) val_mae=0.0044 kWh val_bias=-0.0002 kWh
2026-08-17 05:30:50.053955: predict best end_record 08-18 23:30:00, final soc 2.03kWh, metric 275.37p, metric_keep 0kWh, min_soc 2.03kWh @ 08-18 23:25:00, load 28.33kWh, PV 0.0kWh
2026-08-17 05:30:50.054083: Saving plan best values to HA entities
2026-08-17 05:30:50.369493: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:30:50.375934: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 05:30:50.395207: Best charging limit SoC's [16.0, 15.0, 15.5, 14.5, 16.0]kWh, export []kWh gives import battery 16.46kWh, house 0.0kWh, export 0.0kWh, metric 275.37p, metric10 280.61p
2026-08-17 05:30:50.534708: Marginal costs baseline metric (no standing charge): 228.7376
2026-08-17 05:30:51.024150: Marginal energy costs matrix computed: min=9.23 max=26.86
2026-08-17 05:30:51.147527: Rate array import [{'start': 330, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 330, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:30:51.148728: - Your estimated bill for today is £1.20 and tomorrow is £1.79
2026-08-17 05:30:51.148798: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:30:51.148840: - The battery is currently at 81% and is in eco mode for the next 18 hours.
2026-08-17 05:30:51.148866: - For the next 48 hours there will be no solar generation.
2026-08-17 05:30:51.148905: - You will reach a minimum of 13% battery in 41 hours.
2026-08-17 05:30:51.148970: - Your next charge slot will be in 18 hours where import rates will be cheap (8.0p).
2026-08-17 05:30:51.149013:
2026-08-17 05:30:51.224451: Plan calculation took 30.42 seconds
2026-08-17 05:30:51.224717: Inverter 0: Type SK Sunsynk
2026-08-17 05:30:51.224769: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:30:51.225040: Reserve min: 7%, battery_min: 7%
2026-08-17 05:30:51.225138: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:30:51.225466: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 391W, current battery voltage 51.2V, grid power -56W, load power 484W, PV Power 0W
2026-08-17 05:30:51.225659: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:30:51.225766: Inverter 0 scheduled charge enable is True
2026-08-17 05:30:51.225848: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:30:51.225972: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:30:51.226131: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:30:51.226177: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:30:51.226231: Inverter 0 scheduled discharge enable is False
2026-08-17 05:30:51.226390: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:30:51.226431: Inverter 0 discharge windows currently []
2026-08-17 05:30:51.226460: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:30:51.226497: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:30:51.226522: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:30:51.397487: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 03:30:00+01:00 - current SoC 81%, target 100%
2026-08-17 05:30:51.397644: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:30:00 charge start time 08-18 00:00:00)
2026-08-17 05:30:51.397776: No export window planned
2026-08-17 05:30:51.398009: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:30:51.398070: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:30:51.398394: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:30:51.398625: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:30:51.398722: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:30:51.398846: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:30:51.398994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399205: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399365: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399440: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399682: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.399921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.400056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.400427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.400926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:30:51.401121: Inverter 0 count register writes 0
2026-08-17 05:30:51.460276: Total inverter register writes now 859
2026-08-17 05:30:51.521865: Info: Completed run status Demand
2026-08-17 05:30:51.780371: Info: record_status Demand
2026-08-17 05:30:51.805118: Saved current settings to /config/predbat_config.json
2026-08-17 05:30:51.805501: Compare, best tariff: current metric 104.68p
2026-08-17 05:31:18.483684: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0102 val_mae=0.0052 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0031 kWh ema_combined=0.0031 kWh
2026-08-17 05:31:33.955379: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:31:33.955659: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:31:33.955708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:31:33.955849: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:31:33.955908: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:31:33.955930: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:31:33.955979: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:31:47.536451: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0131 val_mae=0.0046 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0030 kWh ema_combined=0.0031 kWh
2026-08-17 05:32:15.275012: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0128 val_mae=0.0044 kWh val_bias=-0.0020 kWh (-3.6%) combined=0.0037 kWh ema_combined=0.0033 kWh
2026-08-17 05:32:44.539295: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0112 val_mae=0.0043 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0025 kWh ema_combined=0.0030 kWh
2026-08-17 05:33:13.789619: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0111 val_mae=0.0041 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0025 kWh ema_combined=0.0029 kWh
2026-08-17 05:33:41.056901: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0101 val_mae=0.0041 kWh val_bias=-0.0008 kWh (-1.4%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-17 05:33:48.423105: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:33:48.423590: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:33:48.423679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:33:48.423905: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:33:48.423967: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:33:48.423992: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:33:48.424013: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:34:07.370677: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0115 val_mae=0.0036 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-17 05:34:38.804272: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0096 val_mae=0.0034 kWh val_bias=-0.0010 kWh (-1.7%) combined=0.0026 kWh ema_combined=0.0025 kWh
2026-08-17 05:34:54.004888: Successfully loaded apps.yaml from apps.yaml
2026-08-17 05:35:00.744323: --------------- PredBat - update at 2026-08-17 05:35:00+01:00 with clock skew 0 minutes, minutes now 335
2026-08-17 05:35:00.745194: Saved current settings to /config/predbat_config.json
2026-08-17 05:35:00.745353: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 05:35:00.745443: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:35:00.745518: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:35:00.791368: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:35:00.791516: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:35:00.791684: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:35:00.792310: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:35:00.792485: Predbat mode is set to Control charge & discharge
2026-08-17 05:35:01.127918: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:35:01.128273: Using load_power data to fill gaps in load_today data
2026-08-17 05:35:02.381602: Processing 721 30-minute periods for power integration
2026-08-17 05:35:02.633844: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:35:02.634208: Car charging hold False, threshold 6.0kWh
2026-08-17 05:35:02.634547: Current data so far today: load 3.4kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:35:02.661280: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:35:02.661627: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:35:02.662804: Standing charge is set to 46.63p
2026-08-17 05:35:02.903378: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.903971: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.904447: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.904891: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.905369: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.910924: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.911440: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.911934: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.912427: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.912876: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.913898: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.914273: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.914583: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:35:02.914882: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:35:02.915185: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:35:02.915321: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:35:02.919752: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:35:02.920183: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:35:02.964203: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:35:02.964617: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:35:02.965772: High export rate found rates in range 99p to -99p
2026-08-17 05:35:02.991708: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:35:02.991955: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:35:02.992046: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:35:03.037130: Battery level now 12.96kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 3.3p, change today 16.99p, rate_forward 6.87p
2026-08-17 05:35:03.037666: Last hour: net energy 1.0kWh, import 1.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 8.0p, import 8.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:35:03.128112: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 05:35:03.128275: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:35:03.261811: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:35:03.282421: Today's load divergence 96.49%, in-day adjustment 74.95%, damping 0.95x, yesterday 68.37% today 96.67% blend 76.74%
2026-08-17 05:35:03.282761: Today's predicted so far 3.97kWh with 0.0kWh car/iBoost excluded, 3.43kWh import ignored, and 3.97kWh forecast extra.
2026-08-17 05:35:03.283287: Today's actual load so far 3.42kWh with 0.0kWh car/iBoost excluded, and 3.43kWh import ignored.
2026-08-17 05:35:03.334699: Inverter 0: Type SK Sunsynk
2026-08-17 05:35:03.334789: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:35:03.334997: Reserve min: 7%, battery_min: 7%
2026-08-17 05:35:03.335074: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:35:03.335366: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 390W, current battery voltage 51.2V, grid power -55W, load power 452W, PV Power 0W
2026-08-17 05:35:03.335540: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:35:03.335634: Inverter 0 scheduled charge enable is True
2026-08-17 05:35:03.335685: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:35:03.335772: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:35:03.335881: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:35:03.336015: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:35:03.336142: Inverter 0 scheduled discharge enable is False
2026-08-17 05:35:03.336390: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:35:03.336587: Inverter 0 discharge windows currently []
2026-08-17 05:35:03.336690: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:35:03.336768: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:35:03.336856: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:35:03.429035: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:35:03.429277: Plan was last updated on 2026-08-17 05:30:00+01:00 and is now 5.0 minutes old
2026-08-17 05:35:03.429647: Best charge window [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:35:03.429757: Best export window [ ]
2026-08-17 05:35:03.430894: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:35:03.434910: Load divergence over 8.0 hours mean 712.1W, min 271.2W, max 1926.0W, std dev 418.86W, divergence 29.41%
2026-08-17 05:35:03.458644: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:35:03.459075: LoadML is_calculating True
2026-08-17 05:35:03.459274: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:35:03.498258: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 551.99p, metric_keep 278.07kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.42kWh, PV 0.0kWh
2026-08-17 05:35:03.690370: Battery has 24.33 hours left - now at 12.96kWh
2026-08-17 05:35:03.778894: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 577.16p, metric_keep 280.64kWh, min_soc 1.12kWh @ 08-18 05:45:00, load 29.61kWh, PV 0.0kWh
2026-08-17 05:35:03.931872: predict best10 end_record 08-18 23:35:00, final soc 1.71kWh, metric 284.03p, metric_keep 3.0kWh, min_soc 1.39kWh @ 08-18 23:25:00, load 29.61kWh, PV 0.0kWh
2026-08-17 05:35:04.099132: predict best end_record 08-18 23:35:00, final soc 2.42kWh, metric 279.32p, metric_keep 0kWh, min_soc 2.03kWh @ 08-18 23:25:00, load 28.42kWh, PV 0.0kWh
2026-08-17 05:35:04.099244: Saving plan best values to HA entities
2026-08-17 05:35:04.439738: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:35:04.446538: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 05:35:04.453346: Best charging limit SoC's [16.0, 15.0, 15.5, 14.5, 16.0]kWh, export []kWh gives import battery 16.96kWh, house 0.0kWh, export 0.0kWh, metric 279.32p, metric10 284.03p
2026-08-17 05:35:04.642411: Marginal costs baseline metric (no standing charge): 232.6863
2026-08-17 05:35:05.084127: Marginal energy costs matrix computed: min=9.23 max=26.76
2026-08-17 05:35:05.277704: Rate array import [{'start': 335, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 335, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:35:05.278554: - Your estimated bill for today is £1.20 and tomorrow is £1.79
2026-08-17 05:35:05.278608: - Import rates are very expensive (33.8p) for the next 1 hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:35:05.278632: - The battery is currently at 81% and is in eco mode for the next 17 hours.
2026-08-17 05:35:05.278651: - For the next 48 hours there will be no solar generation.
2026-08-17 05:35:05.289049: - You will reach a minimum of 13% battery in 41 hours.
2026-08-17 05:35:05.289156: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 05:35:05.289180:
2026-08-17 05:35:05.383689: Plan calculation took 1.95 seconds
2026-08-17 05:35:05.388450: No high rate period found
2026-08-17 05:35:05.465759: Import threshold used for optimisation was 8.0p
2026-08-17 05:35:05.534403: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:35:05.545530: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 03:30:00+01:00 - current SoC 81%, target 100%
2026-08-17 05:35:05.545720: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:35:00 charge start time 08-18 00:00:00)
2026-08-17 05:35:05.545771: No export window planned
2026-08-17 05:35:05.545947: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:35:05.546017: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:35:05.546230: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:35:05.546422: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:35:05.546481: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:35:05.546563: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:35:05.546658: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.546715: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.546766: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.546939: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547097: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547515: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.547934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.548015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:35:05.548084: Inverter 0 count register writes 0
2026-08-17 05:35:05.573701: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 05:35:05.581916: Total inverter register writes now 859
2026-08-17 05:35:05.641510: Info: Completed run status Demand
2026-08-17 05:35:05.657183: Info: record_status Demand
2026-08-17 05:35:05.666080: Saved current settings to /config/predbat_config.json
2026-08-17 05:35:05.666400: Compare, best tariff: current metric 104.68p
2026-08-17 05:35:10.020655: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0087 val_mae=0.0037 kWh val_bias=-0.0013 kWh (-2.3%) combined=0.0028 kWh ema_combined=0.0026 kWh
2026-08-17 05:35:37.723045: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0095 val_mae=0.0040 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-17 05:35:37.723186: ML Predictor: Early stopping at epoch 10
2026-08-17 05:35:37.724606: ML Predictor: Restored best weights from epoch with val_mae=0.0044 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-17 05:35:37.724758: ML Predictor: Training complete, final val_mae=0.0044 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-17 05:35:44.974672: ML Predictor: AR rollout over holdout: ar_mae=0.0109 kWh ar_bias=+0.0024 kWh (+4.3%) [drift vs teacher-forced: +0.0065 kWh]
2026-08-17 05:35:44.987944: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0044 kWh
2026-08-17 05:35:44.988604: ML Predictor: Curriculum final pass 5/5: full dataset (58.6 days)
2026-08-17 05:35:44.988772: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 05:35:45.724566: ML Predictor: Creating dataset with 1406 hours of training data, 48 hours validation
2026-08-17 05:35:48.737743: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:35:48.743223: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:35:48.748413: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:35:48.753827: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:35:48.759037: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:35:48.764229: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:35:48.769429: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:35:50.632632: ML Predictor: Created 16594 training samples, 576 validation samples
2026-08-17 05:35:50.686301: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0591 std=0.0475) pv(mean=0.0000 std=0.0100) temp(mean=19.6352 std=4.5152) import_rate(mean=16.7950 std=8.3614) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1917 std=0.5269)
2026-08-17 05:35:50.767054: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 05:35:50.781373: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 05:35:50.951184: ML Predictor: Baseline (pre-finetune) val_mae=0.0070 kWh val_bias=-0.0007 kWh
2026-08-17 05:36:22.409175: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0117 val_mae=0.0056 kWh val_bias=-0.0012 kWh (-2.9%) combined=0.0031 kWh ema_combined=0.0031 kWh
2026-08-17 05:36:49.712861: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0119 val_mae=0.0050 kWh val_bias=-0.0009 kWh (-2.3%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-17 05:37:17.936894: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0113 val_mae=0.0049 kWh val_bias=-0.0008 kWh (-2.1%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-17 05:37:45.287982: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0136 val_mae=0.0054 kWh val_bias=-0.0012 kWh (-3.2%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-17 05:37:48.870159: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:37:48.870473: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:37:48.870534: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:37:48.870694: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:37:48.870741: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:37:48.870763: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:37:48.870781: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:38:15.379669: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0170 val_mae=0.0053 kWh val_bias=-0.0013 kWh (-3.2%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-17 05:38:42.213700: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0127 val_mae=0.0047 kWh val_bias=+0.0010 kWh (+2.6%) combined=0.0041 kWh ema_combined=0.0032 kWh
2026-08-17 05:39:10.832317: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0123 val_mae=0.0052 kWh val_bias=+0.0005 kWh (+1.3%) combined=0.0043 kWh ema_combined=0.0036 kWh
2026-08-17 05:39:39.712204: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0127 val_mae=0.0044 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0031 kWh ema_combined=0.0034 kWh
2026-08-17 05:39:49.275739: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:39:49.276216: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:39:49.276355: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:39:49.276607: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:39:49.276732: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:39:49.276841: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:39:49.276965: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:40:00.443225: --------------- PredBat - update at 2026-08-17 05:40:00+01:00 with clock skew 0 minutes, minutes now 340
2026-08-17 05:40:00.444159: Saved current settings to /config/predbat_config.json
2026-08-17 05:40:00.444291: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 05:40:00.444373: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:40:00.444509: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:40:00.483567: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:40:00.483728: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:40:00.483943: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:40:00.485275: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:40:00.485569: Predbat mode is set to Control charge & discharge
2026-08-17 05:40:00.713530: MCP POST: Received request from 172.19.0.1
2026-08-17 05:40:00.713999: MCP: Could not even decode without verification: Not enough segments
2026-08-17 05:40:00.714076: MCP: Token verification failed: Not enough segments
2026-08-17 05:40:00.714146: MCP POST: Authenticated via legacy bearer token
2026-08-17 05:40:00.889584: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:40:00.889733: Using load_power data to fill gaps in load_today data
2026-08-17 05:40:02.137358: Processing 721 30-minute periods for power integration
2026-08-17 05:40:02.363730: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:40:02.363902: Car charging hold False, threshold 6.0kWh
2026-08-17 05:40:02.363960: Current data so far today: load 3.53kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:40:02.399206: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:40:02.399564: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:40:02.400726: Standing charge is set to 46.63p
2026-08-17 05:40:02.728839: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.729358: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.729606: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.729836: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.730023: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.730228: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.730414: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.730632: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.730814: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.730996: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.731190: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.731373: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.731548: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:40:02.731914: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.7, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:40:02.732099: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:40:02.732184: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:40:02.738925: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:40:02.739314: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:40:02.776458: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:40:02.776679: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:40:02.777929: High export rate found rates in range 99p to -99p
2026-08-17 05:40:02.802101: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:40:02.802643: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:40:02.802706: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:40:02.821943: Battery level now 12.96kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 3.3p, change today 16.99p, rate_forward 6.87p
2026-08-17 05:40:02.822503: Last hour: net energy 0.9kWh, import 0.9kWh, export 0.0kWh, car 0kWh, load 0.48kWh, net cost 7.2p, import 7.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:40:02.905220: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 05:40:02.905377: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:40:03.098415: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:40:03.167532: Today's load divergence 97.17%, in-day adjustment 75.2%, damping 0.95x, yesterday 68.37% today 97.31% blend 76.39%
2026-08-17 05:40:03.167744: Today's predicted so far 3.96kWh with 0.0kWh car/iBoost excluded, 3.34kWh import ignored, and 3.96kWh forecast extra.
2026-08-17 05:40:03.167930: Today's actual load so far 3.52kWh with 0.0kWh car/iBoost excluded, and 3.34kWh import ignored.
2026-08-17 05:40:03.225562: Inverter 0: Type SK Sunsynk
2026-08-17 05:40:03.225781: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:40:03.226055: Reserve min: 7%, battery_min: 7%
2026-08-17 05:40:03.226199: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:40:03.226543: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -54W, load power 447W, PV Power 0W
2026-08-17 05:40:03.226767: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:40:03.226913: Inverter 0 scheduled charge enable is True
2026-08-17 05:40:03.226970: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:40:03.227171: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:40:03.227363: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:40:03.227410: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:40:03.227499: Inverter 0 scheduled discharge enable is False
2026-08-17 05:40:03.227694: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:40:03.227740: Inverter 0 discharge windows currently []
2026-08-17 05:40:03.227797: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:40:03.227887: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:40:03.227924: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:40:03.352039: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:40:03.352172: Plan was last updated on 2026-08-17 05:30:00+01:00 and is now 10.0 minutes old
2026-08-17 05:40:03.352793: Best charge window [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:40:03.365085: Best export window [ ]
2026-08-17 05:40:03.366341: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:40:03.370793: Load divergence over 8.0 hours mean 719.81W, min 292.2W, max 1707.6W, std dev 420.11W, divergence 29.18%
2026-08-17 05:40:03.425035: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:40:03.425917: LoadML is_calculating True
2026-08-17 05:40:03.426090: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:40:03.526863: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 554.06p, metric_keep 278.92kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.64kWh, PV 0.0kWh
2026-08-17 05:40:03.790873: Battery has 24.17 hours left - now at 12.8kWh
2026-08-17 05:40:03.850830: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 578.63p, metric_keep 280.85kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.83kWh, PV 0.0kWh
2026-08-17 05:40:04.031173: predict best10 end_record 08-18 23:40:00, final soc 2.03kWh, metric 288.95p, metric_keep 3.06kWh, min_soc 1.38kWh @ 08-18 23:25:00, load 29.83kWh, PV 0.0kWh
2026-08-17 05:40:04.218842: predict best end_record 08-18 23:40:00, final soc 2.8kWh, metric 284.77p, metric_keep 0kWh, min_soc 2.02kWh @ 08-18 23:25:00, load 28.64kWh, PV 0.0kWh
2026-08-17 05:40:04.218964: Saving plan best values to HA entities
2026-08-17 05:40:04.561978: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:40:04.580501: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 05:40:04.598890: Best charging limit SoC's [16.0, 15.0, 15.5, 14.5, 16.0]kWh, export []kWh gives import battery 17.64kWh, house 0.0kWh, export 0.0kWh, metric 284.77p, metric10 288.95p
2026-08-17 05:40:04.716980: Marginal costs baseline metric (no standing charge): 238.1351
2026-08-17 05:40:05.103479: Marginal energy costs matrix computed: min=9.23 max=27.24
2026-08-17 05:40:05.243150: Rate array import [{'start': 340, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 340, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:40:05.244292: - Your estimated bill for today is £1.20 and tomorrow is £1.80
2026-08-17 05:40:05.244435: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:40:05.244545: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-17 05:40:05.244641: - For the next 48 hours there will be no solar generation.
2026-08-17 05:40:05.244743: - You will reach a minimum of 13% battery in 41 hours.
2026-08-17 05:40:05.244834: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 05:40:05.244924:
2026-08-17 05:40:05.294261: Plan calculation took 1.94 seconds
2026-08-17 05:40:05.296998: No high rate period found
2026-08-17 05:40:05.373165: Import threshold used for optimisation was 8.0p
2026-08-17 05:40:05.453497: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:40:05.462348: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 03:30:00+01:00 - current SoC 80%, target 100%
2026-08-17 05:40:05.462598: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:40:00 charge start time 08-18 00:00:00)
2026-08-17 05:40:05.462658: No export window planned
2026-08-17 05:40:05.462930: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:40:05.463031: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:40:05.463388: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:40:05.463698: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:40:05.463815: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:40:05.464008: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:40:05.464279: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.464387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.464508: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.464643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.464757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.464907: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465080: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.465971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:05.466069: Inverter 0 count register writes 0
2026-08-17 05:40:05.490199: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 05:40:05.490651: Recompute is saving previous plan...
2026-08-17 05:40:05.491905: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 05:40:05.492001: Best export window [ ]
2026-08-17 05:40:05.493086: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:40:05.499198: Load divergence over 8.0 hours mean 719.81W, min 292.2W, max 1707.6W, std dev 420.11W, divergence 29.18%
2026-08-17 05:40:05.529032: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:40:05.529276: LoadML is_calculating True
2026-08-17 05:40:05.529427: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:40:05.544150: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 05:40:05.545084: Optimise levels pass started at 2026-08-17 05:40:05
2026-08-17 05:40:05.545167: Optimise all windows, total charge 25 export 1
2026-08-17 05:40:07.892732: >> Region optimisation pass width 960 gives best_metric 275.6p, best_cost 372.7p, best_cycle 45.8kWh, best_import 34.46kWh
2026-08-17 05:40:08.062127: >> Region optimisation pass width 480 gives best_metric 275.6p, best_cost 372.7p, best_cycle 45.8kWh, best_import 34.46kWh
2026-08-17 05:40:12.222359: >> Region optimisation pass width 240 gives best_metric 258.97p, best_cost 271.23p, best_cycle 41.05kWh, best_import 21.77kWh
2026-08-17 05:40:15.134350: >> Region optimisation pass width 120 gives best_metric 258.22p, best_cost 270.61p, best_cycle 39.96kWh, best_import 21.7kWh
2026-08-17 05:40:15.134704: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 05:40:15.134856: Optimise levels pass ended at 2026-08-17 05:40:15, duration 9.6 seconds tried 76 combinations
2026-08-17 05:40:15.134976: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 258.22p, best_keep 0kWh, best_cycle 39.96kWh, best_carbon 0kg, best_import 21.7kWh
2026-08-17 05:40:15.152855: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 05:40:22.336422: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0111 val_mae=0.0041 kWh val_bias=-0.0004 kWh (-1.1%) combined=0.0023 kWh ema_combined=0.0031 kWh
2026-08-17 05:40:27.333479: Tweak plan optimisation started metric 217.38p, cost 229.85p
2026-08-17 05:40:29.308196: Tweak optimisation finished metric 217.38p, cost 229.85p, metric_keep 0kWh, cycle 34.66kWh, carbon 0kg, import 16.6kWh, changed 8 window(s)
2026-08-17 05:40:29.343806: Swap charge optimisation started metric 217.38p, cost 229.85p, min_improvement_swap 0.1p
2026-08-17 05:40:30.646996: Swap charge optimisation finished metric 217.38p, cost 229.85p
2026-08-17 05:40:30.792642: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 94%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:40:30.793440: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:40:30.793884: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:40:30.794293: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:40:30.867406: Previous plan best metric is 217.38 (cost 229.85) and new plan best metric is 217.38 (cost 229.85)
2026-08-17 05:40:30.874465: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 05:40:30.874885: Plan valid is now true after recompute was False
2026-08-17 05:40:30.936975: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 552.44p, metric_keep 278.33kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.44kWh, PV 0.0kWh
2026-08-17 05:40:31.177872: Battery has 24.17 hours left - now at 12.8kWh
2026-08-17 05:40:31.284687: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 576.94p, metric_keep 280.27kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.62kWh, PV 0.0kWh
2026-08-17 05:40:31.488591: predict best10 end_record 08-18 23:30:00, final soc 1.38kWh, metric 281.7p, metric_keep 2.96kWh, min_soc 1.38kWh @ 08-18 23:25:00, load 29.62kWh, PV 0.0kWh
2026-08-17 05:40:31.600845: predict best end_record 08-18 23:30:00, final soc 2.02kWh, metric 276.48p, metric_keep 0kWh, min_soc 2.02kWh @ 08-18 23:25:00, load 28.44kWh, PV 0.0kWh
2026-08-17 05:40:31.601155: Saving plan best values to HA entities
2026-08-17 05:40:31.910152: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:40:31.929955: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 05:40:31.940246: Best charging limit SoC's [16.0, 15.0, 15.5, 14.5, 16.0]kWh, export []kWh gives import battery 16.6kWh, house 0.0kWh, export 0.0kWh, metric 276.48p, metric10 281.7p
2026-08-17 05:40:32.046174: Marginal costs baseline metric (no standing charge): 229.8508
2026-08-17 05:40:32.635082: Marginal energy costs matrix computed: min=9.23 max=27.24
2026-08-17 05:40:32.781982: Rate array import [{'start': 340, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 340, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:40:32.785359: - Your estimated bill for today is £1.20 and tomorrow is £1.80
2026-08-17 05:40:32.785446: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:40:32.785473: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-17 05:40:32.785492: - For the next 48 hours there will be no solar generation.
2026-08-17 05:40:32.785570: - You will reach a minimum of 13% battery in 41 hours.
2026-08-17 05:40:32.785661: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 05:40:32.785798:
2026-08-17 05:40:32.878780: Plan calculation took 27.39 seconds
2026-08-17 05:40:32.879222: Inverter 0: Type SK Sunsynk
2026-08-17 05:40:32.879283: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:40:32.879617: Reserve min: 7%, battery_min: 7%
2026-08-17 05:40:32.879769: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:40:32.880201: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -54W, load power 447W, PV Power 0W
2026-08-17 05:40:32.880468: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:40:32.880635: Inverter 0 scheduled charge enable is True
2026-08-17 05:40:32.880782: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:40:32.881001: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:40:32.881256: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:40:32.881313: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:40:32.881484: Inverter 0 scheduled discharge enable is False
2026-08-17 05:40:32.881859: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:40:32.881917: Inverter 0 discharge windows currently []
2026-08-17 05:40:32.881948: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:40:32.882059: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:40:32.882105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:40:33.070391: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 03:30:00+01:00 - current SoC 80%, target 100%
2026-08-17 05:40:33.070687: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:40:00 charge start time 08-18 00:00:00)
2026-08-17 05:40:33.070737: No export window planned
2026-08-17 05:40:33.070944: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:40:33.071000: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:40:33.071341: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:40:33.071613: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:40:33.071683: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:40:33.071834: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:40:33.071982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072235: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072402: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072513: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072680: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072735: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.072857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.073003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.073145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.073265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:40:33.073326: Inverter 0 count register writes 0
2026-08-17 05:40:33.108690: Total inverter register writes now 859
2026-08-17 05:40:33.165284: Info: Completed run status Demand
2026-08-17 05:40:33.178169: Info: record_status Demand
2026-08-17 05:40:33.201763: Saved current settings to /config/predbat_config.json
2026-08-17 05:40:33.201995: Compare, best tariff: current metric 104.68p
2026-08-17 05:40:56.702943: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0108 val_mae=0.0040 kWh val_bias=-0.0016 kWh (-4.1%) combined=0.0028 kWh ema_combined=0.0030 kWh
2026-08-17 05:41:03.387708: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:41:03.387989: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:41:03.388037: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:41:03.388200: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:41:03.388243: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:41:03.388265: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:41:03.388283: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:41:23.927753: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0090 val_mae=0.0040 kWh val_bias=-0.0014 kWh (-3.6%) combined=0.0032 kWh ema_combined=0.0030 kWh
2026-08-17 05:41:53.435761: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0091 val_mae=0.0038 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-17 05:42:02.576600: Successfully loaded apps.yaml from apps.yaml
2026-08-17 05:42:18.605794: Successfully loaded apps.yaml from apps.yaml
2026-08-17 05:42:23.009837: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0082 val_mae=0.0035 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-17 05:42:52.635935: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0078 val_mae=0.0035 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-17 05:43:03.761650: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:43:03.761950: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:43:03.761998: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:43:03.762145: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:43:03.762200: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:43:03.762226: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:43:03.762246: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:43:19.736204: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0079 val_mae=0.0035 kWh val_bias=+0.0007 kWh (+1.7%) combined=0.0030 kWh ema_combined=0.0026 kWh
2026-08-17 05:43:48.139600: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0073 val_mae=0.0033 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-17 05:44:14.716105: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0074 val_mae=0.0033 kWh val_bias=+0.0004 kWh (+1.1%) combined=0.0026 kWh ema_combined=0.0024 kWh
2026-08-17 05:44:43.219285: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0032 kWh val_bias=-0.0007 kWh (-1.9%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-17 05:45:00.106930: --------------- PredBat - update at 2026-08-17 05:45:00+01:00 with clock skew 0 minutes, minutes now 345
2026-08-17 05:45:00.107980: Saved current settings to /config/predbat_config.json
2026-08-17 05:45:00.108207: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 05:45:00.108423: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:45:00.108549: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:45:00.147880: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:45:00.148023: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:45:00.148259: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:45:00.148910: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:45:00.149102: Predbat mode is set to Control charge & discharge
2026-08-17 05:45:00.548331: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:45:00.548517: Using load_power data to fill gaps in load_today data
2026-08-17 05:45:01.689086: Processing 721 30-minute periods for power integration
2026-08-17 05:45:02.045140: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:45:02.045314: Car charging hold False, threshold 6.0kWh
2026-08-17 05:45:02.045366: Current data so far today: load 3.55kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:45:02.062018: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:45:02.062502: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:45:02.063267: Standing charge is set to 46.63p
2026-08-17 05:45:02.211513: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.211892: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.212287: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.212620: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.213010: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.213389: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.213728: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.214073: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.214394: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.214698: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.214995: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.215313: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.215613: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.215907: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:45:02.216310: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:45:02.216457: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:45:02.223058: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:45:02.223754: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:45:02.289706: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:45:02.289865: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:45:02.291625: High export rate found rates in range 99p to -99p
2026-08-17 05:45:02.353030: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:45:02.353188: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:45:02.353389: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:45:02.388800: Battery level now 12.8kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 2.2p, change today 15.89p, rate_forward 6.87p
2026-08-17 05:45:02.389571: Last hour: net energy 0.8kWh, import 0.8kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 6.4p, import 6.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:45:02.532155: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 05:45:02.532325: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:45:02.623420: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:45:02.649280: Today's load divergence 97.32%, in-day adjustment 75.34%, damping 0.95x, yesterday 68.37% today 97.45% blend 76.04%
2026-08-17 05:45:02.649410: Today's predicted so far 3.96kWh with 0.0kWh car/iBoost excluded, 3.32kWh import ignored, and 3.96kWh forecast extra.
2026-08-17 05:45:02.649562: Today's actual load so far 3.53kWh with 0.0kWh car/iBoost excluded, and 3.32kWh import ignored.
2026-08-17 05:45:02.709806: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]]
2026-08-17 05:45:02.710589: Sensor changes require a replan, will recompute the plan
2026-08-17 05:45:02.710782: Inverter 0: Type SK Sunsynk
2026-08-17 05:45:02.710831: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:45:02.711078: Reserve min: 7%, battery_min: 7%
2026-08-17 05:45:02.711167: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:45:02.711510: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -54W, load power 448W, PV Power 0W
2026-08-17 05:45:02.711704: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:45:02.711813: Inverter 0 scheduled charge enable is True
2026-08-17 05:45:02.711871: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:45:02.711978: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:45:02.712123: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:45:02.712168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:45:02.712212: Inverter 0 scheduled discharge enable is False
2026-08-17 05:45:02.712396: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:45:02.712443: Inverter 0 discharge windows currently []
2026-08-17 05:45:02.712472: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:45:02.712507: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:45:02.712531: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:45:02.876404: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:45:02.876645: Will recompute the plan as it is invalid
2026-08-17 05:45:02.876869: Recompute is saving previous plan...
2026-08-17 05:45:02.878310: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 05:45:02.878384: Best export window [ ]
2026-08-17 05:45:02.879798: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:45:02.887884: Load divergence over 8.0 hours mean 734.27W, min 259.8W, max 1788.0W, std dev 429.35W, divergence 29.24%
2026-08-17 05:45:02.951313: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:45:02.951458: LoadML is_calculating True
2026-08-17 05:45:02.951492: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:45:02.980499: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 05:45:02.981071: Optimise levels pass started at 2026-08-17 05:45:02
2026-08-17 05:45:02.981269: Optimise all windows, total charge 25 export 1
2026-08-17 05:45:04.990490: >> Region optimisation pass width 960 gives best_metric 275.7p, best_cost 372.5p, best_cycle 45.84kWh, best_import 34.43kWh
2026-08-17 05:45:05.295835: >> Region optimisation pass width 480 gives best_metric 275.7p, best_cost 372.5p, best_cycle 45.84kWh, best_import 34.43kWh
2026-08-17 05:45:05.742036: Successfully loaded apps.yaml from apps.yaml
2026-08-17 05:45:09.944932: >> Region optimisation pass width 240 gives best_metric 259.06p, best_cost 271.04p, best_cycle 41.09kWh, best_import 21.75kWh
2026-08-17 05:45:13.531381: >> Region optimisation pass width 120 gives best_metric 258.25p, best_cost 270.36p, best_cycle 39.91kWh, best_import 21.67kWh
2026-08-17 05:45:13.541281: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 05:45:13.541408: Optimise levels pass ended at 2026-08-17 05:45:13, duration 10.6 seconds tried 76 combinations
2026-08-17 05:45:13.541476: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 258.25p, best_keep 0kWh, best_cycle 39.91kWh, best_carbon 0kg, best_import 21.67kWh
2026-08-17 05:45:13.599402: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 05:45:26.593262: Tweak plan optimisation started metric 217.2p, cost 229.6p
2026-08-17 05:45:28.796578: Tweak optimisation finished metric 217.2p, cost 229.6p, metric_keep 0kWh, cycle 34.64kWh, carbon 0kg, import 16.57kWh, changed 8 window(s)
2026-08-17 05:45:28.818725: Swap charge optimisation started metric 217.2p, cost 229.6p, min_improvement_swap 0.1p
2026-08-17 05:45:29.118628: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0067 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-17 05:45:29.983049: Swap charge optimisation finished metric 217.2p, cost 229.6p
2026-08-17 05:45:30.129164: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 94%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:45:30.129813: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:45:30.130386: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:45:30.130760: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:45:30.202394: Previous plan best metric is 217.2 (cost 229.6) and new plan best metric is 217.2 (cost 229.6)
2026-08-17 05:45:30.203437: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 05:45:30.203722: Plan valid is now true after recompute was False
2026-08-17 05:45:30.238296: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 552.07p, metric_keep 277.72kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.44kWh, PV 0.0kWh
2026-08-17 05:45:30.501580: Battery has 24.17 hours left - now at 12.8kWh
2026-08-17 05:45:30.566550: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 576.49p, metric_keep 279.57kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.63kWh, PV 0.0kWh
2026-08-17 05:45:30.680701: predict best10 end_record 08-18 23:30:00, final soc 1.37kWh, metric 281.45p, metric_keep 3.02kWh, min_soc 1.37kWh @ 08-18 23:25:00, load 29.63kWh, PV 0.0kWh
2026-08-17 05:45:30.913769: predict best end_record 08-18 23:30:00, final soc 2.01kWh, metric 276.24p, metric_keep 0kWh, min_soc 2.01kWh @ 08-18 23:25:00, load 28.44kWh, PV 0.0kWh
2026-08-17 05:45:30.913883: Saving plan best values to HA entities
2026-08-17 05:45:31.173190: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:45:31.182520: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:45:31.190357: Best charging limit SoC's [16.0, 15.0, 15.5, 14.5, 16.0]kWh, export []kWh gives import battery 16.57kWh, house 0.0kWh, export 0.0kWh, metric 276.24p, metric10 281.45p
2026-08-17 05:45:31.297060: Marginal costs baseline metric (no standing charge): 229.605
2026-08-17 05:45:31.721034: Marginal energy costs matrix computed: min=9.23 max=27.2
2026-08-17 05:45:31.827258: Rate array import [{'start': 345, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 345, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:45:31.828735: - Your estimated bill for today is £1.20 and tomorrow is £1.80
2026-08-17 05:45:31.828822: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:45:31.828860: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-17 05:45:31.829017: - For the next 48 hours there will be no solar generation.
2026-08-17 05:45:31.829120: - You will reach a minimum of 13% battery in 41 hours.
2026-08-17 05:45:31.829158: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 05:45:31.829261:
2026-08-17 05:45:31.895369: Plan calculation took 29.02 seconds
2026-08-17 05:45:31.950272: Saved plan to storage
2026-08-17 05:45:31.953545: No high rate period found
2026-08-17 05:45:32.074313: Import threshold used for optimisation was 8.0p
2026-08-17 05:45:32.181208: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:45:32.187802: Inverter 0: Type SK Sunsynk
2026-08-17 05:45:32.187898: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:45:32.188060: Reserve min: 7%, battery_min: 7%
2026-08-17 05:45:32.188139: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:45:32.188489: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 382W, current battery voltage 51.2V, grid power -54W, load power 445W, PV Power 0W
2026-08-17 05:45:32.188858: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:45:32.188974: Inverter 0 scheduled charge enable is True
2026-08-17 05:45:32.189027: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:45:32.189112: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:45:32.189222: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:45:32.189270: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:45:32.189313: Inverter 0 scheduled discharge enable is False
2026-08-17 05:45:32.189420: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:45:32.189530: Inverter 0 discharge windows currently []
2026-08-17 05:45:32.189568: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:45:32.189585: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:45:32.189599: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:45:32.346620: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 03:30:00+01:00 - current SoC 80%, target 100%
2026-08-17 05:45:32.346791: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:45:00 charge start time 08-18 00:00:00)
2026-08-17 05:45:32.346840: No export window planned
2026-08-17 05:45:32.347004: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:45:32.347057: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:45:32.347300: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:45:32.347525: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:45:32.347596: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:45:32.347663: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:45:32.347773: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.347857: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.347902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.347957: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.347995: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.348036: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.348086: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.348174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.361105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.361258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.361311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.361561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.361644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.361821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:45:32.361893: Inverter 0 count register writes 0
2026-08-17 05:45:32.413508: Total inverter register writes now 859
2026-08-17 05:45:32.462731: Info: Completed run status Demand
2026-08-17 05:45:32.470375: Info: record_status Demand
2026-08-17 05:45:32.480976: Saved current settings to /config/predbat_config.json
2026-08-17 05:45:32.481167: Compare, best tariff: current metric 104.68p
2026-08-17 05:45:58.620124: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0069 val_mae=0.0032 kWh val_bias=+0.0008 kWh (+2.0%) combined=0.0026 kWh ema_combined=0.0024 kWh
2026-08-17 05:46:03.595658: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:46:03.595935: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:46:03.595974: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:46:03.596090: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:46:03.596125: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:46:03.596143: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:46:03.596158: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:46:26.139776: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0067 val_mae=0.0030 kWh val_bias=+0.0001 kWh (+0.4%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 05:46:57.095238: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0059 val_mae=0.0030 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-17 05:47:24.977556: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0059 val_mae=0.0029 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 05:47:51.372011: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-1.4%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 05:48:03.897393: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:48:03.897801: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:48:03.897870: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:48:03.898091: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:48:03.898150: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:48:03.898189: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:48:03.898221: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:48:22.144215: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0059 val_mae=0.0028 kWh val_bias=-0.0004 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 05:48:49.651545: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0059 val_mae=0.0028 kWh val_bias=-0.0002 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-17 05:49:19.476075: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0061 val_mae=0.0027 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-17 05:49:48.916165: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0062 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 05:50:00.416224: --------------- PredBat - update at 2026-08-17 05:50:00+01:00 with clock skew 0 minutes, minutes now 350
2026-08-17 05:50:00.417905: Saved current settings to /config/predbat_config.json
2026-08-17 05:50:00.418209: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 05:50:00.418426: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:50:00.418759: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:50:00.449321: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:50:00.449722: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:50:00.450178: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:50:00.451025: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:50:00.451417: Predbat mode is set to Control charge & discharge
2026-08-17 05:50:00.855109: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:50:00.855542: Using load_power data to fill gaps in load_today data
2026-08-17 05:50:02.016829: Processing 721 30-minute periods for power integration
2026-08-17 05:50:02.300759: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:50:02.300900: Car charging hold False, threshold 6.0kWh
2026-08-17 05:50:02.300994: Current data so far today: load 3.65kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:50:02.318727: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:50:02.318850: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:50:02.319734: Standing charge is set to 46.63p
2026-08-17 05:50:02.633660: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.634171: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.634593: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.634980: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.635368: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.635718: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.636086: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.636439: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.636812: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.637178: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.637558: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.637918: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.638280: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.638629: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:50:02.639069: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:50:02.639233: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:50:02.647110: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:50:02.661491: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:50:02.751114: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:50:02.751979: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:50:02.753271: High export rate found rates in range 99p to -99p
2026-08-17 05:50:02.783951: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:50:02.784167: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:50:02.784234: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:50:02.801202: Battery level now 12.8kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 2.2p, change today 15.89p, rate_forward 6.87p
2026-08-17 05:50:02.801608: Last hour: net energy 0.75kWh, import 0.75kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 6.0p, import 6.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:50:02.901586: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 05:50:02.906527: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:50:03.142173: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:50:03.169825: Today's load divergence 97.78%, in-day adjustment 75.54%, damping 0.95x, yesterday 68.37% today 97.89% blend 75.69%
2026-08-17 05:50:03.170012: Today's predicted so far 3.97kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 3.97kWh forecast extra.
2026-08-17 05:50:03.170103: Today's actual load so far 3.62kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 05:50:03.236733: Inverter 0: Type SK Sunsynk
2026-08-17 05:50:03.236821: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:50:03.237016: Reserve min: 7%, battery_min: 7%
2026-08-17 05:50:03.237292: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:50:03.237574: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 385W, current battery voltage 51.2V, grid power -54W, load power 446W, PV Power 0W
2026-08-17 05:50:03.237835: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:50:03.237917: Inverter 0 scheduled charge enable is True
2026-08-17 05:50:03.237952: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:50:03.238034: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:50:03.238141: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:50:03.238361: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:50:03.238429: Inverter 0 scheduled discharge enable is False
2026-08-17 05:50:03.238565: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:50:03.238598: Inverter 0 discharge windows currently []
2026-08-17 05:50:03.238619: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:50:03.238634: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:50:03.238649: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:50:03.376494: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:50:03.376662: Plan was last updated on 2026-08-17 05:45:00+01:00 and is now 5.0 minutes old
2026-08-17 05:50:03.377169: Best charge window [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:50:03.377257: Best export window [ ]
2026-08-17 05:50:03.378817: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:50:03.388657: Load divergence over 8.0 hours mean 734.92W, min 260.4W, max 1896.0W, std dev 432.93W, divergence 29.45%
2026-08-17 05:50:03.457861: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:50:03.458106: LoadML is_calculating True
2026-08-17 05:50:03.458146: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 05:50:03.501232: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 552.32p, metric_keep 277.79kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.62kWh, PV 0.0kWh
2026-08-17 05:50:03.670824: Battery has 24.08 hours left - now at 12.8kWh
2026-08-17 05:50:03.727803: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 576.73p, metric_keep 279.6kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.81kWh, PV 0.0kWh
2026-08-17 05:50:03.861152: predict best10 end_record 08-18 23:35:00, final soc 1.71kWh, metric 285.01p, metric_keep 3.02kWh, min_soc 1.39kWh @ 08-18 23:25:00, load 29.81kWh, PV 0.0kWh
2026-08-17 05:50:04.025449: predict best end_record 08-18 23:35:00, final soc 2.42kWh, metric 280.33p, metric_keep 0kWh, min_soc 2.03kWh @ 08-18 23:25:00, load 28.62kWh, PV 0.0kWh
2026-08-17 05:50:04.026246: Saving plan best values to HA entities
2026-08-17 05:50:04.414715: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:50:04.423563: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:50:04.430787: Best charging limit SoC's [16.0, 15.0, 15.5, 14.5, 16.0]kWh, export []kWh gives import battery 17.08kWh, house 0.0kWh, export 0.0kWh, metric 280.33p, metric10 285.01p
2026-08-17 05:50:04.548721: Marginal costs baseline metric (no standing charge): 233.6962
2026-08-17 05:50:05.067690: Marginal energy costs matrix computed: min=9.23 max=27.18
2026-08-17 05:50:05.169168: Rate array import [{'start': 350, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 350, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:50:05.169924: - Your estimated bill for today is £1.21 and tomorrow is £1.80
2026-08-17 05:50:05.169973: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:50:05.169996: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-17 05:50:05.170015: - For the next 48 hours there will be no solar generation.
2026-08-17 05:50:05.170033: - You will reach a minimum of 13% battery in 41 hours.
2026-08-17 05:50:05.170050: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 05:50:05.170075:
2026-08-17 05:50:05.226589: Plan calculation took 1.85 seconds
2026-08-17 05:50:05.230321: No high rate period found
2026-08-17 05:50:05.322620: Import threshold used for optimisation was 8.0p
2026-08-17 05:50:05.410835: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:50:05.435461: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 03:30:00+01:00 - current SoC 80%, target 100%
2026-08-17 05:50:05.435598: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:50:00 charge start time 08-18 00:00:00)
2026-08-17 05:50:05.435623: No export window planned
2026-08-17 05:50:05.435733: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:50:05.435767: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:50:05.435914: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:50:05.436050: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:50:05.436114: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:50:05.436155: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:50:05.436227: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436304: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436381: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436402: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:50:05.436648: Inverter 0 count register writes 0
2026-08-17 05:50:05.460189: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 05:50:05.467224: Total inverter register writes now 859
2026-08-17 05:50:05.522212: Info: Completed run status Demand
2026-08-17 05:50:05.532149: Info: record_status Demand
2026-08-17 05:50:05.554917: Saved current settings to /config/predbat_config.json
2026-08-17 05:50:05.555150: Compare, best tariff: current metric 104.68p
2026-08-17 05:50:20.620164: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0056 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.6%) combined=0.0020 kWh ema_combined=0.0017 kWh
2026-08-17 05:50:48.234658: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-17 05:50:48.235935: ML Predictor: Restored best weights from epoch with val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-17 05:50:48.236089: ML Predictor: Training complete, final val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-17 05:50:48.810360: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:50:48.815904: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:50:48.821741: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:50:48.827172: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:50:48.832437: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:50:48.837642: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:50:48.842854: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:50:51.975147: ML Predictor: AR rollout over holdout: ar_mae=0.0030 kWh ar_bias=-0.0001 kWh (-0.4%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-17 05:50:51.996625: ML Predictor: Curriculum training complete, final val_mae=0.0027 kWh
2026-08-17 05:50:52.008162: ML Component: Training successful, val_mae=0.0027 kWh
2026-08-17 05:50:52.199128: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 05:50:52.204020: ML Component: Generating predictions load data age 58.0 days, 16883 data points
2026-08-17 05:50:52.357896: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0449 max_dow {0: 0.08525277777612211, 1: 0.10017499963007867, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 05:50:53.736598: ML Component: Generated 576 predictions (total 29.43 kWh over 48h)
2026-08-17 05:50:53.781629: ML Component: Prediction cycle completed
2026-08-17 05:50:53.899178: ML Component: Saved 16883 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 05:51:54.038294: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 05:51:54.892875: Processing 1345 30-minute periods for power integration
2026-08-17 05:51:54.974966: ML Component: Car charging hold False, car energy reported load False
2026-08-17 05:51:55.057267: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:51:55.140714: ML Temperature data points: 50051
2026-08-17 05:51:55.366281: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 05:51:55.403698: ML Component: Data fetch completed, load data age 58.0 days, 16894 data points
2026-08-17 05:51:55.403842: ML Component: No training needed, model age is -0.01 hours
2026-08-17 05:51:55.403893: ML Component: Generating predictions load data age 58.0 days, 16894 data points
2026-08-17 05:51:55.520697: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0364 max_dow {0: 0.08534444444278877, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 05:51:58.653714: ML Component: Generated 576 predictions (total 29.50 kWh over 48h)
2026-08-17 05:51:58.692503: ML Component: Prediction cycle completed
2026-08-17 05:51:58.812207: ML Component: Saved 16894 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 05:52:49.243248: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:52:49.243542: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:52:49.243588: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:52:49.243755: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:52:49.243795: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:52:49.243816: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:52:49.243835: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:55:00.473189: --------------- PredBat - update at 2026-08-17 05:55:00+01:00 with clock skew 0 minutes, minutes now 355
2026-08-17 05:55:00.474226: Saved current settings to /config/predbat_config.json
2026-08-17 05:55:00.474408: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 05:55:00.474584: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 05:55:00.474719: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 05:55:00.495885: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 05:55:00.496031: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 05:55:00.496192: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 05:55:00.496712: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 05:55:00.496828: Predbat mode is set to Control charge & discharge
2026-08-17 05:55:00.694403: Found 21602 load_today datapoints going back 28 days
2026-08-17 05:55:00.694576: Using load_power data to fill gaps in load_today data
2026-08-17 05:55:01.539718: Processing 721 30-minute periods for power integration
2026-08-17 05:55:01.731599: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 05:55:01.731745: Car charging hold False, threshold 6.0kWh
2026-08-17 05:55:01.731794: Current data so far today: load 3.7kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 05:55:01.749275: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 05:55:01.749394: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 05:55:01.750205: Standing charge is set to 46.63p
2026-08-17 05:55:01.851397: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.851704: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.851900: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.852117: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.852324: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.852526: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.852752: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.852915: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.853095: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.853243: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.853382: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.853549: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.853722: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.853865: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 05:55:01.854080: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 05:55:01.854131: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 05:55:01.859291: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 05:55:01.859612: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 05:55:01.895336: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 05:55:01.895451: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 05:55:01.896477: High export rate found rates in range 99p to -99p
2026-08-17 05:55:01.919488: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 05:55:01.919591: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 05:55:01.919634: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 05:55:01.932407: Battery level now 12.8kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 2.2p, change today 15.89p, rate_forward 6.87p
2026-08-17 05:55:01.932737: Last hour: net energy 0.7kWh, import 0.7kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 5.6p, import 5.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 05:55:01.979487: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 05:55:01.979599: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 05:55:02.040871: Using weighted-bucket historical load forecast over 14 days
2026-08-17 05:55:02.060132: Today's load divergence 98.0%, in-day adjustment 75.7%, damping 0.95x, yesterday 68.37% today 98.1% blend 75.35%
2026-08-17 05:55:02.060215: Today's predicted so far 3.98kWh with 0.0kWh car/iBoost excluded, 3.43kWh import ignored, and 3.98kWh forecast extra.
2026-08-17 05:55:02.060241: Today's actual load so far 3.66kWh with 0.0kWh car/iBoost excluded, and 3.43kWh import ignored.
2026-08-17 05:55:02.094356: Inverter 0: Type SK Sunsynk
2026-08-17 05:55:02.094450: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:55:02.094614: Reserve min: 7%, battery_min: 7%
2026-08-17 05:55:02.094673: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:55:02.094918: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 388W, current battery voltage 51.2V, grid power -55W, load power 450W, PV Power 0W
2026-08-17 05:55:02.095051: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:55:02.095125: Inverter 0 scheduled charge enable is True
2026-08-17 05:55:02.095160: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:55:02.095234: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:55:02.095339: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:55:02.095364: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:55:02.095394: Inverter 0 scheduled discharge enable is False
2026-08-17 05:55:02.095513: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:55:02.095539: Inverter 0 discharge windows currently []
2026-08-17 05:55:02.095558: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:55:02.095573: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:55:02.095605: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:55:02.151830: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 05:55:02.151931: Plan was last updated on 2026-08-17 05:45:00+01:00 and is now 10.0 minutes old
2026-08-17 05:55:02.152137: Best charge window [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 05:55:02.152166: Best export window [ ]
2026-08-17 05:55:02.152813: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:55:02.155335: Load divergence over 8.0 hours mean 736.03W, min 260.4W, max 2007.0W, std dev 427.97W, divergence 29.07%
2026-08-17 05:55:02.170477: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:55:02.170565: LoadML is_calculating False
2026-08-17 05:55:02.170626: Creating pool of 12 processes to match your CPU count
2026-08-17 05:55:02.283865: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 554.65p, metric_keep 279.3kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.77kWh, PV 0.0kWh
2026-08-17 05:55:02.415604: Battery has 23.92 hours left - now at 12.8kWh
2026-08-17 05:55:02.453984: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 577.38p, metric_keep 279.45kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.97kWh, PV 0.0kWh
2026-08-17 05:55:02.530049: predict best10 end_record 08-18 23:40:00, final soc 2.02kWh, metric 288.55p, metric_keep 3.04kWh, min_soc 1.38kWh @ 08-18 23:25:00, load 29.97kWh, PV 0.0kWh
2026-08-17 05:55:02.608163: predict best end_record 08-18 23:40:00, final soc 2.8kWh, metric 284.38p, metric_keep 0kWh, min_soc 2.02kWh @ 08-18 23:25:00, load 28.77kWh, PV 0.0kWh
2026-08-17 05:55:02.608256: Saving plan best values to HA entities
2026-08-17 05:55:02.773255: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:55:02.778480: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:55:02.783466: Best charging limit SoC's [16.0, 15.0, 15.5, 14.5, 16.0]kWh, export []kWh gives import battery 17.59kWh, house 0kWh, export 0.0kWh, metric 284.38p, metric10 288.55p
2026-08-17 05:55:02.851518: Marginal costs baseline metric (no standing charge): 237.7468
2026-08-17 05:55:03.094969: Marginal energy costs matrix computed: min=9.23 max=27.16
2026-08-17 05:55:03.169686: Rate array import [{'start': 355, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 355, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:55:03.170430: - Your estimated bill for today is £1.21 and tomorrow is £1.80
2026-08-17 05:55:03.170492: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:55:03.170955: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-17 05:55:03.171002: - For the next 48 hours there will be no solar generation.
2026-08-17 05:55:03.171020: - You will reach a minimum of 13% battery in 41 hours.
2026-08-17 05:55:03.171034: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 05:55:03.171049:
2026-08-17 05:55:03.229529: Plan calculation took 1.08 seconds
2026-08-17 05:55:03.232899: No high rate period found
2026-08-17 05:55:03.281725: Import threshold used for optimisation was 8.0p
2026-08-17 05:55:03.331704: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 05:55:03.336743: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 03:30:00+01:00 - current SoC 80%, target 100%
2026-08-17 05:55:03.336837: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:55:00 charge start time 08-18 00:00:00)
2026-08-17 05:55:03.336869: No export window planned
2026-08-17 05:55:03.337057: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:55:03.337158: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:55:03.337369: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:55:03.337562: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:55:03.337617: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:55:03.337671: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:55:03.337752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337836: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337857: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337876: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337955: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.337984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.338005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.338025: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.338045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.338085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.338110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:03.338128: Inverter 0 count register writes 0
2026-08-17 05:55:03.352197: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 05:55:03.352345: Recompute is saving previous plan...
2026-08-17 05:55:03.353215: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 05:55:03.353262: Best export window [ ]
2026-08-17 05:55:03.353876: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 05:55:03.356281: Load divergence over 8.0 hours mean 736.03W, min 260.4W, max 2007.0W, std dev 427.97W, divergence 29.07%
2026-08-17 05:55:03.370704: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 05:55:03.370786: LoadML is_calculating False
2026-08-17 05:55:03.370865: Creating pool of 12 processes to match your CPU count
2026-08-17 05:55:03.449346: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 05:55:03.450199: Optimise levels pass started at 2026-08-17 05:55:03
2026-08-17 05:55:03.450256: Optimise all windows, total charge 25 export 1
2026-08-17 05:55:03.780375: >> Region optimisation pass width 960 gives best_metric 276.05p, best_cost 372.35p, best_cycle 45.88kWh, best_import 34.41kWh
2026-08-17 05:55:03.900230: >> Region optimisation pass width 480 gives best_metric 276.05p, best_cost 372.35p, best_cycle 45.88kWh, best_import 34.41kWh
2026-08-17 05:55:04.191244: >> Region optimisation pass width 240 gives best_metric 268.26p, best_cost 323.56p, best_cycle 45.2kWh, best_import 28.32kWh
2026-08-17 05:55:04.784249: >> Region optimisation pass width 120 gives best_metric 265.06p, best_cost 298.81p, best_cycle 43.42kWh, best_import 25.22kWh
2026-08-17 05:55:04.784601: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 05:55:04.784736: Optimise levels pass ended at 2026-08-17 05:55:04, duration 1.3 seconds tried 67 combinations
2026-08-17 05:55:04.784909: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 265.06p, best_keep 1.15kWh, best_cycle 43.42kWh, best_carbon 0kg, best_import 25.22kWh
2026-08-17 05:55:04.806239: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 05:55:07.664904: Tweak plan optimisation started metric 215.94p, cost 227.55p
2026-08-17 05:55:08.029225: Tweak optimisation finished metric 215.94p, cost 227.55p, metric_keep 0.12kWh, cycle 32.71kWh, carbon 0kg, import 16.31kWh, changed 8 window(s)
2026-08-17 05:55:08.050984: Swap charge optimisation started metric 215.94p, cost 227.55p, min_improvement_swap 0.1p
2026-08-17 05:55:08.846575: Swap charge optimisation finished metric 215.94p, cost 227.55p
2026-08-17 05:55:08.982277: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 81%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 81%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:55:08.982701: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:55:08.982960: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:55:08.983138: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 05:55:09.023900: Previous plan best metric is 217.02 (cost 229.47) and new plan best metric is 215.94 (cost 227.55)
2026-08-17 05:55:09.024606: New plan is a cost-neutral improvement but less fragmented (2 vs 3 segments), using new plan
2026-08-17 05:55:09.024681: Plan valid is now true after recompute was False
2026-08-17 05:55:09.057483: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 553.04p, metric_keep 278.72kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.57kWh, PV 0.0kWh
2026-08-17 05:55:09.175065: Battery has 23.92 hours left - now at 12.8kWh
2026-08-17 05:55:09.225758: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 575.69p, metric_keep 278.86kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.75kWh, PV 0.0kWh
2026-08-17 05:55:09.313611: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 279.7p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.75kWh, PV 0.0kWh
2026-08-17 05:55:09.397709: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 274.18p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.57kWh, PV 0.0kWh
2026-08-17 05:55:09.397821: Saving plan best values to HA entities
2026-08-17 05:55:09.576727: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 05:55:09.584163: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 05:55:09.589872: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.31kWh, house 0kWh, export 0.0kWh, metric 274.18p, metric10 279.7p
2026-08-17 05:55:09.668811: Marginal costs baseline metric (no standing charge): 227.5459
2026-08-17 05:55:09.969544: Marginal energy costs matrix computed: min=9.23 max=27.16
2026-08-17 05:55:10.057553: Rate array import [{'start': 355, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 355, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 05:55:10.058444: - Your estimated bill for today is £1.21 and tomorrow is £1.78
2026-08-17 05:55:10.058510: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 05:55:10.058534: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-17 05:55:10.058553: - For the next 48 hours there will be no solar generation.
2026-08-17 05:55:10.058574: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 05:55:10.058591: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 05:55:10.058610:
2026-08-17 05:55:10.133933: Plan calculation took 6.78 seconds
2026-08-17 05:55:10.134411: Inverter 0: Type SK Sunsynk
2026-08-17 05:55:10.134475: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 05:55:10.134720: Reserve min: 7%, battery_min: 7%
2026-08-17 05:55:10.134800: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 05:55:10.135136: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 388W, current battery voltage 51.2V, grid power -55W, load power 450W, PV Power 0W
2026-08-17 05:55:10.135377: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:55:10.135500: Inverter 0 scheduled charge enable is True
2026-08-17 05:55:10.135551: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 05:55:10.135660: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 05:55:10.135785: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:55:10.135826: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:55:10.135864: Inverter 0 scheduled discharge enable is False
2026-08-17 05:55:10.135995: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:55:10.136033: Inverter 0 discharge windows currently []
2026-08-17 05:55:10.136056: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:55:10.136077: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:55:10.136094: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:55:10.200504: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 80%, target 100%
2026-08-17 05:55:10.200646: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 05:55:00 charge start time 08-18 00:00:00)
2026-08-17 05:55:10.200703: No export window planned
2026-08-17 05:55:10.200847: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 05:55:10.200890: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 05:55:10.201148: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 05:55:10.201346: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 05:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 05:55:10.201402: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 05:55:10.201478: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 05:55:10.201570: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201642: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201672: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201707: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201732: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201815: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201901: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201948: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 05:55:10.201995: Inverter 0 count register writes 0
2026-08-17 05:55:10.232136: Total inverter register writes now 859
2026-08-17 05:55:10.270025: Info: Completed run status Demand
2026-08-17 05:55:10.278020: Info: record_status Demand
2026-08-17 05:55:10.286332: Saved current settings to /config/predbat_config.json
2026-08-17 05:55:10.286708: Compare, best tariff: current metric 104.68p
2026-08-17 05:55:48.413352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:55:48.413737: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:55:48.413844: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:55:48.414055: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:55:48.414127: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:55:48.414149: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:55:48.414169: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:57:48.639191: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:57:48.639487: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:57:48.639534: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:57:48.639737: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:57:48.639780: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:57:48.639802: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:57:48.639828: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 05:59:48.855715: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 05:59:48.855944: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 05:59:48.855982: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 05:59:48.856139: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 05:59:48.856176: Note: Inverter does not support discharge freeze - disabled
2026-08-17 05:59:48.856193: Note: Inverter does not support charge freeze - disabled
2026-08-17 05:59:48.856207: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:00:00.942005: --------------- PredBat - update at 2026-08-17 06:00:00+01:00 with clock skew 0 minutes, minutes now 360
2026-08-17 06:00:00.942922: Saved current settings to /config/predbat_config.json
2026-08-17 06:00:00.943129: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 06:00:00.943291: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:00:00.943419: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:00:00.973073: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:00:00.973209: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:00:00.973418: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:00:00.973995: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:00:00.974157: Predbat mode is set to Control charge & discharge
2026-08-17 06:00:01.272708: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:00:01.272891: Using load_power data to fill gaps in load_today data
2026-08-17 06:00:02.205299: Processing 721 30-minute periods for power integration
2026-08-17 06:00:02.420286: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:00:02.420435: Car charging hold False, threshold 6.0kWh
2026-08-17 06:00:02.420485: Current data so far today: load 3.75kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:00:02.443239: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:00:02.444208: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:00:02.445302: Standing charge is set to 46.63p
2026-08-17 06:00:02.543302: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.543638: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.543933: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.544167: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.544391: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.544613: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.544852: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.545099: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.545318: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.545520: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.546203: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.546447: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.546674: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.546863: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:00:02.547072: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:00:02.547125: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:00:02.552203: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:00:02.552677: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:00:02.594005: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:00:02.594139: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:00:02.595896: High export rate found rates in range 99p to -99p
2026-08-17 06:00:02.638219: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:00:02.638395: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:00:02.638471: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:00:02.657445: Battery level now 12.8kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour 2.2p, change today 15.89p, rate_forward 6.87p
2026-08-17 06:00:02.658101: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:00:02.758326: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 06:00:02.758524: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:00:02.859670: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:00:02.884438: Today's load divergence 97.72%, in-day adjustment 75.74%, damping 0.95x, yesterday 68.37% today 97.83% blend 75.0%
2026-08-17 06:00:02.884562: Today's predicted so far 4.09kWh with 0.0kWh car/iBoost excluded, 3.45kWh import ignored, and 4.09kWh forecast extra.
2026-08-17 06:00:02.884597: Today's actual load so far 3.73kWh with 0.0kWh car/iBoost excluded, and 3.45kWh import ignored.
2026-08-17 06:00:02.933888: Inverter 0: Type SK Sunsynk
2026-08-17 06:00:02.934011: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:00:02.934276: Reserve min: 7%, battery_min: 7%
2026-08-17 06:00:02.934376: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:00:02.934774: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 389W, current battery voltage 51.2V, grid power -54W, load power 452W, PV Power 0W
2026-08-17 06:00:02.935207: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:00:02.935343: Inverter 0 scheduled charge enable is True
2026-08-17 06:00:02.935409: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:00:02.935535: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:00:02.935736: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:00:02.935788: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:00:02.935843: Inverter 0 scheduled discharge enable is False
2026-08-17 06:00:02.936020: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:00:02.936069: Inverter 0 discharge windows currently []
2026-08-17 06:00:02.936102: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:00:02.936129: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:00:02.936159: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:00:03.045675: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:00:03.045850: Plan was last updated on 2026-08-17 05:55:00+01:00 and is now 5.0 minutes old
2026-08-17 06:00:03.046248: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:00:03.046325: Best export window [ ]
2026-08-17 06:00:03.047865: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:00:03.054893: Load divergence over 8.0 hours mean 735.51W, min 262.2W, max 1983.0W, std dev 418.31W, divergence 28.44%
2026-08-17 06:00:03.084860: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:00:03.085058: LoadML is_calculating False
2026-08-17 06:00:03.085164: Creating pool of 12 processes to match your CPU count
2026-08-17 06:00:03.323047: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 553.35p, metric_keep 278.79kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.71kWh, PV 0.0kWh
2026-08-17 06:00:03.511742: Battery has 23.83 hours left - now at 12.8kWh
2026-08-17 06:00:03.570781: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 578.26p, metric_keep 281.1kWh, min_soc 1.12kWh @ 08-18 05:45:00, load 29.9kWh, PV 0.0kWh
2026-08-17 06:00:03.653974: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 283.29p, metric_keep 3.58kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.9kWh, PV 0.0kWh
2026-08-17 06:00:03.756870: predict best end_record 08-18 23:35:00, final soc 2.31kWh, metric 278.3p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.71kWh, PV 0.0kWh
2026-08-17 06:00:03.757032: Saving plan best values to HA entities
2026-08-17 06:00:03.982589: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:00:03.995923: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:00:04.003095: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.83kWh, house 0.0kWh, export 0.0kWh, metric 278.3p, metric10 283.29p
2026-08-17 06:00:04.089633: Marginal costs baseline metric (no standing charge): 231.662
2026-08-17 06:00:04.356381: Marginal energy costs matrix computed: min=9.23 max=27.08
2026-08-17 06:00:04.444897: Rate array import [{'start': 360, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 360, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:00:04.445668: - Your estimated bill for today is £1.20 and tomorrow is £1.78
2026-08-17 06:00:04.445718: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:00:04.445738: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-17 06:00:04.445753: - For the next 48 hours there will be no solar generation.
2026-08-17 06:00:04.445767: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:00:04.445781: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:00:04.445795:
2026-08-17 06:00:04.514644: Plan calculation took 1.47 seconds
2026-08-17 06:00:04.520595: No high rate period found
2026-08-17 06:00:04.666541: Import threshold used for optimisation was 8.0p
2026-08-17 06:00:04.767115: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:00:04.777993: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 80%, target 100%
2026-08-17 06:00:04.778206: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:00:00 charge start time 08-18 00:00:00)
2026-08-17 06:00:04.778282: No export window planned
2026-08-17 06:00:04.778558: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:00:04.778642: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:00:04.779055: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:00:04.779354: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:00:04.779464: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:00:04.779568: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:00:04.779702: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.779750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.779780: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.779818: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.779883: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.779930: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.779963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:00:04.780365: Inverter 0 count register writes 0
2026-08-17 06:00:04.865684: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 06:00:04.875160: Total inverter register writes now 859
2026-08-17 06:00:04.929358: Info: Completed run status Demand
2026-08-17 06:00:04.942040: Info: record_status Demand
2026-08-17 06:00:04.953211: Saved current settings to /config/predbat_config.json
2026-08-17 06:00:04.954105: Compare, best tariff: current metric 104.68p
2026-08-17 06:00:49.134581: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:00:49.134904: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:00:49.134976: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:00:49.135135: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:00:49.135202: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:00:49.135224: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:00:49.135296: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:02:49.345915: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:02:49.346488: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:02:49.346547: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:02:49.346783: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:02:49.346853: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:02:49.346921: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:02:49.346970: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:05:00.581321: --------------- PredBat - update at 2026-08-17 06:05:00+01:00 with clock skew 0 minutes, minutes now 365
2026-08-17 06:05:00.582103: Saved current settings to /config/predbat_config.json
2026-08-17 06:05:00.582232: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 06:05:00.582318: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:05:00.582453: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:05:00.606258: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:05:00.606407: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:05:00.606599: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:05:00.607144: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:05:00.607271: Predbat mode is set to Control charge & discharge
2026-08-17 06:05:00.837566: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:05:00.837732: Using load_power data to fill gaps in load_today data
2026-08-17 06:05:01.608134: Processing 721 30-minute periods for power integration
2026-08-17 06:05:01.778309: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:05:01.778450: Car charging hold False, threshold 6.0kWh
2026-08-17 06:05:01.778497: Current data so far today: load 3.8kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:05:01.794157: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:05:01.794651: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:05:01.795363: Standing charge is set to 46.63p
2026-08-17 06:05:01.880726: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.881015: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.881201: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.881406: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.881571: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.881720: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.881908: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.882052: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.882187: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.882346: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.882480: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.882621: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.882760: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.882936: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:05:01.883128: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:05:01.883180: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:05:01.887565: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:05:01.887968: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:05:01.923449: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:05:01.923559: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:05:01.924602: High export rate found rates in range 99p to -99p
2026-08-17 06:05:01.950614: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:05:01.950745: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:05:01.950789: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:05:01.963072: Battery level now 12.8kWh, -1hr ago 12.63kWh, at midnight 10.49kWh, battery value change in the last hour 1.15p, change today 15.89p, rate_forward 6.87p
2026-08-17 06:05:01.963384: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:05:02.008667: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-17 06:05:02.008902: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:05:02.073625: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:05:02.094939: Today's load divergence 97.53%, in-day adjustment 75.79%, damping 0.95x, yesterday 68.37% today 97.65% blend 74.65%
2026-08-17 06:05:02.095028: Today's predicted so far 4.18kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.18kWh forecast extra.
2026-08-17 06:05:02.095054: Today's actual load so far 3.79kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 06:05:02.134259: Inverter 0: Type SK Sunsynk
2026-08-17 06:05:02.134354: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:05:02.134573: Reserve min: 7%, battery_min: 7%
2026-08-17 06:05:02.134692: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:05:02.135098: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 385W, current battery voltage 51.2V, grid power -55W, load power 451W, PV Power 0W
2026-08-17 06:05:02.135327: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:05:02.135465: Inverter 0 scheduled charge enable is True
2026-08-17 06:05:02.135546: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:05:02.135706: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:05:02.135902: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:05:02.135946: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:05:02.135997: Inverter 0 scheduled discharge enable is False
2026-08-17 06:05:02.136176: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:05:02.136219: Inverter 0 discharge windows currently []
2026-08-17 06:05:02.136246: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:05:02.136289: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:05:02.136324: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:05:02.205789: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:05:02.205923: Plan was last updated on 2026-08-17 05:55:00+01:00 and is now 10.0 minutes old
2026-08-17 06:05:02.206150: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:05:02.206192: Best export window [ ]
2026-08-17 06:05:02.207012: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:05:02.210313: Load divergence over 8.0 hours mean 734.87W, min 271.2W, max 1926.0W, std dev 414.04W, divergence 28.17%
2026-08-17 06:05:02.230692: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:05:02.230840: LoadML is_calculating False
2026-08-17 06:05:02.230908: Creating pool of 12 processes to match your CPU count
2026-08-17 06:05:02.361024: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 555.02p, metric_keep 279.36kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.85kWh, PV 0.0kWh
2026-08-17 06:05:02.483272: Battery has 23.75 hours left - now at 12.64kWh
2026-08-17 06:05:02.529100: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 579.04p, metric_keep 280.78kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 30.04kWh, PV 0.0kWh
2026-08-17 06:05:02.606453: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 288.18p, metric_keep 3.58kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.04kWh, PV 0.0kWh
2026-08-17 06:05:02.691207: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 283.7p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.85kWh, PV 0.0kWh
2026-08-17 06:05:02.691291: Saving plan best values to HA entities
2026-08-17 06:05:02.863485: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:05:02.869500: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:05:02.874687: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.5kWh, house 0.0kWh, export 0.0kWh, metric 283.7p, metric10 288.18p
2026-08-17 06:05:02.944460: Marginal costs baseline metric (no standing charge): 237.0625
2026-08-17 06:05:03.232019: Marginal energy costs matrix computed: min=9.23 max=27.45
2026-08-17 06:05:03.323358: Rate array import [{'start': 365, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 365, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:05:03.324273: - Your estimated bill for today is £1.20 and tomorrow is £1.79
2026-08-17 06:05:03.324333: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:05:03.324358: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:05:03.324377: - For the next 48 hours there will be no solar generation.
2026-08-17 06:05:03.324398: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:05:03.324417: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:05:03.324435:
2026-08-17 06:05:03.394532: Plan calculation took 1.19 seconds
2026-08-17 06:05:03.397914: No high rate period found
2026-08-17 06:05:03.458388: Import threshold used for optimisation was 8.0p
2026-08-17 06:05:03.509468: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:05:03.528667: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 79%, target 100%
2026-08-17 06:05:03.528807: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:05:00 charge start time 08-18 00:00:00)
2026-08-17 06:05:03.528868: No export window planned
2026-08-17 06:05:03.529102: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:05:03.529180: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:05:03.529437: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:05:03.529644: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:05:03.529710: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:05:03.529779: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:05:03.529897: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.529947: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.529976: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530030: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530061: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530087: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:03.530372: Inverter 0 count register writes 0
2026-08-17 06:05:03.551970: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 06:05:03.552162: Recompute is saving previous plan...
2026-08-17 06:05:03.553174: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 06:05:03.553229: Best export window [ ]
2026-08-17 06:05:03.554049: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:05:03.557245: Load divergence over 8.0 hours mean 734.87W, min 271.2W, max 1926.0W, std dev 414.04W, divergence 28.17%
2026-08-17 06:05:03.575086: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:05:03.575222: LoadML is_calculating False
2026-08-17 06:05:03.575297: Creating pool of 12 processes to match your CPU count
2026-08-17 06:05:03.674956: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 06:05:03.676071: Optimise levels pass started at 2026-08-17 06:05:03
2026-08-17 06:05:03.676177: Optimise all windows, total charge 25 export 1
2026-08-17 06:05:04.065558: >> Region optimisation pass width 960 gives best_metric 277.86p, best_cost 373.57p, best_cycle 45.99kWh, best_import 34.57kWh
2026-08-17 06:05:04.220106: >> Region optimisation pass width 480 gives best_metric 277.86p, best_cost 373.57p, best_cycle 45.99kWh, best_import 34.57kWh
2026-08-17 06:05:05.080708: >> Region optimisation pass width 240 gives best_metric 262.66p, best_cost 273.58p, best_cycle 41.59kWh, best_import 22.07kWh
2026-08-17 06:05:06.097212: >> Region optimisation pass width 120 gives best_metric 260.83p, best_cost 272.92p, best_cycle 40.44kWh, best_import 21.99kWh
2026-08-17 06:05:06.097475: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 06:05:06.097549: Optimise levels pass ended at 2026-08-17 06:05:06, duration 2.4 seconds tried 77 combinations
2026-08-17 06:05:06.097617: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 260.83p, best_keep 0kWh, best_cycle 40.44kWh, best_carbon 0kg, best_import 21.99kWh
2026-08-17 06:05:06.121748: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 06:05:09.172256: Tweak plan optimisation started metric 218.16p, cost 230.67p
2026-08-17 06:05:09.560320: Tweak optimisation finished metric 218.16p, cost 230.67p, metric_keep 0kWh, cycle 34.65kWh, carbon 0kg, import 16.7kWh, changed 8 window(s)
2026-08-17 06:05:09.580865: Swap charge optimisation started metric 218.16p, cost 230.67p, min_improvement_swap 0.1p
2026-08-17 06:05:10.534385: Swap charge optimisation finished metric 218.16p, cost 230.67p
2026-08-17 06:05:10.629106: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:05:10.629588: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:05:10.629910: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:05:10.630189: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:05:10.664241: Previous plan best metric is 217.07 (cost 228.77) and new plan best metric is 218.16 (cost 230.67)
2026-08-17 06:05:10.664496: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 06:05:10.664734: Plan valid is now true after recompute was False
2026-08-17 06:05:10.692073: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 553.39p, metric_keep 278.77kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.65kWh, PV 0.0kWh
2026-08-17 06:05:10.822875: Battery has 23.75 hours left - now at 12.64kWh
2026-08-17 06:05:10.872241: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 577.34p, metric_keep 280.19kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.83kWh, PV 0.0kWh
2026-08-17 06:05:10.969355: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 280.93p, metric_keep 3.46kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.83kWh, PV 0.0kWh
2026-08-17 06:05:11.057234: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 275.41p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.65kWh, PV 0.0kWh
2026-08-17 06:05:11.057333: Saving plan best values to HA entities
2026-08-17 06:05:11.212313: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:05:11.217255: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:05:11.222158: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.47kWh, house 0.0kWh, export 0.0kWh, metric 275.41p, metric10 280.93p
2026-08-17 06:05:11.284460: Marginal costs baseline metric (no standing charge): 228.7742
2026-08-17 06:05:11.521104: Marginal energy costs matrix computed: min=9.23 max=27.45
2026-08-17 06:05:11.589461: Rate array import [{'start': 365, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 365, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:05:11.590101: - Your estimated bill for today is £1.20 and tomorrow is £1.79
2026-08-17 06:05:11.590144: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:05:11.590163: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:05:11.590178: - For the next 48 hours there will be no solar generation.
2026-08-17 06:05:11.590192: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:05:11.590206: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:05:11.590220:
2026-08-17 06:05:11.648300: Plan calculation took 8.10 seconds
2026-08-17 06:05:11.648643: Inverter 0: Type SK Sunsynk
2026-08-17 06:05:11.648689: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:05:11.648943: Reserve min: 7%, battery_min: 7%
2026-08-17 06:05:11.649103: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:05:11.649443: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 385W, current battery voltage 51.2V, grid power -55W, load power 451W, PV Power 0W
2026-08-17 06:05:11.649690: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:05:11.649800: Inverter 0 scheduled charge enable is True
2026-08-17 06:05:11.649895: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:05:11.650003: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:05:11.650137: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:05:11.650178: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:05:11.650215: Inverter 0 scheduled discharge enable is False
2026-08-17 06:05:11.650348: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:05:11.650386: Inverter 0 discharge windows currently []
2026-08-17 06:05:11.650408: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:05:11.650426: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:05:11.650448: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:05:11.701797: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 79%, target 100%
2026-08-17 06:05:11.701968: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:05:00 charge start time 08-18 00:00:00)
2026-08-17 06:05:11.702004: No export window planned
2026-08-17 06:05:11.702150: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:05:11.702180: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:05:11.702362: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:05:11.702535: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:05:11.702575: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:05:11.702617: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:05:11.702704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702735: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702784: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702840: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702868: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702960: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.702980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.703001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.703020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.703039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:05:11.703081: Inverter 0 count register writes 0
2026-08-17 06:05:11.723596: Total inverter register writes now 859
2026-08-17 06:05:11.757067: Info: Completed run status Demand
2026-08-17 06:05:11.763961: Info: record_status Demand
2026-08-17 06:05:11.770771: Saved current settings to /config/predbat_config.json
2026-08-17 06:05:11.771200: Compare, best tariff: current metric 104.68p
2026-08-17 06:05:48.893420: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:05:48.893673: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:05:48.893703: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:05:48.893898: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:05:48.893933: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:05:48.893951: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:05:48.893965: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:07:49.109002: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:07:49.109270: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:07:49.109341: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:07:49.109498: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:07:49.109562: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:07:49.109608: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:07:49.109635: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:09:49.329158: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:09:49.329441: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:09:49.329477: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:09:49.329618: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:09:49.329690: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:09:49.329712: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:09:49.329730: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:10:00.423445: --------------- PredBat - update at 2026-08-17 06:10:00+01:00 with clock skew 0 minutes, minutes now 370
2026-08-17 06:10:00.424236: Saved current settings to /config/predbat_config.json
2026-08-17 06:10:00.424393: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 06:10:00.424540: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:10:00.424672: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:10:00.444713: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:10:00.444850: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:10:00.445073: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:10:00.445606: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:10:00.445726: Predbat mode is set to Control charge & discharge
2026-08-17 06:10:00.633056: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:10:00.633200: Using load_power data to fill gaps in load_today data
2026-08-17 06:10:01.481988: Processing 721 30-minute periods for power integration
2026-08-17 06:10:01.676217: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:10:01.676706: Car charging hold False, threshold 6.0kWh
2026-08-17 06:10:01.676772: Current data so far today: load 3.7kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:10:01.693404: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:10:01.693499: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:10:01.694288: Standing charge is set to 46.63p
2026-08-17 06:10:01.798754: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.799036: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.799229: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.799441: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.799618: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.799791: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.799984: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.800162: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.800329: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.800499: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.800688: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.800909: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.801200: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.801380: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:10:01.801611: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:10:01.801673: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:10:01.806927: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:10:01.807308: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:10:01.849884: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:10:01.850025: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:10:01.851223: High export rate found rates in range 99p to -99p
2026-08-17 06:10:01.880624: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:10:01.880764: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:10:01.880828: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:10:01.895464: Battery level now 12.64kWh, -1hr ago 12.63kWh, at midnight 10.49kWh, battery value change in the last hour 0.05p, change today 14.79p, rate_forward 6.87p
2026-08-17 06:10:01.895838: Last hour: net energy 0.35kWh, import 0.35kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 5.12p, import 5.12p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:10:01.963193: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:10:01.963346: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:10:02.043918: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:10:02.069016: Today's load divergence 96.88%, in-day adjustment 75.74%, damping 0.95x, yesterday 68.37% today 97.04% blend 74.31%
2026-08-17 06:10:02.069116: Today's predicted so far 4.18kWh with 0.0kWh car/iBoost excluded, 3.33kWh import ignored, and 4.18kWh forecast extra.
2026-08-17 06:10:02.069149: Today's actual load so far 3.7kWh with 0.0kWh car/iBoost excluded, and 3.33kWh import ignored.
2026-08-17 06:10:02.107865: Inverter 0: Type SK Sunsynk
2026-08-17 06:10:02.107957: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:10:02.108161: Reserve min: 7%, battery_min: 7%
2026-08-17 06:10:02.108231: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:10:02.108500: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 360W, current battery voltage 51.2V, grid power -55W, load power 424W, PV Power 0W
2026-08-17 06:10:02.108662: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:10:02.108750: Inverter 0 scheduled charge enable is True
2026-08-17 06:10:02.108797: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:10:02.108886: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:10:02.109060: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:10:02.109097: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:10:02.109135: Inverter 0 scheduled discharge enable is False
2026-08-17 06:10:02.109266: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:10:02.109305: Inverter 0 discharge windows currently []
2026-08-17 06:10:02.109329: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:10:02.109348: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:10:02.109365: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:10:02.170880: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:10:02.171009: Plan was last updated on 2026-08-17 06:05:00+01:00 and is now 5.0 minutes old
2026-08-17 06:10:02.171227: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:10:02.171297: Best export window [ ]
2026-08-17 06:10:02.172156: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:10:02.175317: Load divergence over 8.0 hours mean 735.9W, min 292.2W, max 1707.6W, std dev 415.26W, divergence 28.21%
2026-08-17 06:10:02.193951: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:10:02.194083: LoadML is_calculating False
2026-08-17 06:10:02.194152: Creating pool of 12 processes to match your CPU count
2026-08-17 06:10:02.334061: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 557.61p, metric_keep 279.63kWh, min_soc 1.12kWh @ 08-18 05:45:00, load 28.6kWh, PV 0.0kWh
2026-08-17 06:10:02.458683: Battery has 23.58 hours left - now at 12.64kWh
2026-08-17 06:10:02.507734: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 579.83p, metric_keep 279.39kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.79kWh, PV 0.0kWh
2026-08-17 06:10:02.592612: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 287.13p, metric_keep 3.6kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.79kWh, PV 0.0kWh
2026-08-17 06:10:02.686938: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 282.17p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.6kWh, PV 0.0kWh
2026-08-17 06:10:02.687054: Saving plan best values to HA entities
2026-08-17 06:10:02.857341: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:10:02.863762: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 06:10:02.869486: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.93kWh, house 0.0kWh, export 0.0kWh, metric 282.17p, metric10 287.13p
2026-08-17 06:10:02.950310: Marginal costs baseline metric (no standing charge): 235.5311
2026-08-17 06:10:03.249933: Marginal energy costs matrix computed: min=9.23 max=27.35
2026-08-17 06:10:03.336182: Rate array import [{'start': 370, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 370, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:10:03.337078: - Your estimated bill for today is £1.23 and tomorrow is £1.79
2026-08-17 06:10:03.337139: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:10:03.337163: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:10:03.337183: - For the next 48 hours there will be no solar generation.
2026-08-17 06:10:03.337206: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:10:03.337225: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:10:03.337246:
2026-08-17 06:10:03.417622: Plan calculation took 1.25 seconds
2026-08-17 06:10:03.421083: No high rate period found
2026-08-17 06:10:03.474799: Import threshold used for optimisation was 8.0p
2026-08-17 06:10:03.550947: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:10:03.556810: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 79%, target 100%
2026-08-17 06:10:03.556920: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:10:00 charge start time 08-18 00:00:00)
2026-08-17 06:10:03.556993: No export window planned
2026-08-17 06:10:03.557179: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:10:03.557225: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:10:03.557443: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:10:03.557644: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:10:03.557701: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:10:03.557760: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:10:03.557853: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.557889: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.557913: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.557938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.557971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.557999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558019: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:10:03.558227: Inverter 0 count register writes 0
2026-08-17 06:10:03.574778: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 06:10:03.581078: Total inverter register writes now 859
2026-08-17 06:10:03.618938: Info: Completed run status Demand
2026-08-17 06:10:03.628080: Info: record_status Demand
2026-08-17 06:10:03.635428: Saved current settings to /config/predbat_config.json
2026-08-17 06:10:03.635756: Compare, best tariff: current metric 104.68p
2026-08-17 06:10:33.752760: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:10:33.753190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:10:33.753305: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:10:33.753529: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:10:33.753592: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:10:33.753616: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:10:33.753650: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:12:33.977678: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:12:33.978055: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:12:33.978114: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:12:33.978282: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:12:33.978323: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:12:33.978344: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:12:33.978362: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:14:34.193158: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:14:34.193436: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:14:34.193473: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:14:34.193662: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:14:34.193702: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:14:34.193724: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:14:34.193742: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:15:00.305423: --------------- PredBat - update at 2026-08-17 06:15:00+01:00 with clock skew 0 minutes, minutes now 375
2026-08-17 06:15:00.306202: Saved current settings to /config/predbat_config.json
2026-08-17 06:15:00.306331: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 06:15:00.306415: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:15:00.306534: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:15:00.326990: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:15:00.327137: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:15:00.327310: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:15:00.327826: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:15:00.327950: Predbat mode is set to Control charge & discharge
2026-08-17 06:15:00.541370: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:15:00.541529: Using load_power data to fill gaps in load_today data
2026-08-17 06:15:01.298184: Processing 721 30-minute periods for power integration
2026-08-17 06:15:01.458633: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:15:01.458764: Car charging hold False, threshold 6.0kWh
2026-08-17 06:15:01.458832: Current data so far today: load 3.7kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:15:01.472671: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:15:01.472762: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:15:01.473493: Standing charge is set to 46.63p
2026-08-17 06:15:01.555044: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.555289: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.555488: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.555673: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.555878: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.556081: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.556295: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.556454: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.556611: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.556750: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.556925: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.557169: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.557347: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.557502: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:15:01.557719: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:15:01.557770: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:15:01.562052: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:15:01.562494: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:15:01.597127: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:15:01.597242: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:15:01.598288: High export rate found rates in range 99p to -99p
2026-08-17 06:15:01.622265: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:15:01.622390: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:15:01.622434: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:15:01.635570: Battery level now 12.64kWh, -1hr ago 12.96kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 14.79p, rate_forward 6.87p
2026-08-17 06:15:01.635896: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 3.92p, import 3.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:15:01.688603: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:15:01.688721: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:15:01.751007: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:15:01.771001: Today's load divergence 96.85%, in-day adjustment 75.83%, damping 0.95x, yesterday 68.37% today 97.01% blend 73.96%
2026-08-17 06:15:01.771066: Today's predicted so far 4.18kWh with 0.0kWh car/iBoost excluded, 3.31kWh import ignored, and 4.18kWh forecast extra.
2026-08-17 06:15:01.771103: Today's actual load so far 3.69kWh with 0.0kWh car/iBoost excluded, and 3.31kWh import ignored.
2026-08-17 06:15:01.806900: Inverter 0: Type SK Sunsynk
2026-08-17 06:15:01.806986: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:15:01.807166: Reserve min: 7%, battery_min: 7%
2026-08-17 06:15:01.807235: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:15:01.807464: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 358W, current battery voltage 51.2V, grid power -55W, load power 420W, PV Power 0W
2026-08-17 06:15:01.807600: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:15:01.807670: Inverter 0 scheduled charge enable is True
2026-08-17 06:15:01.807702: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:15:01.807772: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:15:01.807872: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:15:01.807897: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:15:01.807925: Inverter 0 scheduled discharge enable is False
2026-08-17 06:15:01.808019: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:15:01.808044: Inverter 0 discharge windows currently []
2026-08-17 06:15:01.808062: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:15:01.808078: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:15:01.808107: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:15:01.864262: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:15:01.864361: Plan was last updated on 2026-08-17 06:05:00+01:00 and is now 10.0 minutes old
2026-08-17 06:15:01.864542: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:15:01.864571: Best export window [ ]
2026-08-17 06:15:01.865271: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:15:01.867808: Load divergence over 8.0 hours mean 737.69W, min 259.8W, max 1788.0W, std dev 427.51W, divergence 28.98%
2026-08-17 06:15:01.882978: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:15:01.883079: LoadML is_calculating False
2026-08-17 06:15:01.883169: Creating pool of 12 processes to match your CPU count
2026-08-17 06:15:01.988591: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 557.72p, metric_keep 279.05kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.68kWh, PV 0.0kWh
2026-08-17 06:15:02.120722: Battery has 23.58 hours left - now at 12.64kWh
2026-08-17 06:15:02.164364: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 582.03p, metric_keep 280.79kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.86kWh, PV 0.0kWh
2026-08-17 06:15:02.236522: predict best10 end_record 08-18 23:40:00, final soc 1.96kWh, metric 290.41p, metric_keep 3.73kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 29.86kWh, PV 0.0kWh
2026-08-17 06:15:02.314004: predict best end_record 08-18 23:40:00, final soc 2.69kWh, metric 285.96p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 28.68kWh, PV 0.0kWh
2026-08-17 06:15:02.314107: Saving plan best values to HA entities
2026-08-17 06:15:02.467435: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:15:02.472709: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 06:15:02.477870: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.41kWh, house 0.0kWh, export 0.0kWh, metric 285.96p, metric10 290.41p
2026-08-17 06:15:02.545559: Marginal costs baseline metric (no standing charge): 239.3291
2026-08-17 06:15:02.781667: Marginal energy costs matrix computed: min=9.23 max=27.27
2026-08-17 06:15:02.853123: Rate array import [{'start': 375, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 375, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:15:02.853798: - Your estimated bill for today is £1.23 and tomorrow is £1.79
2026-08-17 06:15:02.853839: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:15:02.853858: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:15:02.853872: - For the next 48 hours there will be no solar generation.
2026-08-17 06:15:02.853886: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:15:02.853900: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:15:02.853914:
2026-08-17 06:15:02.919907: Plan calculation took 1.06 seconds
2026-08-17 06:15:02.922717: No high rate period found
2026-08-17 06:15:02.971912: Import threshold used for optimisation was 8.0p
2026-08-17 06:15:03.046327: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:15:03.052699: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 79%, target 100%
2026-08-17 06:15:03.052846: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:15:00 charge start time 08-18 00:00:00)
2026-08-17 06:15:03.052887: No export window planned
2026-08-17 06:15:03.053124: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:15:03.053190: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:15:03.053445: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:15:03.053656: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:15:03.053723: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:15:03.053791: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:15:03.053896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.053941: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.053970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.053996: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054069: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054246: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:03.054341: Inverter 0 count register writes 0
2026-08-17 06:15:03.071214: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 06:15:03.071398: Recompute is saving previous plan...
2026-08-17 06:15:03.072369: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 06:15:03.072445: Best export window [ ]
2026-08-17 06:15:03.073288: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:15:03.076350: Load divergence over 8.0 hours mean 737.69W, min 259.8W, max 1788.0W, std dev 427.51W, divergence 28.98%
2026-08-17 06:15:03.093639: Calculating data from yesterday for savings calculation
2026-08-17 06:15:03.105384: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 06:15:03.153046: predict yesterday end_record 08-18 00:00:00, final soc 10.01kWh, metric 147.61p, metric_keep 0kWh, min_soc 7.69kWh @ 08-17 23:25:00, load 11.38kWh, PV 0.0kWh
2026-08-17 06:15:03.169265: predict yesterday10 end_record 08-18 00:00:00, final soc 9.63kWh, metric 144.28p, metric_keep 0kWh, min_soc 7.69kWh @ 08-17 23:25:00, load 11.38kWh, PV 0.0kWh
2026-08-17 06:15:03.191396: predict yesterday end_record 08-18 00:00:00, final soc 10.01kWh, metric 147.61p, metric_keep 0kWh, min_soc 7.69kWh @ 08-17 23:25:00, load 11.38kWh, PV 0.0kWh
2026-08-17 06:15:03.218349: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.62kWh, export 0.0kWh, battery_cycle 16.69kWh, start_soc 9.96kWh, final_soc 10.01kWh and battery_value 68.82kWh
2026-08-17 06:15:03.291656: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 300.66p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.38kWh, PV 0.0kWh
2026-08-17 06:15:03.291813: Yesterday: No Battery/PV system cost predicted was £3.01 (adjusted £3.01) vs £3.17 (adjusted £2.5), saving £-0.17 (adjusted £0.5) with import 11.38kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 06:15:03.302903: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:15:03.303026: LoadML is_calculating False
2026-08-17 06:15:03.303126: Creating pool of 12 processes to match your CPU count
2026-08-17 06:15:03.402135: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 06:15:03.403106: Optimise levels pass started at 2026-08-17 06:15:03
2026-08-17 06:15:03.403181: Optimise all windows, total charge 25 export 1
2026-08-17 06:15:03.786531: >> Region optimisation pass width 960 gives best_metric 280.77p, best_cost 375.8p, best_cycle 45.98kWh, best_import 34.46kWh
2026-08-17 06:15:03.933216: >> Region optimisation pass width 480 gives best_metric 280.77p, best_cost 375.8p, best_cycle 45.98kWh, best_import 34.46kWh
2026-08-17 06:15:04.665244: >> Region optimisation pass width 240 gives best_metric 265.72p, best_cost 275.87p, best_cycle 41.59kWh, best_import 21.97kWh
2026-08-17 06:15:05.448902: >> Region optimisation pass width 120 gives best_metric 263.92p, best_cost 275.3p, best_cycle 40.59kWh, best_import 21.9kWh
2026-08-17 06:15:05.449443: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 06:15:05.449893: Optimise levels pass ended at 2026-08-17 06:15:05, duration 2.0 seconds tried 77 combinations
2026-08-17 06:15:05.449968: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 263.92p, best_keep 0.1kWh, best_cycle 40.59kWh, best_carbon 0kg, best_import 21.9kWh
2026-08-17 06:15:05.466289: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 06:15:08.104625: Tweak plan optimisation started metric 220.5p, cost 232.91p
2026-08-17 06:15:08.486563: Tweak optimisation finished metric 220.5p, cost 232.91p, metric_keep 0kWh, cycle 34.54kWh, carbon 0kg, import 16.6kWh, changed 8 window(s)
2026-08-17 06:15:08.508830: Swap charge optimisation started metric 220.5p, cost 232.91p, min_improvement_swap 0.1p
2026-08-17 06:15:09.443895: Swap charge optimisation finished metric 220.5p, cost 232.91p
2026-08-17 06:15:09.552200: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:15:09.552679: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:15:09.553084: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:15:09.553391: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:15:09.592681: Previous plan best metric is 219.43 (cost 231.01) and new plan best metric is 220.5 (cost 232.91)
2026-08-17 06:15:09.592990: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 06:15:09.593244: Plan valid is now true after recompute was False
2026-08-17 06:15:09.624830: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 556.07p, metric_keep 278.46kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.47kWh, PV 0.0kWh
2026-08-17 06:15:09.747564: Battery has 23.58 hours left - now at 12.64kWh
2026-08-17 06:15:09.795436: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 580.3p, metric_keep 280.2kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.65kWh, PV 0.0kWh
2026-08-17 06:15:09.875005: predict best10 end_record 08-18 23:30:00, final soc 1.31kWh, metric 283.13p, metric_keep 3.6kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 29.65kWh, PV 0.0kWh
2026-08-17 06:15:09.955587: predict best end_record 08-18 23:30:00, final soc 1.91kWh, metric 277.65p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 28.47kWh, PV 0.0kWh
2026-08-17 06:15:09.955686: Saving plan best values to HA entities
2026-08-17 06:15:10.138628: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:15:10.148274: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 06:15:10.153869: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.37kWh, house 0.0kWh, export 0.0kWh, metric 277.65p, metric10 283.13p
2026-08-17 06:15:10.219312: Marginal costs baseline metric (no standing charge): 231.0112
2026-08-17 06:15:10.463663: Marginal energy costs matrix computed: min=9.23 max=27.27
2026-08-17 06:15:10.577710: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 06:15:10.665604: Rate array import [{'start': 375, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 375, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:15:10.666484: - Your estimated bill for today is £1.23 and tomorrow is £1.79
2026-08-17 06:15:10.666539: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:15:10.666564: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:15:10.666582: - For the next 48 hours there will be no solar generation.
2026-08-17 06:15:10.666600: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:15:10.666634: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:15:10.666676:
2026-08-17 06:15:10.756233: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 06:15:10.763651: Plan calculation took 7.69 seconds
2026-08-17 06:15:10.763988: Inverter 0: Type SK Sunsynk
2026-08-17 06:15:10.764043: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:15:10.764320: Reserve min: 7%, battery_min: 7%
2026-08-17 06:15:10.764407: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:15:10.764779: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 359W, current battery voltage 51.2V, grid power -55W, load power 422W, PV Power 0W
2026-08-17 06:15:10.765119: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:15:10.765245: Inverter 0 scheduled charge enable is True
2026-08-17 06:15:10.765292: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:15:10.765453: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:15:10.765684: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:15:10.765770: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:15:10.765837: Inverter 0 scheduled discharge enable is False
2026-08-17 06:15:10.766033: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:15:10.766083: Inverter 0 discharge windows currently []
2026-08-17 06:15:10.766149: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:15:10.767131: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:15:10.767463: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:15:10.912144: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 79%, target 100%
2026-08-17 06:15:10.912312: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:15:00 charge start time 08-18 00:00:00)
2026-08-17 06:15:10.912348: No export window planned
2026-08-17 06:15:10.912578: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:15:10.912645: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:15:10.912844: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:15:10.913117: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:15:10.913183: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:15:10.913244: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:15:10.913344: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913384: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913414: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913469: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913551: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913582: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913756: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913785: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:15:10.913837: Inverter 0 count register writes 0
2026-08-17 06:15:10.954605: Total inverter register writes now 859
2026-08-17 06:15:10.993128: Info: Completed run status Demand
2026-08-17 06:15:11.001485: Info: record_status Demand
2026-08-17 06:15:11.009667: Saved current settings to /config/predbat_config.json
2026-08-17 06:15:11.010003: Compare, best tariff: current metric 104.68p
2026-08-17 06:15:49.131277: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:15:49.131544: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:15:49.131581: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:15:49.131749: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:15:49.131776: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:15:49.131795: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:15:49.131818: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:16:44.262542: Info: HAHistory: Pruning history data started.
2026-08-17 06:16:44.266051: Info: HAHistory: Pruning history data completed.
2026-08-17 06:17:49.345742: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:17:49.346022: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:17:49.346068: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:17:49.346278: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:17:49.346322: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:17:49.346344: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:17:49.346361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:20:00.574116: --------------- PredBat - update at 2026-08-17 06:20:00+01:00 with clock skew 0 minutes, minutes now 380
2026-08-17 06:20:00.574985: Saved current settings to /config/predbat_config.json
2026-08-17 06:20:00.575192: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 06:20:00.575366: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:20:00.575462: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:20:00.594049: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:20:00.594194: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:20:00.594443: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:20:00.595114: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:20:00.595261: Predbat mode is set to Control charge & discharge
2026-08-17 06:20:00.799479: Found 21602 load_today datapoints going back 27 days
2026-08-17 06:20:00.799644: Using load_power data to fill gaps in load_today data
2026-08-17 06:20:01.641135: Processing 721 30-minute periods for power integration
2026-08-17 06:20:01.834864: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:20:01.835009: Car charging hold False, threshold 6.0kWh
2026-08-17 06:20:01.835057: Current data so far today: load 3.82kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:20:01.851613: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:20:01.851722: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:20:01.852500: Standing charge is set to 46.63p
2026-08-17 06:20:01.955724: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.955991: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.956289: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.956539: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.956761: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.957034: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.957296: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.957493: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.957657: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.957852: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.958016: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.958183: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.958372: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.958537: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:20:01.958767: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:20:01.958829: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:20:01.964154: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:20:01.964552: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:20:02.007410: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:20:02.007541: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:20:02.008746: High export rate found rates in range 99p to -99p
2026-08-17 06:20:02.038863: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:20:02.039002: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:20:02.039053: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:20:02.054070: Battery level now 12.64kWh, -1hr ago 12.96kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 14.79p, rate_forward 6.87p
2026-08-17 06:20:02.054480: Last hour: net energy 0.15kWh, import 0.15kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 3.52p, import 3.52p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:20:02.106472: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:20:02.106626: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:20:02.185265: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:20:02.210744: Today's load divergence 97.48%, in-day adjustment 76.09%, damping 0.95x, yesterday 68.37% today 97.61% blend 73.61%
2026-08-17 06:20:02.210848: Today's predicted so far 4.19kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.19kWh forecast extra.
2026-08-17 06:20:02.210881: Today's actual load so far 3.8kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 06:20:02.251751: Inverter 0: Type SK Sunsynk
2026-08-17 06:20:02.251846: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:20:02.252022: Reserve min: 7%, battery_min: 7%
2026-08-17 06:20:02.252108: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:20:02.252390: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 353W, current battery voltage 51.2V, grid power -55W, load power 416W, PV Power 0W
2026-08-17 06:20:02.252555: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:20:02.252646: Inverter 0 scheduled charge enable is True
2026-08-17 06:20:02.252691: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:20:02.252784: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:20:02.252902: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:20:02.252938: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:20:02.253017: Inverter 0 scheduled discharge enable is False
2026-08-17 06:20:02.253171: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:20:02.253226: Inverter 0 discharge windows currently []
2026-08-17 06:20:02.253252: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:20:02.253277: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:20:02.253294: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:20:02.324093: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:20:02.324223: Plan was last updated on 2026-08-17 06:15:00+01:00 and is now 5.0 minutes old
2026-08-17 06:20:02.324440: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:20:02.324482: Best export window [ ]
2026-08-17 06:20:02.325424: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:20:02.329543: Load divergence over 8.0 hours mean 739.11W, min 260.4W, max 1896.0W, std dev 430.71W, divergence 29.14%
2026-08-17 06:20:02.351634: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:20:02.351773: LoadML is_calculating False
2026-08-17 06:20:02.351839: Creating pool of 12 processes to match your CPU count
2026-08-17 06:20:02.480408: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 556.42p, metric_keep 278.64kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.68kWh, PV 0.0kWh
2026-08-17 06:20:02.636581: Battery has 23.58 hours left - now at 12.64kWh
2026-08-17 06:20:02.693436: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 580.74p, metric_keep 280.39kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.87kWh, PV 0.0kWh
2026-08-17 06:20:02.778332: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 286.71p, metric_keep 3.65kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.87kWh, PV 0.0kWh
2026-08-17 06:20:02.860377: predict best end_record 08-18 23:35:00, final soc 2.31kWh, metric 281.74p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.68kWh, PV 0.0kWh
2026-08-17 06:20:02.860469: Saving plan best values to HA entities
2026-08-17 06:20:03.025383: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:20:03.031294: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:20:03.037323: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.88kWh, house 0.0kWh, export 0.0kWh, metric 281.74p, metric10 286.71p
2026-08-17 06:20:03.113314: Marginal costs baseline metric (no standing charge): 235.1085
2026-08-17 06:20:03.419561: Marginal energy costs matrix computed: min=9.23 max=27.26
2026-08-17 06:20:03.523661: Rate array import [{'start': 380, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 380, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:20:03.524501: - Your estimated bill for today is £1.24 and tomorrow is £1.79
2026-08-17 06:20:03.524549: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:20:03.524572: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:20:03.524591: - For the next 48 hours there will be no solar generation.
2026-08-17 06:20:03.524608: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:20:03.524629: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:20:03.524647:
2026-08-17 06:20:03.594664: Plan calculation took 1.27 seconds
2026-08-17 06:20:03.598223: No high rate period found
2026-08-17 06:20:03.652220: Import threshold used for optimisation was 8.0p
2026-08-17 06:20:03.730014: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:20:03.735731: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 79%, target 100%
2026-08-17 06:20:03.735858: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:20:00 charge start time 08-18 00:00:00)
2026-08-17 06:20:03.735899: No export window planned
2026-08-17 06:20:03.736087: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:20:03.736160: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:20:03.736432: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:20:03.736644: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:20:03.736712: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:20:03.736779: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:20:03.736881: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.736995: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737041: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737068: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737098: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:20:03.737418: Inverter 0 count register writes 0
2026-08-17 06:20:03.755648: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 06:20:03.761909: Total inverter register writes now 859
2026-08-17 06:20:03.822884: Info: Completed run status Demand
2026-08-17 06:20:03.829992: Info: record_status Demand
2026-08-17 06:20:03.837452: Saved current settings to /config/predbat_config.json
2026-08-17 06:20:03.837797: Compare, best tariff: current metric 104.68p
2026-08-17 06:20:33.956023: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:20:33.956329: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:20:33.956385: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:20:33.956552: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:20:33.956620: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:20:33.956642: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:20:33.956660: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:22:00.471508: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 06:22:01.406679: Processing 1297 30-minute periods for power integration
2026-08-17 06:22:01.487723: ML Component: Car charging hold False, car energy reported load False
2026-08-17 06:22:01.572276: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:22:01.653967: ML Temperature data points: 48581
2026-08-17 06:22:01.869578: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 06:22:01.914445: ML Component: Data fetch completed, load data age 58.0 days, 16900 data points
2026-08-17 06:22:01.914584: ML Component: No training needed, model age is 0.49 hours
2026-08-17 06:22:01.914668: ML Component: Generating predictions load data age 58.0 days, 16900 data points
2026-08-17 06:22:02.034462: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.028 max_dow {0: 0.08534444444278877, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 06:22:02.650367: ML Component: Generated 576 predictions (total 29.19 kWh over 48h)
2026-08-17 06:22:02.684042: ML Component: Prediction cycle completed
2026-08-17 06:22:02.787659: ML Component: Saved 16900 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 06:22:34.185022: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:22:34.185378: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:22:34.185426: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:22:34.185568: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:22:34.185607: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:22:34.185628: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:22:34.185647: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:24:48.433101: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:24:48.433364: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:24:48.433402: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:24:48.433516: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:24:48.433549: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:24:48.433567: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:24:48.433582: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:25:00.527620: --------------- PredBat - update at 2026-08-17 06:25:00+01:00 with clock skew 0 minutes, minutes now 385
2026-08-17 06:25:00.528335: Saved current settings to /config/predbat_config.json
2026-08-17 06:25:00.528479: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 06:25:00.528638: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:25:00.528734: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:25:00.556295: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:25:00.556454: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:25:00.556625: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:25:00.557282: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:25:00.557445: Predbat mode is set to Control charge & discharge
2026-08-17 06:25:00.722097: Found 21602 load_today datapoints going back 27 days
2026-08-17 06:25:00.722282: Using load_power data to fill gaps in load_today data
2026-08-17 06:25:01.455009: Processing 721 30-minute periods for power integration
2026-08-17 06:25:01.613170: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:25:01.613360: Car charging hold False, threshold 6.0kWh
2026-08-17 06:25:01.613403: Current data so far today: load 3.85kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:25:01.626873: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:25:01.626958: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:25:01.627572: Standing charge is set to 46.63p
2026-08-17 06:25:01.721190: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.721437: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.721600: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.721755: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.721899: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.722043: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.722189: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.722348: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.722488: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.722628: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.722765: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.722905: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.723039: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.723173: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:25:01.723374: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:25:01.723425: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:25:01.727769: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:25:01.728073: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:25:01.767652: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:25:01.767794: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:25:01.769052: High export rate found rates in range 99p to -99p
2026-08-17 06:25:01.797560: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:25:01.797695: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:25:01.797739: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:25:01.810282: Battery level now 12.64kWh, -1hr ago 12.96kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 14.79p, rate_forward 6.87p
2026-08-17 06:25:01.810640: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 3.12p, import 3.12p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:25:01.863968: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:25:01.864105: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:25:01.945193: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:25:01.969662: Today's load divergence 97.59%, in-day adjustment 76.21%, damping 0.95x, yesterday 68.37% today 97.71% blend 73.26%
2026-08-17 06:25:01.969755: Today's predicted so far 4.2kWh with 0.0kWh car/iBoost excluded, 3.43kWh import ignored, and 4.2kWh forecast extra.
2026-08-17 06:25:01.969787: Today's actual load so far 3.83kWh with 0.0kWh car/iBoost excluded, and 3.43kWh import ignored.
2026-08-17 06:25:02.006266: Inverter 0: Type SK Sunsynk
2026-08-17 06:25:02.006484: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:25:02.006715: Reserve min: 7%, battery_min: 7%
2026-08-17 06:25:02.006794: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:25:02.007064: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 353W, current battery voltage 51.2V, grid power -55W, load power 418W, PV Power 0W
2026-08-17 06:25:02.007225: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:25:02.007331: Inverter 0 scheduled charge enable is True
2026-08-17 06:25:02.007381: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:25:02.007472: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:25:02.007592: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:25:02.007628: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:25:02.007665: Inverter 0 scheduled discharge enable is False
2026-08-17 06:25:02.007818: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:25:02.007858: Inverter 0 discharge windows currently []
2026-08-17 06:25:02.007881: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:25:02.007899: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:25:02.007917: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:25:02.066006: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:25:02.066117: Plan was last updated on 2026-08-17 06:15:00+01:00 and is now 10.0 minutes old
2026-08-17 06:25:02.066359: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:25:02.066403: Best export window [ ]
2026-08-17 06:25:02.067230: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:25:02.070507: Load divergence over 8.0 hours mean 740.3W, min 260.4W, max 2007.0W, std dev 425.79W, divergence 28.76%
2026-08-17 06:25:02.086899: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:25:02.086997: LoadML is_calculating False
2026-08-17 06:25:02.087055: Creating pool of 12 processes to match your CPU count
2026-08-17 06:25:02.211937: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 556.89p, metric_keep 278.42kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.8kWh, PV 0.0kWh
2026-08-17 06:25:02.361115: Battery has 23.5 hours left - now at 12.64kWh
2026-08-17 06:25:02.404443: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 581.35p, metric_keep 280.23kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.99kWh, PV 0.0kWh
2026-08-17 06:25:02.476231: predict best10 end_record 08-18 23:40:00, final soc 1.96kWh, metric 290.24p, metric_keep 3.67kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.99kWh, PV 0.0kWh
2026-08-17 06:25:02.547576: predict best end_record 08-18 23:40:00, final soc 2.69kWh, metric 285.77p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.8kWh, PV 0.0kWh
2026-08-17 06:25:02.547656: Saving plan best values to HA entities
2026-08-17 06:25:02.699854: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:25:02.705053: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:25:02.710219: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.38kWh, house 0kWh, export 0.0kWh, metric 285.77p, metric10 290.24p
2026-08-17 06:25:02.782927: Marginal costs baseline metric (no standing charge): 239.1355
2026-08-17 06:25:03.019044: Marginal energy costs matrix computed: min=9.23 max=27.24
2026-08-17 06:25:03.093362: Rate array import [{'start': 385, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 385, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:25:03.094063: - Your estimated bill for today is £1.24 and tomorrow is £1.79
2026-08-17 06:25:03.094106: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:25:03.094125: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:25:03.094140: - For the next 48 hours there will be no solar generation.
2026-08-17 06:25:03.094154: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:25:03.094168: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:25:03.094182:
2026-08-17 06:25:03.159550: Plan calculation took 1.09 seconds
2026-08-17 06:25:03.163122: No high rate period found
2026-08-17 06:25:03.213806: Import threshold used for optimisation was 8.0p
2026-08-17 06:25:03.263218: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:25:03.268353: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 79%, target 100%
2026-08-17 06:25:03.268455: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:25:00 charge start time 08-18 00:00:00)
2026-08-17 06:25:03.268484: No export window planned
2026-08-17 06:25:03.268668: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:25:03.268725: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:25:03.269004: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:25:03.269211: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:25:03.269264: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:25:03.269334: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:25:03.269426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269517: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269549: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269699: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:03.269800: Inverter 0 count register writes 0
2026-08-17 06:25:03.285427: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 06:25:03.285579: Recompute is saving previous plan...
2026-08-17 06:25:03.286478: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 06:25:03.286545: Best export window [ ]
2026-08-17 06:25:03.287276: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:25:03.289919: Load divergence over 8.0 hours mean 740.3W, min 260.4W, max 2007.0W, std dev 425.79W, divergence 28.76%
2026-08-17 06:25:03.304203: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:25:03.304286: LoadML is_calculating False
2026-08-17 06:25:03.304359: Creating pool of 12 processes to match your CPU count
2026-08-17 06:25:03.387581: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 06:25:03.388409: Optimise levels pass started at 2026-08-17 06:25:03
2026-08-17 06:25:03.388461: Optimise all windows, total charge 25 export 1
2026-08-17 06:25:03.748009: >> Region optimisation pass width 960 gives best_metric 281.12p, best_cost 375.66p, best_cycle 46.02kWh, best_import 34.45kWh
2026-08-17 06:25:03.867668: >> Region optimisation pass width 480 gives best_metric 281.12p, best_cost 375.66p, best_cycle 46.02kWh, best_import 34.45kWh
2026-08-17 06:25:04.117367: >> Region optimisation pass width 240 gives best_metric 281.12p, best_cost 375.66p, best_cycle 46.02kWh, best_import 34.45kWh
2026-08-17 06:25:04.688717: >> Region optimisation pass width 120 gives best_metric 273.15p, best_cost 323.54p, best_cycle 45.78kWh, best_import 27.93kWh
2026-08-17 06:25:04.688923: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 06:25:04.689044: Optimise levels pass ended at 2026-08-17 06:25:04, duration 1.3 seconds tried 78 combinations
2026-08-17 06:25:04.689158: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 273.15p, best_keep 0.17kWh, best_cycle 45.78kWh, best_carbon 0kg, best_import 27.93kWh
2026-08-17 06:25:04.705634: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 06:25:07.509010: Tweak plan optimisation started metric 219.25p, cost 230.86p
2026-08-17 06:25:07.882480: Tweak optimisation finished metric 219.25p, cost 230.86p, metric_keep 0.12kWh, cycle 32.61kWh, carbon 0kg, import 16.35kWh, changed 8 window(s)
2026-08-17 06:25:07.903459: Swap charge optimisation started metric 219.25p, cost 230.86p, min_improvement_swap 0.1p
2026-08-17 06:25:08.624973: Swap charge optimisation finished metric 219.25p, cost 230.86p
2026-08-17 06:25:08.731330: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:25:08.731814: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:25:08.732084: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:25:08.732408: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:25:08.768018: Previous plan best metric is 219.25 (cost 230.86) and new plan best metric is 219.25 (cost 230.86)
2026-08-17 06:25:08.768279: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 06:25:08.768485: Plan valid is now true after recompute was False
2026-08-17 06:25:08.794183: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 555.27p, metric_keep 277.84kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.6kWh, PV 0.0kWh
2026-08-17 06:25:08.911517: Battery has 23.5 hours left - now at 12.64kWh
2026-08-17 06:25:08.955858: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 579.66p, metric_keep 279.64kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.78kWh, PV 0.0kWh
2026-08-17 06:25:09.032926: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 283.0p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.78kWh, PV 0.0kWh
2026-08-17 06:25:09.105233: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 277.49p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.6kWh, PV 0.0kWh
2026-08-17 06:25:09.105342: Saving plan best values to HA entities
2026-08-17 06:25:09.242962: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:25:09.248394: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:25:09.253551: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.35kWh, house 0kWh, export 0.0kWh, metric 277.49p, metric10 283.0p
2026-08-17 06:25:09.316883: Marginal costs baseline metric (no standing charge): 230.8561
2026-08-17 06:25:09.551418: Marginal energy costs matrix computed: min=9.23 max=27.24
2026-08-17 06:25:09.614117: Rate array import [{'start': 385, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 385, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:25:09.614758: - Your estimated bill for today is £1.24 and tomorrow is £1.79
2026-08-17 06:25:09.614798: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:25:09.614817: - The battery is currently at 79% and is in eco mode for the next 17 hours.
2026-08-17 06:25:09.614833: - For the next 48 hours there will be no solar generation.
2026-08-17 06:25:09.614847: - You will reach a minimum of 12% battery in 41 hours.
2026-08-17 06:25:09.614861: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:25:09.614875:
2026-08-17 06:25:09.678800: Plan calculation took 6.39 seconds
2026-08-17 06:25:09.679108: Inverter 0: Type SK Sunsynk
2026-08-17 06:25:09.679151: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:25:09.679384: Reserve min: 7%, battery_min: 7%
2026-08-17 06:25:09.679453: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:25:09.679758: Inverter 0 SoC: 12.54kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 354W, current battery voltage 51.2V, grid power -54W, load power 416W, PV Power 0W
2026-08-17 06:25:09.679961: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:25:09.680052: Inverter 0 scheduled charge enable is True
2026-08-17 06:25:09.680096: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:25:09.680177: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:25:09.680278: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:25:09.680311: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:25:09.680356: Inverter 0 scheduled discharge enable is False
2026-08-17 06:25:09.680467: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:25:09.680499: Inverter 0 discharge windows currently []
2026-08-17 06:25:09.680518: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:25:09.680537: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:25:09.680551: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:25:09.731599: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 78%, target 100%
2026-08-17 06:25:09.731721: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:25:00 charge start time 08-18 00:00:00)
2026-08-17 06:25:09.731749: No export window planned
2026-08-17 06:25:09.731864: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:25:09.731927: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:25:09.732104: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:25:09.732254: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:25:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:25:09.732306: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:25:09.732385: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:25:09.732468: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732506: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732551: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732592: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732611: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:25:09.732805: Inverter 0 count register writes 0
2026-08-17 06:25:09.751066: Total inverter register writes now 859
2026-08-17 06:25:09.780668: Info: Completed run status Demand
2026-08-17 06:25:09.786477: Info: record_status Demand
2026-08-17 06:25:09.792369: Saved current settings to /config/predbat_config.json
2026-08-17 06:25:09.792701: Compare, best tariff: current metric 104.68p
2026-08-17 06:25:48.905913: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:25:48.906193: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:25:48.906229: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:25:48.906380: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:25:48.906423: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:25:48.906445: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:25:48.906463: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:27:49.123077: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:27:49.123354: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:27:49.123452: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:27:49.123635: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:27:49.123745: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:27:49.124102: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:27:49.124153: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:29:49.349512: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:29:49.349815: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:29:49.349859: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:29:49.349995: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:29:49.350034: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:29:49.350055: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:29:49.350073: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:30:00.444197: --------------- PredBat - update at 2026-08-17 06:30:00+01:00 with clock skew 0 minutes, minutes now 390
2026-08-17 06:30:00.444997: Saved current settings to /config/predbat_config.json
2026-08-17 06:30:00.445135: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 06:30:00.445225: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:30:00.445308: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:30:00.471132: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:30:00.471269: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:30:00.471459: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:30:00.472028: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:30:00.472155: Predbat mode is set to Control charge & discharge
2026-08-17 06:30:00.695608: Found 21602 load_today datapoints going back 27 days
2026-08-17 06:30:00.695783: Using load_power data to fill gaps in load_today data
2026-08-17 06:30:01.597386: Processing 721 30-minute periods for power integration
2026-08-17 06:30:01.786379: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:30:01.786536: Car charging hold False, threshold 6.0kWh
2026-08-17 06:30:01.786583: Current data so far today: load 3.95kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:30:01.803086: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:30:01.803195: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:30:01.803961: Standing charge is set to 46.63p
2026-08-17 06:30:01.914185: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.914472: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.914670: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.914862: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.915043: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.915222: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.915447: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.915624: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.915793: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.915960: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.916127: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.916301: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.916547: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.916845: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:30:01.917313: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:30:01.917466: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:30:01.923218: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:30:01.923814: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:30:01.967778: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:30:01.967914: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:30:01.969190: High export rate found rates in range 99p to -99p
2026-08-17 06:30:01.997801: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:30:01.997936: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:30:01.997987: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:30:02.015562: Battery level now 12.64kWh, -1hr ago 12.96kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 14.79p, rate_forward 6.87p
2026-08-17 06:30:02.015938: Last hour: net energy 0.09kWh, import 0.09kWh, export 0.0kWh, car 0kWh, load 0.48kWh, net cost 2.95p, import 2.95p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:30:02.069925: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:30:02.070057: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:30:02.150374: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:30:02.175166: Today's load divergence 97.62%, in-day adjustment 76.32%, damping 0.95x, yesterday 68.37% today 97.74% blend 72.92%
2026-08-17 06:30:02.175271: Today's predicted so far 4.31kWh with 0.0kWh car/iBoost excluded, 3.45kWh import ignored, and 4.31kWh forecast extra.
2026-08-17 06:30:02.175303: Today's actual load so far 3.94kWh with 0.0kWh car/iBoost excluded, and 3.45kWh import ignored.
2026-08-17 06:30:02.222759: Inverter 0: Type SK Sunsynk
2026-08-17 06:30:02.222852: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:30:02.223035: Reserve min: 7%, battery_min: 7%
2026-08-17 06:30:02.223106: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:30:02.223390: Inverter 0 SoC: 12.54kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 353W, current battery voltage 51.2V, grid power -55W, load power 417W, PV Power 0W
2026-08-17 06:30:02.223572: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:30:02.223668: Inverter 0 scheduled charge enable is True
2026-08-17 06:30:02.223711: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:30:02.223795: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:30:02.223917: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:30:02.223953: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:30:02.223989: Inverter 0 scheduled discharge enable is False
2026-08-17 06:30:02.224109: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:30:02.224146: Inverter 0 discharge windows currently []
2026-08-17 06:30:02.224169: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:30:02.224188: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:30:02.224205: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:30:02.313076: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:30:02.313256: Plan was last updated on 2026-08-17 06:25:00+01:00 and is now 5.0 minutes old
2026-08-17 06:30:02.313765: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:30:02.313906: Best export window [ ]
2026-08-17 06:30:02.315303: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:30:02.319770: Load divergence over 8.0 hours mean 741.88W, min 262.2W, max 1983.0W, std dev 414.76W, divergence 27.95%
2026-08-17 06:30:02.346962: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:30:02.347134: LoadML is_calculating False
2026-08-17 06:30:02.347215: Creating pool of 12 processes to match your CPU count
2026-08-17 06:30:02.546932: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 557.6p, metric_keep 279.25kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.81kWh, PV 0.0kWh
2026-08-17 06:30:02.823590: Battery has 23.33 hours left - now at 12.54kWh
2026-08-17 06:30:02.873283: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 581.49p, metric_keep 280.62kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.99kWh, PV 0.0kWh
2026-08-17 06:30:02.958632: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 287.58p, metric_keep 3.58kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.99kWh, PV 0.0kWh
2026-08-17 06:30:03.052708: predict best end_record 08-18 23:35:00, final soc 2.31kWh, metric 282.65p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.81kWh, PV 0.0kWh
2026-08-17 06:30:03.052807: Saving plan best values to HA entities
2026-08-17 06:30:03.246628: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:30:03.254554: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:30:03.261977: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.99kWh, house 0.0kWh, export 0.0kWh, metric 282.65p, metric10 287.58p
2026-08-17 06:30:03.381284: Marginal costs baseline metric (no standing charge): 236.0176
2026-08-17 06:30:03.692735: Marginal energy costs matrix computed: min=9.23 max=27.51
2026-08-17 06:30:03.786897: Rate array import [{'start': 390, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 390, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:30:03.787789: - Your estimated bill for today is £1.23 and tomorrow is £1.79
2026-08-17 06:30:03.787844: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:30:03.787868: - The battery is currently at 78% and is in eco mode for the next 17 hours.
2026-08-17 06:30:03.787887: - For the next 48 hours there will be no solar generation.
2026-08-17 06:30:03.787904: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:30:03.787921: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-17 06:30:03.787938:
2026-08-17 06:30:03.862696: Plan calculation took 1.55 seconds
2026-08-17 06:30:03.866255: No high rate period found
2026-08-17 06:30:03.925886: Import threshold used for optimisation was 8.0p
2026-08-17 06:30:03.990798: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:30:03.997542: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 78%, target 100%
2026-08-17 06:30:03.997694: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:30:00 charge start time 08-18 00:00:00)
2026-08-17 06:30:03.997752: No export window planned
2026-08-17 06:30:03.997978: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:30:03.998047: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:30:03.998364: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:30:03.998654: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:30:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:30:03.998734: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:30:03.998830: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:30:03.998970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999051: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999241: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999338: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999458: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:30:03.999785: Inverter 0 count register writes 0
2026-08-17 06:30:04.019787: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 06:30:04.026076: Total inverter register writes now 859
2026-08-17 06:30:04.067376: Info: Completed run status Demand
2026-08-17 06:30:04.074503: Info: record_status Demand
2026-08-17 06:30:04.082847: Saved current settings to /config/predbat_config.json
2026-08-17 06:30:04.083174: Compare, best tariff: current metric 104.68p
2026-08-17 06:30:34.202246: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:30:34.202556: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:30:34.202610: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:30:34.202765: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:30:34.202811: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:30:34.202833: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:30:34.202866: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:32:48.490311: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:32:48.490610: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:32:48.490647: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:32:48.490827: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:32:48.490890: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:32:48.490912: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:32:48.490930: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:34:48.729591: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:34:48.729895: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:34:48.729937: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:34:48.730126: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:34:48.730165: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:34:48.730227: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:34:48.730277: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:35:00.812730: --------------- PredBat - update at 2026-08-17 06:35:00+01:00 with clock skew 0 minutes, minutes now 395
2026-08-17 06:35:00.813872: Saved current settings to /config/predbat_config.json
2026-08-17 06:35:00.814066: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 06:35:00.814238: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:35:00.814380: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:35:00.845108: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:35:00.845322: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:35:00.845652: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:35:00.846521: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:35:00.846719: Predbat mode is set to Control charge & discharge
2026-08-17 06:35:01.069775: Found 21602 load_today datapoints going back 27 days
2026-08-17 06:35:01.069939: Using load_power data to fill gaps in load_today data
2026-08-17 06:35:01.837515: Processing 721 30-minute periods for power integration
2026-08-17 06:35:02.023215: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:35:02.023363: Car charging hold False, threshold 6.0kWh
2026-08-17 06:35:02.023410: Current data so far today: load 4.0kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:35:02.038648: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:35:02.038740: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:35:02.039401: Standing charge is set to 46.63p
2026-08-17 06:35:02.123489: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.123732: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.123928: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.124160: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.124348: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.124525: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.124721: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.124863: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.125086: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.125267: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.125407: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.125566: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.125714: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.125855: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:35:02.126270: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:35:02.126328: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:35:02.130634: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:35:02.130990: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:35:02.170727: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:35:02.170854: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:35:02.171998: High export rate found rates in range 99p to -99p
2026-08-17 06:35:02.200969: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:35:02.201093: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:35:02.201143: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:35:02.214583: Battery level now 12.54kWh, -1hr ago 12.96kWh, at midnight 10.49kWh, battery value change in the last hour -2.91p, change today 14.08p, rate_forward 6.87p
2026-08-17 06:35:02.214952: Last hour: net energy 0.07kWh, import 0.07kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 2.53p, import 2.53p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:35:02.261295: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:35:02.261441: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:35:02.332650: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:35:02.353461: Today's load divergence 97.52%, in-day adjustment 76.4%, damping 0.95x, yesterday 68.37% today 97.65% blend 72.57%
2026-08-17 06:35:02.353576: Today's predicted so far 4.39kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.39kWh forecast extra.
2026-08-17 06:35:02.353620: Today's actual load so far 4.0kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 06:35:02.388086: Inverter 0: Type SK Sunsynk
2026-08-17 06:35:02.388179: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:35:02.388363: Reserve min: 7%, battery_min: 7%
2026-08-17 06:35:02.388473: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:35:02.388812: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 354W, current battery voltage 51.2V, grid power -54W, load power 417W, PV Power 0W
2026-08-17 06:35:02.389018: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:35:02.389114: Inverter 0 scheduled charge enable is True
2026-08-17 06:35:02.389183: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:35:02.389273: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:35:02.389395: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:35:02.389431: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:35:02.389491: Inverter 0 scheduled discharge enable is False
2026-08-17 06:35:02.389702: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:35:02.389743: Inverter 0 discharge windows currently []
2026-08-17 06:35:02.389767: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:35:02.389786: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:35:02.389804: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:35:02.445716: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:35:02.445822: Plan was last updated on 2026-08-17 06:25:00+01:00 and is now 10.0 minutes old
2026-08-17 06:35:02.446045: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:35:02.446089: Best export window [ ]
2026-08-17 06:35:02.446969: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:35:02.450150: Load divergence over 8.0 hours mean 743.33W, min 271.2W, max 1926.0W, std dev 408.97W, divergence 27.51%
2026-08-17 06:35:02.468406: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:35:02.468551: LoadML is_calculating False
2026-08-17 06:35:02.468626: Creating pool of 12 processes to match your CPU count
2026-08-17 06:35:02.587666: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 558.07p, metric_keep 279.1kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.96kWh, PV 0.0kWh
2026-08-17 06:35:02.712565: Battery has 23.33 hours left - now at 12.48kWh
2026-08-17 06:35:02.761486: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 581.51p, metric_keep 279.89kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 30.15kWh, PV 0.0kWh
2026-08-17 06:35:02.839542: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 291.69p, metric_keep 3.58kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.15kWh, PV 0.0kWh
2026-08-17 06:35:02.921048: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 287.26p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.96kWh, PV 0.0kWh
2026-08-17 06:35:02.921171: Saving plan best values to HA entities
2026-08-17 06:35:03.095182: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:35:03.100591: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 06:35:03.105985: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.57kWh, house 0.0kWh, export 0.0kWh, metric 287.26p, metric10 291.69p
2026-08-17 06:35:03.176808: Marginal costs baseline metric (no standing charge): 240.6264
2026-08-17 06:35:03.414213: Marginal energy costs matrix computed: min=9.23 max=27.62
2026-08-17 06:35:03.494337: Rate array import [{'start': 395, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 395, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:35:03.495285: - Your estimated bill for today is £1.23 and tomorrow is £1.80
2026-08-17 06:35:03.495357: - Import rates are very expensive (33.8p) for the next 55 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:35:03.495382: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-17 06:35:03.495400: - For the next 48 hours there will be no solar generation.
2026-08-17 06:35:03.495418: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:35:03.495439: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:35:03.495463:
2026-08-17 06:35:03.569076: Plan calculation took 1.12 seconds
2026-08-17 06:35:03.572494: No high rate period found
2026-08-17 06:35:03.635064: Import threshold used for optimisation was 8.0p
2026-08-17 06:35:03.690931: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:35:03.699091: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 78%, target 100%
2026-08-17 06:35:03.699263: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:35:00 charge start time 08-18 00:00:00)
2026-08-17 06:35:03.699334: No export window planned
2026-08-17 06:35:03.699561: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:35:03.699621: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:35:03.699958: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:35:03.700179: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:35:03.700241: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:35:03.700334: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:35:03.700510: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.700588: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.700626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.700663: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.700695: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.700740: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.700797: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.700935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.701015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.701045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.701075: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.701100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.701126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.701166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:03.701221: Inverter 0 count register writes 0
2026-08-17 06:35:03.728863: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 06:35:03.729075: Recompute is saving previous plan...
2026-08-17 06:35:03.730101: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 06:35:03.730157: Best export window [ ]
2026-08-17 06:35:03.731000: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:35:03.734197: Load divergence over 8.0 hours mean 743.33W, min 271.2W, max 1926.0W, std dev 408.97W, divergence 27.51%
2026-08-17 06:35:03.752415: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:35:03.752566: LoadML is_calculating False
2026-08-17 06:35:03.752652: Creating pool of 12 processes to match your CPU count
2026-08-17 06:35:03.843547: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 06:35:03.844410: Optimise levels pass started at 2026-08-17 06:35:03
2026-08-17 06:35:03.844469: Optimise all windows, total charge 25 export 1
2026-08-17 06:35:04.186968: >> Region optimisation pass width 960 gives best_metric 283.03p, best_cost 377.13p, best_cycle 46.17kWh, best_import 34.63kWh
2026-08-17 06:35:04.324252: >> Region optimisation pass width 480 gives best_metric 283.03p, best_cost 377.13p, best_cycle 46.17kWh, best_import 34.63kWh
2026-08-17 06:35:05.044462: >> Region optimisation pass width 240 gives best_metric 269.7p, best_cost 278.13p, best_cycle 41.45kWh, best_import 22.26kWh
2026-08-17 06:35:05.957370: >> Region optimisation pass width 120 gives best_metric 266.43p, best_cost 277.82p, best_cycle 40.91kWh, best_import 22.22kWh
2026-08-17 06:35:05.957648: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 06:35:05.957775: Optimise levels pass ended at 2026-08-17 06:35:05, duration 2.1 seconds tried 77 combinations
2026-08-17 06:35:05.958017: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 266.43p, best_keep 0.1kWh, best_cycle 40.91kWh, best_carbon 0kg, best_import 22.22kWh
2026-08-17 06:35:05.979339: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 06:35:10.910966: Tweak plan optimisation started metric 220.63p, cost 232.34p
2026-08-17 06:35:11.275672: Tweak optimisation finished metric 220.63p, cost 232.34p, metric_keep 0.1kWh, cycle 32.71kWh, carbon 0kg, import 16.53kWh, changed 8 window(s)
2026-08-17 06:35:11.297622: Swap charge optimisation started metric 220.63p, cost 232.34p, min_improvement_swap 0.1p
2026-08-17 06:35:12.116779: Swap charge optimisation finished metric 220.63p, cost 232.34p
2026-08-17 06:35:12.276602: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:35:12.277084: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:35:12.277445: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:35:12.277711: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:35:12.318593: Previous plan best metric is 220.63 (cost 232.34) and new plan best metric is 220.63 (cost 232.34)
2026-08-17 06:35:12.318856: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 06:35:12.319185: Plan valid is now true after recompute was False
2026-08-17 06:35:12.350875: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 556.45p, metric_keep 278.51kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.75kWh, PV 0.0kWh
2026-08-17 06:35:12.482217: Battery has 23.33 hours left - now at 12.48kWh
2026-08-17 06:35:12.522283: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 579.81p, metric_keep 279.31kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.93kWh, PV 0.0kWh
2026-08-17 06:35:12.610443: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 284.44p, metric_keep 3.46kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.93kWh, PV 0.0kWh
2026-08-17 06:35:12.687410: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 278.97p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.75kWh, PV 0.0kWh
2026-08-17 06:35:12.687506: Saving plan best values to HA entities
2026-08-17 06:35:12.841758: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:35:12.847176: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 06:35:12.852863: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.53kWh, house 0.0kWh, export 0.0kWh, metric 278.97p, metric10 284.44p
2026-08-17 06:35:12.924497: Marginal costs baseline metric (no standing charge): 232.3382
2026-08-17 06:35:13.172730: Marginal energy costs matrix computed: min=9.23 max=27.62
2026-08-17 06:35:13.241746: Rate array import [{'start': 395, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 395, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:35:13.242630: - Your estimated bill for today is £1.23 and tomorrow is £1.80
2026-08-17 06:35:13.243247: - Import rates are very expensive (33.8p) for the next 55 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:35:13.243289: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-17 06:35:13.243308: - For the next 48 hours there will be no solar generation.
2026-08-17 06:35:13.243322: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:35:13.243336: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:35:13.243353:
2026-08-17 06:35:13.306612: Plan calculation took 9.58 seconds
2026-08-17 06:35:13.307057: Inverter 0: Type SK Sunsynk
2026-08-17 06:35:13.307117: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:35:13.307431: Reserve min: 7%, battery_min: 7%
2026-08-17 06:35:13.307550: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:35:13.307961: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 354W, current battery voltage 51.2V, grid power -55W, load power 416W, PV Power 0W
2026-08-17 06:35:13.308255: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:35:13.308398: Inverter 0 scheduled charge enable is True
2026-08-17 06:35:13.308470: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:35:13.308640: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:35:13.308812: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:35:13.308904: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:35:13.309008: Inverter 0 scheduled discharge enable is False
2026-08-17 06:35:13.309258: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:35:13.309306: Inverter 0 discharge windows currently []
2026-08-17 06:35:13.309354: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:35:13.309388: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:35:13.309411: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:35:13.368385: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 78%, target 100%
2026-08-17 06:35:13.368558: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:35:00 charge start time 08-18 00:00:00)
2026-08-17 06:35:13.368593: No export window planned
2026-08-17 06:35:13.368738: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:35:13.368774: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:35:13.368928: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:35:13.369149: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:35:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:35:13.369203: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:35:13.369249: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:35:13.369330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369370: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369393: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369417: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369477: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369672: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:35:13.369689: Inverter 0 count register writes 0
2026-08-17 06:35:13.389917: Total inverter register writes now 859
2026-08-17 06:35:13.425185: Info: Completed run status Demand
2026-08-17 06:35:13.431778: Info: record_status Demand
2026-08-17 06:35:13.439114: Saved current settings to /config/predbat_config.json
2026-08-17 06:35:13.439566: Compare, best tariff: current metric 104.68p
2026-08-17 06:35:48.560720: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:35:48.561166: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:35:48.561259: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:35:48.561529: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:35:48.561609: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:35:48.561651: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:35:48.561686: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:37:48.783374: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:37:48.783691: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:37:48.783766: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:37:48.783928: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:37:48.783965: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:37:48.784007: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:37:48.784032: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:39:49.003036: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:39:49.003313: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:39:49.003384: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:39:49.003524: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:39:49.003563: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:39:49.003585: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:39:49.003602: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:40:00.113868: --------------- PredBat - update at 2026-08-17 06:40:00+01:00 with clock skew 0 minutes, minutes now 400
2026-08-17 06:40:00.115068: Saved current settings to /config/predbat_config.json
2026-08-17 06:40:00.115204: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 06:40:00.115317: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:40:00.115437: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:40:00.134872: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:40:00.135006: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:40:00.135173: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:40:00.135711: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:40:00.135832: Predbat mode is set to Control charge & discharge
2026-08-17 06:40:00.317657: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:40:00.317797: Using load_power data to fill gaps in load_today data
2026-08-17 06:40:01.007648: Processing 721 30-minute periods for power integration
2026-08-17 06:40:01.160598: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:40:01.160773: Car charging hold False, threshold 6.0kWh
2026-08-17 06:40:01.160831: Current data so far today: load 3.9kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:40:01.174628: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:40:01.174747: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:40:01.175416: Standing charge is set to 46.63p
2026-08-17 06:40:01.261066: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.261294: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.261464: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.261612: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.261772: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.261916: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.262060: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.262198: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.262331: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.262468: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.262601: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.262754: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.262949: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.263112: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:40:01.263299: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:40:01.263350: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:40:01.267595: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:40:01.267911: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:40:01.302913: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:40:01.303030: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:40:01.304015: High export rate found rates in range 99p to -99p
2026-08-17 06:40:01.326996: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:40:01.327089: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:40:01.327132: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:40:01.339772: Battery level now 12.48kWh, -1hr ago 12.8kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 13.69p, rate_forward 6.87p
2026-08-17 06:40:01.340077: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 2.11p, import 2.11p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:40:01.397597: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:40:01.397734: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:40:01.460006: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:40:01.479998: Today's load divergence 96.81%, in-day adjustment 76.31%, damping 0.95x, yesterday 68.37% today 96.97% blend 72.22%
2026-08-17 06:40:01.480083: Today's predicted so far 4.4kWh with 0.0kWh car/iBoost excluded, 3.33kWh import ignored, and 4.4kWh forecast extra.
2026-08-17 06:40:01.480129: Today's actual load so far 3.9kWh with 0.0kWh car/iBoost excluded, and 3.33kWh import ignored.
2026-08-17 06:40:01.512803: Inverter 0: Type SK Sunsynk
2026-08-17 06:40:01.512884: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:40:01.513075: Reserve min: 7%, battery_min: 7%
2026-08-17 06:40:01.513165: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:40:01.513381: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 353W, current battery voltage 51.2V, grid power -55W, load power 416W, PV Power 0W
2026-08-17 06:40:01.513510: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:40:01.513583: Inverter 0 scheduled charge enable is True
2026-08-17 06:40:01.513616: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:40:01.513711: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:40:01.513814: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:40:01.513838: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:40:01.513867: Inverter 0 scheduled discharge enable is False
2026-08-17 06:40:01.513962: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:40:01.513993: Inverter 0 discharge windows currently []
2026-08-17 06:40:01.514012: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:40:01.514027: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:40:01.514045: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:40:01.565323: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:40:01.565412: Plan was last updated on 2026-08-17 06:35:00+01:00 and is now 5.0 minutes old
2026-08-17 06:40:01.565607: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:40:01.565655: Best export window [ ]
2026-08-17 06:40:01.566345: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:40:01.568816: Load divergence over 8.0 hours mean 745.06W, min 292.2W, max 1707.6W, std dev 408.75W, divergence 27.43%
2026-08-17 06:40:01.583821: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:40:01.583953: LoadML is_calculating False
2026-08-17 06:40:01.584012: Creating pool of 12 processes to match your CPU count
2026-08-17 06:40:01.694601: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 557.44p, metric_keep 279.28kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.7kWh, PV 0.0kWh
2026-08-17 06:40:01.811487: Battery has 23.17 hours left - now at 12.48kWh
2026-08-17 06:40:01.857387: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 581.26p, metric_keep 280.58kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.88kWh, PV 0.0kWh
2026-08-17 06:40:01.937903: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 287.52p, metric_keep 3.6kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.88kWh, PV 0.0kWh
2026-08-17 06:40:02.013577: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 282.62p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.7kWh, PV 0.0kWh
2026-08-17 06:40:02.013671: Saving plan best values to HA entities
2026-08-17 06:40:02.164334: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:40:02.169179: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:40:02.173969: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.99kWh, house 0.0kWh, export 0.0kWh, metric 282.62p, metric10 287.52p
2026-08-17 06:40:02.249045: Marginal costs baseline metric (no standing charge): 235.9817
2026-08-17 06:40:02.506677: Marginal energy costs matrix computed: min=9.23 max=27.49
2026-08-17 06:40:02.581070: Rate array import [{'start': 400, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 400, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:40:02.581931: - Your estimated bill for today is £1.23 and tomorrow is £1.79
2026-08-17 06:40:02.581979: - Import rates are very expensive (33.8p) for the next 50 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:40:02.582002: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-17 06:40:02.582020: - For the next 48 hours there will be no solar generation.
2026-08-17 06:40:02.582037: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:40:02.582054: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:40:02.582071:
2026-08-17 06:40:02.651213: Plan calculation took 1.09 seconds
2026-08-17 06:40:02.653965: No high rate period found
2026-08-17 06:40:02.700999: Import threshold used for optimisation was 8.0p
2026-08-17 06:40:02.749084: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:40:02.754393: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 78%, target 100%
2026-08-17 06:40:02.754501: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:40:00 charge start time 08-18 00:00:00)
2026-08-17 06:40:02.754529: No export window planned
2026-08-17 06:40:02.754724: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:40:02.754774: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:40:02.754980: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:40:02.755156: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:40:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:40:02.755210: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:40:02.755266: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:40:02.755358: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755443: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755683: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:40:02.755729: Inverter 0 count register writes 0
2026-08-17 06:40:02.770600: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 06:40:02.775305: Total inverter register writes now 859
2026-08-17 06:40:02.807375: Info: Completed run status Demand
2026-08-17 06:40:02.813676: Info: record_status Demand
2026-08-17 06:40:02.820473: Saved current settings to /config/predbat_config.json
2026-08-17 06:40:02.820811: Compare, best tariff: current metric 104.68p
2026-08-17 06:40:33.933808: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:40:33.934145: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:40:33.934217: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:40:33.934504: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:40:33.934550: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:40:33.934573: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:40:33.934605: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:42:34.153805: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:42:34.154259: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:42:34.154324: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:42:34.154606: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:42:34.154666: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:42:34.154725: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:42:34.154771: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:44:48.396486: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:44:48.396811: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:44:48.396860: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:44:48.397051: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:44:48.397098: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:44:48.397119: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:44:48.397138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:45:00.506610: --------------- PredBat - update at 2026-08-17 06:45:00+01:00 with clock skew 0 minutes, minutes now 405
2026-08-17 06:45:00.507545: Saved current settings to /config/predbat_config.json
2026-08-17 06:45:00.507670: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 06:45:00.507784: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:45:00.507899: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:45:00.541436: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:45:00.541563: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:45:00.541727: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:45:00.542279: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:45:00.542401: Predbat mode is set to Control charge & discharge
2026-08-17 06:45:00.719116: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:45:00.719273: Using load_power data to fill gaps in load_today data
2026-08-17 06:45:01.405776: Processing 721 30-minute periods for power integration
2026-08-17 06:45:01.554140: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:45:01.554274: Car charging hold False, threshold 6.0kWh
2026-08-17 06:45:01.554316: Current data so far today: load 3.9kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:45:01.567706: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:45:01.567807: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:45:01.568490: Standing charge is set to 46.63p
2026-08-17 06:45:01.661571: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.661818: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.661991: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.662173: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.662325: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.662466: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.662611: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.662763: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.662904: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.663067: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.663202: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.663338: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.663472: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.663607: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:45:01.663828: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:45:01.663879: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:45:01.668203: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:45:01.668536: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:45:01.703810: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:45:01.703917: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:45:01.705022: High export rate found rates in range 99p to -99p
2026-08-17 06:45:01.729465: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:45:01.729578: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:45:01.729621: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:45:01.753743: Battery level now 12.48kWh, -1hr ago 12.8kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 13.69p, rate_forward 6.87p
2026-08-17 06:45:01.754074: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:45:01.799827: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:45:01.799962: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:45:01.863847: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:45:01.883712: Today's load divergence 96.73%, in-day adjustment 76.39%, damping 0.95x, yesterday 68.37% today 96.89% blend 71.88%
2026-08-17 06:45:01.883828: Today's predicted so far 4.4kWh with 0.0kWh car/iBoost excluded, 3.31kWh import ignored, and 4.4kWh forecast extra.
2026-08-17 06:45:01.883855: Today's actual load so far 3.89kWh with 0.0kWh car/iBoost excluded, and 3.31kWh import ignored.
2026-08-17 06:45:01.922426: Inverter 0: Type SK Sunsynk
2026-08-17 06:45:01.922503: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:45:01.922661: Reserve min: 7%, battery_min: 7%
2026-08-17 06:45:01.922727: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:45:01.922999: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 385W, current battery voltage 51.2V, grid power -54W, load power 446W, PV Power 0W
2026-08-17 06:45:01.923142: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:45:01.923217: Inverter 0 scheduled charge enable is True
2026-08-17 06:45:01.923250: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:45:01.923330: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:45:01.923427: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:45:01.923456: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:45:01.923485: Inverter 0 scheduled discharge enable is False
2026-08-17 06:45:01.923586: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:45:01.923617: Inverter 0 discharge windows currently []
2026-08-17 06:45:01.923635: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:45:01.923650: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:45:01.923666: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:45:01.983851: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:45:01.983945: Plan was last updated on 2026-08-17 06:35:00+01:00 and is now 10.0 minutes old
2026-08-17 06:45:01.984232: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:45:01.984278: Best export window [ ]
2026-08-17 06:45:01.985081: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:45:01.987697: Load divergence over 8.0 hours mean 746.66W, min 259.8W, max 1788.0W, std dev 420.11W, divergence 28.13%
2026-08-17 06:45:02.003556: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:45:02.003667: LoadML is_calculating False
2026-08-17 06:45:02.003733: Creating pool of 12 processes to match your CPU count
2026-08-17 06:45:02.116972: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 557.37p, metric_keep 278.53kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.77kWh, PV 0.0kWh
2026-08-17 06:45:02.237629: Battery has 23.17 hours left - now at 12.48kWh
2026-08-17 06:45:02.281337: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 581.09p, metric_keep 279.66kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.95kWh, PV 0.0kWh
2026-08-17 06:45:02.349472: predict best10 end_record 08-18 23:40:00, final soc 1.96kWh, metric 290.75p, metric_keep 3.73kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 29.95kWh, PV 0.0kWh
2026-08-17 06:45:02.421900: predict best end_record 08-18 23:40:00, final soc 2.69kWh, metric 286.36p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 28.77kWh, PV 0.0kWh
2026-08-17 06:45:02.421983: Saving plan best values to HA entities
2026-08-17 06:45:02.591208: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:45:02.596609: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:45:02.601389: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.45kWh, house 0.0kWh, export 0.0kWh, metric 286.36p, metric10 290.75p
2026-08-17 06:45:02.672112: Marginal costs baseline metric (no standing charge): 239.7242
2026-08-17 06:45:02.902890: Marginal energy costs matrix computed: min=9.23 max=27.39
2026-08-17 06:45:02.975559: Rate array import [{'start': 405, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 405, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:45:02.976374: - Your estimated bill for today is £1.23 and tomorrow is £1.79
2026-08-17 06:45:02.976420: - Import rates are very expensive (33.8p) for the next 45 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:45:02.976443: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-17 06:45:02.976461: - For the next 48 hours there will be no solar generation.
2026-08-17 06:45:02.976483: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:45:02.976505: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:45:02.976523:
2026-08-17 06:45:03.064805: Plan calculation took 1.08 seconds
2026-08-17 06:45:03.067564: No high rate period found
2026-08-17 06:45:03.114356: Import threshold used for optimisation was 8.0p
2026-08-17 06:45:03.165610: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:45:03.172374: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 78%, target 100%
2026-08-17 06:45:03.172515: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:45:00 charge start time 08-18 00:00:00)
2026-08-17 06:45:03.172552: No export window planned
2026-08-17 06:45:03.172727: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:45:03.172826: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:45:03.173111: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:45:03.173330: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:45:03.173395: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:45:03.173467: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:45:03.173578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173622: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173650: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173684: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173735: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173780: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173963: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.173993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.174017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:03.174038: Inverter 0 count register writes 0
2026-08-17 06:45:03.189333: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 06:45:03.189490: Recompute is saving previous plan...
2026-08-17 06:45:03.190328: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 06:45:03.190392: Best export window [ ]
2026-08-17 06:45:03.191078: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:45:03.193648: Load divergence over 8.0 hours mean 746.66W, min 259.8W, max 1788.0W, std dev 420.11W, divergence 28.13%
2026-08-17 06:45:03.209188: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:45:03.209306: LoadML is_calculating False
2026-08-17 06:45:03.209377: Creating pool of 12 processes to match your CPU count
2026-08-17 06:45:03.296355: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 06:45:03.297282: Optimise levels pass started at 2026-08-17 06:45:03
2026-08-17 06:45:03.297338: Optimise all windows, total charge 25 export 1
2026-08-17 06:45:03.646370: >> Region optimisation pass width 960 gives best_metric 282.85p, best_cost 376.19p, best_cycle 46.15kWh, best_import 34.51kWh
2026-08-17 06:45:03.771297: >> Region optimisation pass width 480 gives best_metric 282.85p, best_cost 376.19p, best_cycle 46.15kWh, best_import 34.51kWh
2026-08-17 06:45:04.054701: >> Region optimisation pass width 240 gives best_metric 282.85p, best_cost 376.19p, best_cycle 46.15kWh, best_import 34.51kWh
2026-08-17 06:45:05.122193: >> Region optimisation pass width 120 gives best_metric 276.28p, best_cost 329.13p, best_cycle 46.85kWh, best_import 28.63kWh
2026-08-17 06:45:05.122406: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 06:45:05.122469: Optimise levels pass ended at 2026-08-17 06:45:05, duration 1.8 seconds tried 79 combinations
2026-08-17 06:45:05.123016: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 276.28p, best_keep 0.41kWh, best_cycle 46.85kWh, best_carbon 0kg, best_import 28.63kWh
2026-08-17 06:45:05.140331: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.25, 15.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 06:45:07.970057: Tweak plan optimisation started metric 220.4p, cost 233.74p
2026-08-17 06:45:08.319451: Tweak optimisation finished metric 220.4p, cost 233.74p, metric_keep 0kWh, cycle 33.34kWh, carbon 0kg, import 16.71kWh, changed 8 window(s)
2026-08-17 06:45:08.340812: Swap charge optimisation started metric 220.4p, cost 233.74p, min_improvement_swap 0.1p
2026-08-17 06:45:09.087360: Swap charge optimisation finished metric 220.4p, cost 233.74p
2026-08-17 06:45:09.190812: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:45:09.191193: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:45:09.191418: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:45:09.191596: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:45:09.228186: Previous plan best metric is 219.81 (cost 231.41) and new plan best metric is 220.4 (cost 233.74)
2026-08-17 06:45:09.228403: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 06:45:09.228576: Plan valid is now true after recompute was False
2026-08-17 06:45:09.256018: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 555.72p, metric_keep 277.95kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 28.56kWh, PV 0.0kWh
2026-08-17 06:45:09.363749: Battery has 23.17 hours left - now at 12.48kWh
2026-08-17 06:45:09.402928: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 579.36p, metric_keep 279.08kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.74kWh, PV 0.0kWh
2026-08-17 06:45:09.494696: predict best10 end_record 08-18 23:30:00, final soc 1.31kWh, metric 283.47p, metric_keep 3.59kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 29.74kWh, PV 0.0kWh
2026-08-17 06:45:09.576344: predict best end_record 08-18 23:30:00, final soc 1.91kWh, metric 278.04p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 28.56kWh, PV 0.0kWh
2026-08-17 06:45:09.576433: Saving plan best values to HA entities
2026-08-17 06:45:09.712536: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:45:09.717238: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:45:09.722635: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.41kWh, house 0.0kWh, export 0.0kWh, metric 278.04p, metric10 283.47p
2026-08-17 06:45:09.784864: Marginal costs baseline metric (no standing charge): 231.4063
2026-08-17 06:45:10.015942: Marginal energy costs matrix computed: min=9.23 max=27.39
2026-08-17 06:45:10.078422: Rate array import [{'start': 405, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 405, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:45:10.079061: - Your estimated bill for today is £1.23 and tomorrow is £1.79
2026-08-17 06:45:10.079102: - Import rates are very expensive (33.8p) for the next 45 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:45:10.079121: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-17 06:45:10.079152: - For the next 48 hours there will be no solar generation.
2026-08-17 06:45:10.079172: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:45:10.079187: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:45:10.079202:
2026-08-17 06:45:10.148562: Plan calculation took 6.96 seconds
2026-08-17 06:45:10.148995: Inverter 0: Type SK Sunsynk
2026-08-17 06:45:10.149067: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:45:10.149326: Reserve min: 7%, battery_min: 7%
2026-08-17 06:45:10.149407: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:45:10.149748: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 382W, current battery voltage 51.2V, grid power -55W, load power 443W, PV Power 0W
2026-08-17 06:45:10.150016: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:45:10.150125: Inverter 0 scheduled charge enable is True
2026-08-17 06:45:10.150175: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:45:10.150280: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:45:10.150405: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:45:10.150445: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:45:10.150483: Inverter 0 scheduled discharge enable is False
2026-08-17 06:45:10.150609: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:45:10.150647: Inverter 0 discharge windows currently []
2026-08-17 06:45:10.150670: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:45:10.150689: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:45:10.150706: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:45:10.219263: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 78%, target 100%
2026-08-17 06:45:10.219411: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:45:00 charge start time 08-18 00:00:00)
2026-08-17 06:45:10.219446: No export window planned
2026-08-17 06:45:10.219586: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:45:10.219630: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:45:10.219842: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:45:10.220027: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:45:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:45:10.220082: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:45:10.220135: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:45:10.220222: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220260: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220329: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220356: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220665: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:45:10.220695: Inverter 0 count register writes 0
2026-08-17 06:45:10.246483: Total inverter register writes now 859
2026-08-17 06:45:10.279707: Info: Completed run status Demand
2026-08-17 06:45:10.286307: Info: record_status Demand
2026-08-17 06:45:10.293340: Saved current settings to /config/predbat_config.json
2026-08-17 06:45:10.293620: Compare, best tariff: current metric 104.68p
2026-08-17 06:45:48.415187: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:45:48.415467: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:45:48.415513: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:45:48.415699: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:45:48.415813: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:45:48.415847: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:45:48.415867: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:47:48.636339: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:47:48.636645: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:47:48.636723: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:47:48.636998: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:47:48.637051: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:47:48.637078: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:47:48.637102: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:49:48.862168: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:49:48.862454: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:49:48.862504: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:49:48.862693: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:49:48.862746: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:49:48.862778: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:49:48.862796: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:50:00.963725: --------------- PredBat - update at 2026-08-17 06:50:00+01:00 with clock skew 0 minutes, minutes now 410
2026-08-17 06:50:00.964563: Saved current settings to /config/predbat_config.json
2026-08-17 06:50:00.964696: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 06:50:00.964817: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:50:00.965064: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:50:00.986555: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:50:00.986700: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:50:00.986903: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:50:00.987423: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:50:00.987543: Predbat mode is set to Control charge & discharge
2026-08-17 06:50:01.169486: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:50:01.169647: Using load_power data to fill gaps in load_today data
2026-08-17 06:50:01.868683: Processing 721 30-minute periods for power integration
2026-08-17 06:50:02.022773: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:50:02.023373: Car charging hold False, threshold 6.0kWh
2026-08-17 06:50:02.023427: Current data so far today: load 4.03kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:50:02.037364: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:50:02.037451: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:50:02.038080: Standing charge is set to 46.63p
2026-08-17 06:50:02.121774: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.122038: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.122257: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.122415: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.122557: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.122701: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.122877: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.123051: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.123208: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.123367: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.123544: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.123689: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.123831: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.124001: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:50:02.124217: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:50:02.124272: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:50:02.128658: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:50:02.129048: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:50:02.172478: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:50:02.172603: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:50:02.173928: High export rate found rates in range 99p to -99p
2026-08-17 06:50:02.203156: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:50:02.203281: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:50:02.203332: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:50:02.219265: Battery level now 12.48kWh, -1hr ago 12.8kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 13.69p, rate_forward 6.87p
2026-08-17 06:50:02.219696: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.27p, import 1.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:50:02.279152: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:50:02.279351: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:50:02.362255: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:50:02.389770: Today's load divergence 97.36%, in-day adjustment 76.66%, damping 0.95x, yesterday 68.37% today 97.49% blend 71.53%
2026-08-17 06:50:02.389910: Today's predicted so far 4.41kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.41kWh forecast extra.
2026-08-17 06:50:02.389966: Today's actual load so far 4.0kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 06:50:02.426208: Inverter 0: Type SK Sunsynk
2026-08-17 06:50:02.426302: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:50:02.426482: Reserve min: 7%, battery_min: 7%
2026-08-17 06:50:02.426551: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:50:02.426813: Inverter 0 SoC: 12.37kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -55W, load power 444W, PV Power 0W
2026-08-17 06:50:02.426992: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:50:02.427086: Inverter 0 scheduled charge enable is True
2026-08-17 06:50:02.427136: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:50:02.427234: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:50:02.427355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:50:02.427423: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:50:02.427464: Inverter 0 scheduled discharge enable is False
2026-08-17 06:50:02.427597: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:50:02.427634: Inverter 0 discharge windows currently []
2026-08-17 06:50:02.427657: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:50:02.427679: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:50:02.427697: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:50:02.487731: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:50:02.487826: Plan was last updated on 2026-08-17 06:45:00+01:00 and is now 5.0 minutes old
2026-08-17 06:50:02.488020: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:50:02.488086: Best export window [ ]
2026-08-17 06:50:02.488745: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:50:02.491249: Load divergence over 8.0 hours mean 747.94W, min 260.4W, max 1896.0W, std dev 423.29W, divergence 28.3%
2026-08-17 06:50:02.506144: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:50:02.506257: LoadML is_calculating False
2026-08-17 06:50:02.506317: Creating pool of 12 processes to match your CPU count
2026-08-17 06:50:02.617230: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 557.77p, metric_keep 279.21kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.78kWh, PV 0.0kWh
2026-08-17 06:50:02.734944: Battery has 23.0 hours left - now at 12.37kWh
2026-08-17 06:50:02.776570: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 581.06p, metric_keep 279.92kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.95kWh, PV 0.0kWh
2026-08-17 06:50:02.847248: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 288.01p, metric_keep 3.65kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.95kWh, PV 0.0kWh
2026-08-17 06:50:02.917834: predict best end_record 08-18 23:35:00, final soc 2.31kWh, metric 283.1p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.78kWh, PV 0.0kWh
2026-08-17 06:50:02.917932: Saving plan best values to HA entities
2026-08-17 06:50:03.079514: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:50:03.084431: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:50:03.089304: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.05kWh, house 0.0kWh, export 0.0kWh, metric 283.1p, metric10 288.01p
2026-08-17 06:50:03.162586: Marginal costs baseline metric (no standing charge): 236.4691
2026-08-17 06:50:03.396330: Marginal energy costs matrix computed: min=9.23 max=27.71
2026-08-17 06:50:03.515174: Rate array import [{'start': 410, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 410, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:50:03.515992: - Your estimated bill for today is £1.24 and tomorrow is £1.80
2026-08-17 06:50:03.516038: - Import rates are very expensive (33.8p) for the next 40 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:50:03.516080: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 06:50:03.516100: - For the next 48 hours there will be no solar generation.
2026-08-17 06:50:03.516117: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:50:03.516135: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:50:03.516155:
2026-08-17 06:50:03.594573: Plan calculation took 1.11 seconds
2026-08-17 06:50:03.598090: No high rate period found
2026-08-17 06:50:03.647610: Import threshold used for optimisation was 8.0p
2026-08-17 06:50:03.704398: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:50:03.711360: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 06:50:03.711482: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:50:00 charge start time 08-18 00:00:00)
2026-08-17 06:50:03.711510: No export window planned
2026-08-17 06:50:03.711668: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:50:03.711704: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:50:03.711980: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:50:03.712159: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:50:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:50:03.712215: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:50:03.712273: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:50:03.712385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712506: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712577: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712665: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712705: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:50:03.712746: Inverter 0 count register writes 0
2026-08-17 06:50:03.733667: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 06:50:03.739478: Total inverter register writes now 859
2026-08-17 06:50:03.773422: Info: Completed run status Demand
2026-08-17 06:50:03.779726: Info: record_status Demand
2026-08-17 06:50:03.785898: Saved current settings to /config/predbat_config.json
2026-08-17 06:50:03.786167: Compare, best tariff: current metric 104.68p
2026-08-17 06:50:33.886664: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:50:33.886967: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:50:33.887056: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:50:33.887255: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:50:33.887300: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:50:33.887322: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:50:33.887341: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:52:04.463752: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 06:52:05.559628: Processing 1345 30-minute periods for power integration
2026-08-17 06:52:05.667457: ML Component: Car charging hold False, car energy reported load False
2026-08-17 06:52:05.776829: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:52:05.888663: ML Temperature data points: 49991
2026-08-17 06:52:06.196447: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 06:52:06.243004: ML Component: Data fetch completed, load data age 58.0 days, 16906 data points
2026-08-17 06:52:06.243128: ML Component: No training needed, model age is 0.99 hours
2026-08-17 06:52:06.243195: ML Component: Generating predictions load data age 58.0 days, 16906 data points
2026-08-17 06:52:06.401278: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.029 max_dow {0: 0.08534444444278877, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 06:52:11.900727: ML Component: Generated 576 predictions (total 29.25 kWh over 48h)
2026-08-17 06:52:11.939870: ML Component: Prediction cycle completed
2026-08-17 06:52:12.063176: ML Component: Saved 16906 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 06:52:34.114995: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:52:34.115263: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:52:34.115334: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:52:34.115501: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:52:34.115553: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:52:34.115581: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:52:34.115654: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:54:34.339437: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:54:34.339727: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:54:34.339773: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:54:34.339911: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:54:34.339951: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:54:34.339989: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:54:34.340014: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:55:00.440567: --------------- PredBat - update at 2026-08-17 06:55:00+01:00 with clock skew 0 minutes, minutes now 415
2026-08-17 06:55:00.441507: Saved current settings to /config/predbat_config.json
2026-08-17 06:55:00.441673: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 06:55:00.441791: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 06:55:00.441916: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 06:55:00.470559: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 06:55:00.470681: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 06:55:00.470866: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 06:55:00.471350: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 06:55:00.471481: Predbat mode is set to Control charge & discharge
2026-08-17 06:55:00.664070: Found 21602 load_today datapoints going back 28 days
2026-08-17 06:55:00.664216: Using load_power data to fill gaps in load_today data
2026-08-17 06:55:01.500883: Processing 721 30-minute periods for power integration
2026-08-17 06:55:01.696929: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 06:55:01.697137: Car charging hold False, threshold 6.0kWh
2026-08-17 06:55:01.697211: Current data so far today: load 4.05kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 06:55:01.714834: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 06:55:01.714948: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 06:55:01.715681: Standing charge is set to 46.63p
2026-08-17 06:55:01.819283: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.819648: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.819936: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.820231: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.820508: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.820815: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.821140: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.821609: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.821835: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.822175: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.822369: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.822551: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.822727: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.822902: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 06:55:01.823173: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 06:55:01.823236: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 06:55:01.828589: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 06:55:01.828907: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 06:55:01.873920: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 06:55:01.874069: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 06:55:01.875270: High export rate found rates in range 99p to -99p
2026-08-17 06:55:01.902654: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 06:55:01.902774: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 06:55:01.902816: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 06:55:01.915140: Battery level now 12.37kWh, -1hr ago 12.8kWh, at midnight 10.49kWh, battery value change in the last hour -2.97p, change today 12.92p, rate_forward 6.87p
2026-08-17 06:55:01.915564: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.84p, import 0.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 06:55:01.963515: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 06:55:01.963628: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 06:55:02.029197: Using weighted-bucket historical load forecast over 14 days
2026-08-17 06:55:02.048891: Today's load divergence 97.39%, in-day adjustment 76.77%, damping 0.95x, yesterday 68.37% today 97.52% blend 71.18%
2026-08-17 06:55:02.049015: Today's predicted so far 4.43kWh with 0.0kWh car/iBoost excluded, 3.43kWh import ignored, and 4.43kWh forecast extra.
2026-08-17 06:55:02.049047: Today's actual load so far 4.03kWh with 0.0kWh car/iBoost excluded, and 3.43kWh import ignored.
2026-08-17 06:55:02.087412: Inverter 0: Type SK Sunsynk
2026-08-17 06:55:02.087493: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:55:02.087661: Reserve min: 7%, battery_min: 7%
2026-08-17 06:55:02.087744: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:55:02.087985: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 390W, current battery voltage 51.2V, grid power -54W, load power 448W, PV Power 0W
2026-08-17 06:55:02.088118: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:55:02.088190: Inverter 0 scheduled charge enable is True
2026-08-17 06:55:02.088223: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:55:02.088294: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:55:02.088391: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:55:02.088417: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:55:02.088445: Inverter 0 scheduled discharge enable is False
2026-08-17 06:55:02.088543: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:55:02.088574: Inverter 0 discharge windows currently []
2026-08-17 06:55:02.088592: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:55:02.088607: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:55:02.088621: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:55:02.147582: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 06:55:02.147692: Plan was last updated on 2026-08-17 06:45:00+01:00 and is now 10.0 minutes old
2026-08-17 06:55:02.147916: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 06:55:02.147959: Best export window [ ]
2026-08-17 06:55:02.148850: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:55:02.151777: Load divergence over 8.0 hours mean 749.56W, min 260.4W, max 2007.0W, std dev 417.93W, divergence 27.88%
2026-08-17 06:55:02.166671: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:55:02.166770: LoadML is_calculating False
2026-08-17 06:55:02.166828: Creating pool of 12 processes to match your CPU count
2026-08-17 06:55:02.280021: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 559.37p, metric_keep 279.9kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.89kWh, PV 0.0kWh
2026-08-17 06:55:02.409632: Battery has 22.92 hours left - now at 12.32kWh
2026-08-17 06:55:02.456197: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 582.79p, metric_keep 280.73kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 30.07kWh, PV 0.0kWh
2026-08-17 06:55:02.526507: predict best10 end_record 08-18 23:40:00, final soc 1.96kWh, metric 291.84p, metric_keep 3.67kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.07kWh, PV 0.0kWh
2026-08-17 06:55:02.609298: predict best end_record 08-18 23:40:00, final soc 2.69kWh, metric 287.46p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.89kWh, PV 0.0kWh
2026-08-17 06:55:02.609401: Saving plan best values to HA entities
2026-08-17 06:55:02.777231: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:55:02.782942: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:55:02.788459: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.59kWh, house 0kWh, export 0.0kWh, metric 287.46p, metric10 291.84p
2026-08-17 06:55:02.863981: Marginal costs baseline metric (no standing charge): 240.8263
2026-08-17 06:55:03.119815: Marginal energy costs matrix computed: min=9.23 max=27.79
2026-08-17 06:55:03.198923: Rate array import [{'start': 415, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 415, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:55:03.199590: - Your estimated bill for today is £1.24 and tomorrow is £1.80
2026-08-17 06:55:03.199629: - Import rates are very expensive (33.8p) for the next 35 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:55:03.199648: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 06:55:03.199663: - For the next 48 hours there will be no solar generation.
2026-08-17 06:55:03.199677: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:55:03.199691: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:55:03.199706:
2026-08-17 06:55:03.267488: Plan calculation took 1.12 seconds
2026-08-17 06:55:03.271070: No high rate period found
2026-08-17 06:55:03.332138: Import threshold used for optimisation was 8.0p
2026-08-17 06:55:03.386693: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 06:55:03.391934: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 06:55:03.392088: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:55:00 charge start time 08-18 00:00:00)
2026-08-17 06:55:03.392116: No export window planned
2026-08-17 06:55:03.392273: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:55:03.392319: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:55:03.392528: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:55:03.392697: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:55:03.392751: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:55:03.392808: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:55:03.392904: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.392940: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393043: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393073: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393124: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393159: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393314: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:03.393601: Inverter 0 count register writes 0
2026-08-17 06:55:03.430768: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 06:55:03.430965: Recompute is saving previous plan...
2026-08-17 06:55:03.431845: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 06:55:03.431900: Best export window [ ]
2026-08-17 06:55:03.432618: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 06:55:03.435325: Load divergence over 8.0 hours mean 749.56W, min 260.4W, max 2007.0W, std dev 417.93W, divergence 27.88%
2026-08-17 06:55:03.451665: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 06:55:03.451777: LoadML is_calculating False
2026-08-17 06:55:03.451867: Creating pool of 12 processes to match your CPU count
2026-08-17 06:55:03.540552: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 06:55:03.542077: Optimise levels pass started at 2026-08-17 06:55:03
2026-08-17 06:55:03.544748: Optimise all windows, total charge 25 export 1
2026-08-17 06:55:03.904628: >> Region optimisation pass width 960 gives best_metric 284.59p, best_cost 377.35p, best_cycle 46.35kWh, best_import 34.66kWh
2026-08-17 06:55:04.048242: >> Region optimisation pass width 480 gives best_metric 284.59p, best_cost 377.35p, best_cycle 46.35kWh, best_import 34.66kWh
2026-08-17 06:55:04.321873: >> Region optimisation pass width 240 gives best_metric 284.59p, best_cost 377.35p, best_cycle 46.35kWh, best_import 34.66kWh
2026-08-17 06:55:05.390614: >> Region optimisation pass width 120 gives best_metric 278.11p, best_cost 330.34p, best_cycle 47.05kWh, best_import 28.78kWh
2026-08-17 06:55:05.390857: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 06:55:05.390946: Optimise levels pass ended at 2026-08-17 06:55:05, duration 1.8 seconds tried 79 combinations
2026-08-17 06:55:05.391078: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 278.11p, best_keep 0.48kWh, best_cycle 47.05kWh, best_carbon 0kg, best_import 28.78kWh
2026-08-17 06:55:05.407451: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.25, 15.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 06:55:08.225623: Tweak plan optimisation started metric 221.52p, cost 234.87p
2026-08-17 06:55:08.567410: Tweak optimisation finished metric 221.52p, cost 234.87p, metric_keep 0kWh, cycle 33.46kWh, carbon 0kg, import 16.85kWh, changed 8 window(s)
2026-08-17 06:55:08.588074: Swap charge optimisation started metric 221.52p, cost 234.87p, min_improvement_swap 0.1p
2026-08-17 06:55:09.536176: Swap charge optimisation finished metric 221.52p, cost 234.87p
2026-08-17 06:55:09.671652: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 78%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 78%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:55:09.672079: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:55:09.672366: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:55:09.672571: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 78%, 18-08 03:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 06:55:09.712405: Previous plan best metric is 220.93 (cost 232.55) and new plan best metric is 221.52 (cost 234.87)
2026-08-17 06:55:09.712652: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 06:55:09.712824: Plan valid is now true after recompute was False
2026-08-17 06:55:09.743352: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 557.76p, metric_keep 279.32kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.68kWh, PV 0.0kWh
2026-08-17 06:55:09.857539: Battery has 22.92 hours left - now at 12.32kWh
2026-08-17 06:55:09.908125: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 581.1p, metric_keep 280.15kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.86kWh, PV 0.0kWh
2026-08-17 06:55:09.989240: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 284.59p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.86kWh, PV 0.0kWh
2026-08-17 06:55:10.076829: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 279.18p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.68kWh, PV 0.0kWh
2026-08-17 06:55:10.076935: Saving plan best values to HA entities
2026-08-17 06:55:10.239742: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 06:55:10.244559: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 06:55:10.250031: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.56kWh, house 0kWh, export 0.0kWh, metric 279.18p, metric10 284.59p
2026-08-17 06:55:10.322000: Marginal costs baseline metric (no standing charge): 232.5469
2026-08-17 06:55:10.638378: Marginal energy costs matrix computed: min=9.23 max=27.79
2026-08-17 06:55:10.732195: Rate array import [{'start': 415, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 415, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 06:55:10.732814: - Your estimated bill for today is £1.24 and tomorrow is £1.80
2026-08-17 06:55:10.732853: - Import rates are very expensive (33.8p) for the next 35 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 06:55:10.732871: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 06:55:10.732886: - For the next 48 hours there will be no solar generation.
2026-08-17 06:55:10.732901: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 06:55:10.732921: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 06:55:10.732936:
2026-08-17 06:55:10.794944: Plan calculation took 7.36 seconds
2026-08-17 06:55:10.795548: Inverter 0: Type SK Sunsynk
2026-08-17 06:55:10.795664: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 06:55:10.796086: Reserve min: 7%, battery_min: 7%
2026-08-17 06:55:10.796225: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 06:55:10.796805: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 390W, current battery voltage 51.2V, grid power -54W, load power 448W, PV Power 0W
2026-08-17 06:55:10.797316: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:55:10.797470: Inverter 0 scheduled charge enable is True
2026-08-17 06:55:10.797526: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 06:55:10.797647: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 06:55:10.797795: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:55:10.797838: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:55:10.797879: Inverter 0 scheduled discharge enable is False
2026-08-17 06:55:10.798034: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:55:10.798076: Inverter 0 discharge windows currently []
2026-08-17 06:55:10.798101: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:55:10.798129: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:55:10.798173: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:55:10.861512: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 06:55:10.861691: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 06:55:00 charge start time 08-18 00:00:00)
2026-08-17 06:55:10.861755: No export window planned
2026-08-17 06:55:10.861963: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 06:55:10.862056: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 06:55:10.862337: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 06:55:10.862585: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 06:55:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 06:55:10.862667: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 06:55:10.862728: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 06:55:10.862832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.862882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.862912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.862949: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.862992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863022: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 06:55:10.863415: Inverter 0 count register writes 0
2026-08-17 06:55:10.890142: Total inverter register writes now 859
2026-08-17 06:55:10.934373: Info: Completed run status Demand
2026-08-17 06:55:10.942139: Info: record_status Demand
2026-08-17 06:55:10.950875: Saved current settings to /config/predbat_config.json
2026-08-17 06:55:10.951308: Compare, best tariff: current metric 104.68p
2026-08-17 06:55:49.088631: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:55:49.088910: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:55:49.089002: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:55:49.089192: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:55:49.089251: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:55:49.089288: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:55:49.089321: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 06:57:49.304165: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 06:57:49.304451: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 06:57:49.304496: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 06:57:49.304635: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 06:57:49.304675: Note: Inverter does not support discharge freeze - disabled
2026-08-17 06:57:49.304696: Note: Inverter does not support charge freeze - disabled
2026-08-17 06:57:49.304713: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:00:00.541239: --------------- PredBat - update at 2026-08-17 07:00:00+01:00 with clock skew 0 minutes, minutes now 420
2026-08-17 07:00:00.542097: Saved current settings to /config/predbat_config.json
2026-08-17 07:00:00.542251: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 07:00:00.542448: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:00:00.542571: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:00:00.562471: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:00:00.562601: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:00:00.562785: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:00:00.563373: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:00:00.563506: Predbat mode is set to Control charge & discharge
2026-08-17 07:00:00.796921: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:00:00.797131: Using load_power data to fill gaps in load_today data
2026-08-17 07:00:01.722585: Processing 721 30-minute periods for power integration
2026-08-17 07:00:01.884484: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:00:01.884633: Car charging hold False, threshold 6.0kWh
2026-08-17 07:00:01.884682: Current data so far today: load 4.15kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:00:01.901483: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:00:01.901596: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:00:01.902496: Standing charge is set to 46.63p
2026-08-17 07:00:01.994850: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.995112: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.995286: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.995448: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.995606: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.995752: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.995917: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.996147: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.996409: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.996575: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.996718: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.996863: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.997060: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.997229: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:00:01.997422: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:00:01.997474: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:00:02.002166: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:00:02.002678: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 07:00:02.040383: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:00:02.040516: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:00:02.041919: High export rate found rates in range 99p to -99p
2026-08-17 07:00:02.071894: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:00:02.072039: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:00:02.072108: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:00:02.090208: Battery level now 12.32kWh, -1hr ago 12.8kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today 12.59p, rate_forward 6.87p
2026-08-17 07:00:02.090611: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 0.42p, import 0.42p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:00:02.142410: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:00:02.142549: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:00:02.227549: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:00:02.254102: Today's load divergence 97.4%, in-day adjustment 76.87%, damping 0.95x, yesterday 68.37% today 97.53% blend 70.83%
2026-08-17 07:00:02.254212: Today's predicted so far 4.55kWh with 0.0kWh car/iBoost excluded, 3.45kWh import ignored, and 4.55kWh forecast extra.
2026-08-17 07:00:02.254246: Today's actual load so far 4.14kWh with 0.0kWh car/iBoost excluded, and 3.45kWh import ignored.
2026-08-17 07:00:02.291337: Inverter 0: Type SK Sunsynk
2026-08-17 07:00:02.291434: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:00:02.291622: Reserve min: 7%, battery_min: 7%
2026-08-17 07:00:02.291692: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:00:02.291960: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 387W, current battery voltage 51.2V, grid power -55W, load power 445W, PV Power 0W
2026-08-17 07:00:02.292163: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:00:02.292278: Inverter 0 scheduled charge enable is True
2026-08-17 07:00:02.292325: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:00:02.292417: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:00:02.292535: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:00:02.292573: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:00:02.292611: Inverter 0 scheduled discharge enable is False
2026-08-17 07:00:02.292735: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:00:02.292772: Inverter 0 discharge windows currently []
2026-08-17 07:00:02.292795: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:00:02.292814: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:00:02.292836: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:00:02.367672: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:00:02.367790: Plan was last updated on 2026-08-17 06:55:00+01:00 and is now 5.0 minutes old
2026-08-17 07:00:02.368064: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:00:02.368127: Best export window [ ]
2026-08-17 07:00:02.368926: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:00:02.372936: Load divergence over 8.0 hours mean 752.46W, min 262.2W, max 1983.0W, std dev 406.4W, divergence 27.0%
2026-08-17 07:00:02.394639: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:00:02.394810: LoadML is_calculating False
2026-08-17 07:00:02.394891: Creating pool of 12 processes to match your CPU count
2026-08-17 07:00:02.538744: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 558.26p, metric_keep 279.53kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.88kWh, PV 0.0kWh
2026-08-17 07:00:02.692154: Battery has 22.83 hours left - now at 12.32kWh
2026-08-17 07:00:02.734470: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 581.59p, metric_keep 280.32kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 30.06kWh, PV 0.0kWh
2026-08-17 07:00:02.818962: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 288.23p, metric_keep 3.58kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.06kWh, PV 0.0kWh
2026-08-17 07:00:02.907892: predict best end_record 08-18 23:35:00, final soc 2.31kWh, metric 283.33p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.88kWh, PV 0.0kWh
2026-08-17 07:00:02.907997: Saving plan best values to HA entities
2026-08-17 07:00:03.114170: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:00:03.120070: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:00:03.126281: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.08kWh, house 0.0kWh, export 0.0kWh, metric 283.33p, metric10 288.23p
2026-08-17 07:00:03.206930: Marginal costs baseline metric (no standing charge): 236.6956
2026-08-17 07:00:03.523037: Marginal energy costs matrix computed: min=9.23 max=27.72
2026-08-17 07:00:03.625343: Rate array import [{'start': 420, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 420, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:00:03.626164: - Your estimated bill for today is £1.23 and tomorrow is £1.80
2026-08-17 07:00:03.626226: - Import rates are very expensive (33.8p) for the next 30 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:00:03.626251: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 07:00:03.626271: - For the next 48 hours there will be no solar generation.
2026-08-17 07:00:03.626288: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 07:00:03.626306: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 07:00:03.626324:
2026-08-17 07:00:03.708901: Plan calculation took 1.34 seconds
2026-08-17 07:00:03.712590: No high rate period found
2026-08-17 07:00:03.781524: Import threshold used for optimisation was 8.0p
2026-08-17 07:00:03.840685: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:00:03.848924: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 07:00:03.849181: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 07:00:00 charge start time 08-18 00:00:00)
2026-08-17 07:00:03.849283: No export window planned
2026-08-17 07:00:03.849576: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:00:03.849674: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 07:00:03.850054: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 07:00:03.850404: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 07:00:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 07:00:03.850519: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:00:03.850623: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:00:03.850791: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.850874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.850939: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.850985: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851043: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851159: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851280: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851405: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:00:03.851525: Inverter 0 count register writes 0
2026-08-17 07:00:03.874853: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 07:00:03.882810: Total inverter register writes now 859
2026-08-17 07:00:03.930913: Info: Completed run status Demand
2026-08-17 07:00:03.939881: Info: record_status Demand
2026-08-17 07:00:03.948488: Saved current settings to /config/predbat_config.json
2026-08-17 07:00:03.948875: Compare, best tariff: current metric 104.68p
2026-08-17 07:00:34.079729: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:00:34.080069: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:00:34.080167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:00:34.080328: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:00:34.080373: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:00:34.080396: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:00:34.080414: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:02:34.311492: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:02:34.311870: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:02:34.311930: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:02:34.312157: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:02:34.312212: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:02:34.312242: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:02:34.312267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:04:48.577267: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:04:48.577534: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:04:48.577602: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:04:48.577759: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:04:48.577799: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:04:48.577821: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:04:48.577839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:05:00.671027: --------------- PredBat - update at 2026-08-17 07:05:00+01:00 with clock skew 0 minutes, minutes now 425
2026-08-17 07:05:00.671844: Saved current settings to /config/predbat_config.json
2026-08-17 07:05:00.672009: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 07:05:00.672184: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:05:00.672291: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:05:00.694086: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:05:00.694231: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:05:00.694405: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:05:00.694997: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:05:00.695132: Predbat mode is set to Control charge & discharge
2026-08-17 07:05:00.927760: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:05:00.927943: Using load_power data to fill gaps in load_today data
2026-08-17 07:05:01.738897: Processing 721 30-minute periods for power integration
2026-08-17 07:05:01.921739: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:05:01.921918: Car charging hold False, threshold 6.0kWh
2026-08-17 07:05:01.921990: Current data so far today: load 4.2kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:05:01.940280: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:05:01.940412: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:05:01.941380: Standing charge is set to 46.63p
2026-08-17 07:05:02.092901: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.093272: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.093577: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.093834: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.094085: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.094332: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.094597: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.094840: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.095073: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.095304: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.095556: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.095796: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.096027: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.096254: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:05:02.096574: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:05:02.096646: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:05:02.102688: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:05:02.103204: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 07:05:02.147227: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:05:02.147356: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:05:02.148602: High export rate found rates in range 99p to -99p
2026-08-17 07:05:02.177713: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:05:02.178184: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:05:02.178274: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:05:02.193172: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 12.59p, rate_forward 6.87p
2026-08-17 07:05:02.193595: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:05:02.251132: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:05:02.251270: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:05:02.332035: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:05:02.356637: Today's load divergence 97.27%, in-day adjustment 76.94%, damping 0.95x, yesterday 68.37% today 97.41% blend 70.49%
2026-08-17 07:05:02.356740: Today's predicted so far 4.64kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.64kWh forecast extra.
2026-08-17 07:05:02.356768: Today's actual load so far 4.21kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 07:05:02.399957: Inverter 0: Type SK Sunsynk
2026-08-17 07:05:02.400057: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:05:02.400316: Reserve min: 7%, battery_min: 7%
2026-08-17 07:05:02.400429: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:05:02.400897: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -55W, load power 325W, PV Power 0W
2026-08-17 07:05:02.401166: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:05:02.401302: Inverter 0 scheduled charge enable is True
2026-08-17 07:05:02.401360: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:05:02.401513: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:05:02.401696: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:05:02.401758: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:05:02.401824: Inverter 0 scheduled discharge enable is False
2026-08-17 07:05:02.402000: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:05:02.402046: Inverter 0 discharge windows currently []
2026-08-17 07:05:02.402078: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:05:02.402120: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:05:02.402152: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:05:02.470547: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:05:02.470663: Plan was last updated on 2026-08-17 06:55:00+01:00 and is now 10.0 minutes old
2026-08-17 07:05:02.470900: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:05:02.470972: Best export window [ ]
2026-08-17 07:05:02.471750: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:05:02.475019: Load divergence over 8.0 hours mean 755.98W, min 271.2W, max 1926.0W, std dev 400.24W, divergence 26.47%
2026-08-17 07:05:02.495892: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:05:02.496031: LoadML is_calculating False
2026-08-17 07:05:02.496099: Creating pool of 12 processes to match your CPU count
2026-08-17 07:05:02.627793: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 558.49p, metric_keep 279.44kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 29.02kWh, PV 0.0kWh
2026-08-17 07:05:02.781098: Battery has 22.75 hours left - now at 12.32kWh
2026-08-17 07:05:02.830741: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 581.71p, metric_keep 280.08kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 30.2kWh, PV 0.0kWh
2026-08-17 07:05:02.923237: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 291.75p, metric_keep 3.58kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.2kWh, PV 0.0kWh
2026-08-17 07:05:03.008594: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 287.37p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.02kWh, PV 0.0kWh
2026-08-17 07:05:03.008694: Saving plan best values to HA entities
2026-08-17 07:05:03.199977: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:05:03.205687: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 07:05:03.211209: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.58kWh, house 0.0kWh, export 0.0kWh, metric 287.37p, metric10 291.75p
2026-08-17 07:05:03.296033: Marginal costs baseline metric (no standing charge): 240.7371
2026-08-17 07:05:03.587013: Marginal energy costs matrix computed: min=9.23 max=27.64
2026-08-17 07:05:03.673385: Rate array import [{'start': 425, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 425, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:05:03.674234: - Your estimated bill for today is £1.23 and tomorrow is £1.80
2026-08-17 07:05:03.674283: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:05:03.674306: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 07:05:03.674324: - For the next 48 hours there will be no solar generation.
2026-08-17 07:05:03.674341: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 07:05:03.674363: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 07:05:03.674381:
2026-08-17 07:05:03.747601: Plan calculation took 1.28 seconds
2026-08-17 07:05:03.752493: No high rate period found
2026-08-17 07:05:03.818071: Import threshold used for optimisation was 8.0p
2026-08-17 07:05:03.869249: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:05:03.876162: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 07:05:03.876286: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 07:05:00 charge start time 08-18 00:00:00)
2026-08-17 07:05:03.876343: No export window planned
2026-08-17 07:05:03.876550: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:05:03.876602: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 07:05:03.876817: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 07:05:03.877088: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 07:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 07:05:03.877159: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:05:03.877217: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:05:03.877312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877344: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877372: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877399: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877421: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877630: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:03.877693: Inverter 0 count register writes 0
2026-08-17 07:05:03.898289: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 07:05:03.898491: Recompute is saving previous plan...
2026-08-17 07:05:03.899434: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 07:05:03.899522: Best export window [ ]
2026-08-17 07:05:03.900358: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:05:03.903615: Load divergence over 8.0 hours mean 755.98W, min 271.2W, max 1926.0W, std dev 400.24W, divergence 26.47%
2026-08-17 07:05:03.918827: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:05:03.918975: LoadML is_calculating False
2026-08-17 07:05:03.919069: Creating pool of 12 processes to match your CPU count
2026-08-17 07:05:04.008665: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 07:05:04.009535: Optimise levels pass started at 2026-08-17 07:05:04
2026-08-17 07:05:04.009589: Optimise all windows, total charge 25 export 1
2026-08-17 07:05:05.087971: >> Region optimisation pass width 960 gives best_metric 281.0p, best_cost 278.93p, best_cycle 38.81kWh, best_import 22.36kWh
2026-08-17 07:05:05.228315: >> Region optimisation pass width 480 gives best_metric 281.0p, best_cost 278.93p, best_cycle 38.81kWh, best_import 22.36kWh
2026-08-17 07:05:05.746048: >> Region optimisation pass width 240 gives best_metric 275.0p, best_cost 279.96p, best_cycle 40.61kWh, best_import 22.48kWh
2026-08-17 07:05:06.665659: >> Region optimisation pass width 120 gives best_metric 269.98p, best_cost 282.58p, best_cycle 42.44kWh, best_import 22.81kWh
2026-08-17 07:05:06.665935: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 07:05:06.666019: Optimise levels pass ended at 2026-08-17 07:05:06, duration 2.7 seconds tried 66 combinations
2026-08-17 07:05:06.666089: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 269.98p, best_keep 0.35kWh, best_cycle 42.44kWh, best_carbon 0kg, best_import 22.81kWh
2026-08-17 07:05:06.687034: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 07:05:09.465274: Tweak plan optimisation started metric 221.82p, cost 234.34p
2026-08-17 07:05:09.789810: Tweak optimisation finished metric 221.82p, cost 234.34p, metric_keep 0kWh, cycle 34.48kWh, carbon 0kg, import 16.78kWh, changed 8 window(s)
2026-08-17 07:05:09.813503: Swap charge optimisation started metric 221.82p, cost 234.34p, min_improvement_swap 0.1p
2026-08-17 07:05:10.754007: Swap charge optimisation finished metric 221.82p, cost 234.34p
2026-08-17 07:05:10.863722: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 94%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:05:10.864240: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:05:10.864791: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:05:10.865234: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:05:10.905008: Previous plan best metric is 220.73 (cost 232.45) and new plan best metric is 221.82 (cost 234.34)
2026-08-17 07:05:10.905303: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 07:05:10.905556: Plan valid is now true after recompute was False
2026-08-17 07:05:10.937350: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 556.87p, metric_keep 278.85kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.82kWh, PV 0.0kWh
2026-08-17 07:05:11.078201: Battery has 22.75 hours left - now at 12.32kWh
2026-08-17 07:05:11.125269: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 580.02p, metric_keep 279.49kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.99kWh, PV 0.0kWh
2026-08-17 07:05:11.194931: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 284.49p, metric_keep 3.46kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.99kWh, PV 0.0kWh
2026-08-17 07:05:11.267062: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 279.08p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.82kWh, PV 0.0kWh
2026-08-17 07:05:11.267146: Saving plan best values to HA entities
2026-08-17 07:05:11.443937: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:05:11.448853: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 07:05:11.453687: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.55kWh, house 0.0kWh, export 0.0kWh, metric 279.08p, metric10 284.49p
2026-08-17 07:05:11.525319: Marginal costs baseline metric (no standing charge): 232.4488
2026-08-17 07:05:11.811628: Marginal energy costs matrix computed: min=9.23 max=27.64
2026-08-17 07:05:11.890725: Rate array import [{'start': 425, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 425, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:05:11.891554: - Your estimated bill for today is £1.23 and tomorrow is £1.80
2026-08-17 07:05:11.891602: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:05:11.891644: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 07:05:11.891663: - For the next 48 hours there will be no solar generation.
2026-08-17 07:05:11.891688: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 07:05:11.891705: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 07:05:11.891724:
2026-08-17 07:05:11.957965: Plan calculation took 8.06 seconds
2026-08-17 07:05:11.958311: Inverter 0: Type SK Sunsynk
2026-08-17 07:05:11.958361: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:05:11.958634: Reserve min: 7%, battery_min: 7%
2026-08-17 07:05:11.958715: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:05:11.959070: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 266W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-17 07:05:11.959311: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:05:11.959434: Inverter 0 scheduled charge enable is True
2026-08-17 07:05:11.959480: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:05:11.959607: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:05:11.959732: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:05:11.959772: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:05:11.959811: Inverter 0 scheduled discharge enable is False
2026-08-17 07:05:11.959945: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:05:11.959983: Inverter 0 discharge windows currently []
2026-08-17 07:05:11.960006: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:05:11.960025: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:05:11.960046: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:05:12.015892: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 07:05:12.016034: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 07:05:00 charge start time 08-18 00:00:00)
2026-08-17 07:05:12.016068: No export window planned
2026-08-17 07:05:12.016203: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:05:12.016273: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 07:05:12.016518: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 07:05:12.016806: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 07:05:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 07:05:12.016873: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:05:12.016933: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:05:12.017070: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017120: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017186: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017235: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017262: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:05:12.017565: Inverter 0 count register writes 0
2026-08-17 07:05:12.039283: Total inverter register writes now 859
2026-08-17 07:05:12.074039: Info: Completed run status Demand
2026-08-17 07:05:12.081328: Info: record_status Demand
2026-08-17 07:05:12.089261: Saved current settings to /config/predbat_config.json
2026-08-17 07:05:12.089593: Compare, best tariff: current metric 104.68p
2026-08-17 07:05:49.211818: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:05:49.212095: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:05:49.212161: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:05:49.212337: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:05:49.212385: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:05:49.212406: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:05:49.212424: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:08:03.456117: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:08:03.456442: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:08:03.456528: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:08:03.456692: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:08:03.456750: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:08:03.456770: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:08:03.456787: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:10:00.715656: --------------- PredBat - update at 2026-08-17 07:10:00+01:00 with clock skew 0 minutes, minutes now 430
2026-08-17 07:10:00.716645: Saved current settings to /config/predbat_config.json
2026-08-17 07:10:00.716845: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 07:10:00.717079: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:10:00.717262: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:10:00.738519: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:10:00.738660: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:10:00.738929: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:10:00.739618: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:10:00.739773: Predbat mode is set to Control charge & discharge
2026-08-17 07:10:00.908641: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:10:00.908788: Using load_power data to fill gaps in load_today data
2026-08-17 07:10:01.594455: Processing 721 30-minute periods for power integration
2026-08-17 07:10:01.750581: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:10:01.750707: Car charging hold False, threshold 6.0kWh
2026-08-17 07:10:01.750747: Current data so far today: load 4.25kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:10:01.764666: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:10:01.764769: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:10:01.765558: Standing charge is set to 46.63p
2026-08-17 07:10:01.855159: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.855420: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.855606: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.855764: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.855932: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.856083: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.856262: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.856417: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.856558: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.856695: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.856841: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.857035: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.857172: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.857311: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:10:01.857469: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:10:01.857520: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:10:01.861942: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:10:01.862267: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 07:10:01.897385: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:10:01.897503: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:10:01.898512: High export rate found rates in range 99p to -99p
2026-08-17 07:10:01.921161: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:10:01.921263: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:10:01.921307: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:10:01.935311: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 12.59p, rate_forward 6.87p
2026-08-17 07:10:01.935690: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:10:02.000432: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:10:02.000601: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:10:02.080734: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:10:02.106709: Today's load divergence 97.51%, in-day adjustment 77.11%, damping 0.95x, yesterday 68.37% today 97.63% blend 70.14%
2026-08-17 07:10:02.106824: Today's predicted so far 4.63kWh with 0.0kWh car/iBoost excluded, 3.33kWh import ignored, and 4.63kWh forecast extra.
2026-08-17 07:10:02.106892: Today's actual load so far 4.24kWh with 0.0kWh car/iBoost excluded, and 3.33kWh import ignored.
2026-08-17 07:10:02.146656: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.7, 'source': 'SMART'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]]
2026-08-17 07:10:02.147327: Sensor changes require a replan, will recompute the plan
2026-08-17 07:10:02.147544: Inverter 0: Type SK Sunsynk
2026-08-17 07:10:02.147602: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:10:02.147815: Reserve min: 7%, battery_min: 7%
2026-08-17 07:10:02.147920: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:10:02.148247: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 339W, current battery voltage 51.2V, grid power -55W, load power 398W, PV Power 0W
2026-08-17 07:10:02.148479: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:10:02.148604: Inverter 0 scheduled charge enable is True
2026-08-17 07:10:02.148665: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:10:02.148813: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:10:02.149034: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:10:02.149083: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:10:02.149172: Inverter 0 scheduled discharge enable is False
2026-08-17 07:10:02.149362: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:10:02.149407: Inverter 0 discharge windows currently []
2026-08-17 07:10:02.149437: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:10:02.149477: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:10:02.149518: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:10:02.216776: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:10:02.216866: Will recompute the plan as it is invalid
2026-08-17 07:10:02.217011: Recompute is saving previous plan...
2026-08-17 07:10:02.217964: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 07:10:02.218014: Best export window [ ]
2026-08-17 07:10:02.218903: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:10:02.222022: Load divergence over 8.0 hours mean 757.55W, min 292.2W, max 1707.6W, std dev 400.16W, divergence 26.41%
2026-08-17 07:10:02.241363: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:10:02.241496: LoadML is_calculating False
2026-08-17 07:10:02.241570: Creating pool of 12 processes to match your CPU count
2026-08-17 07:10:02.343686: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 07:10:02.344712: Optimise levels pass started at 2026-08-17 07:10:02
2026-08-17 07:10:02.344779: Optimise all windows, total charge 25 export 1
2026-08-17 07:10:03.424029: >> Region optimisation pass width 960 gives best_metric 281.19p, best_cost 278.72p, best_cycle 38.84kWh, best_import 22.33kWh
2026-08-17 07:10:03.579251: >> Region optimisation pass width 480 gives best_metric 281.19p, best_cost 278.72p, best_cycle 38.84kWh, best_import 22.33kWh
2026-08-17 07:10:04.104981: >> Region optimisation pass width 240 gives best_metric 275.19p, best_cost 279.75p, best_cycle 40.65kWh, best_import 22.46kWh
2026-08-17 07:10:04.933483: >> Region optimisation pass width 120 gives best_metric 270.04p, best_cost 282.39p, best_cycle 42.48kWh, best_import 22.79kWh
2026-08-17 07:10:04.933724: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 13
2026-08-17 07:10:04.933879: Optimise levels pass ended at 2026-08-17 07:10:04, duration 2.6 seconds tried 66 combinations
2026-08-17 07:10:04.933997: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 270.04p, best_keep 0.35kWh, best_cycle 42.48kWh, best_carbon 0kg, best_import 22.79kWh
2026-08-17 07:10:04.955056: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 07:10:07.679363: Tweak plan optimisation started metric 221.69p, cost 234.18p
2026-08-17 07:10:08.010924: Tweak optimisation finished metric 221.69p, cost 234.18p, metric_keep 0kWh, cycle 34.48kWh, carbon 0kg, import 16.76kWh, changed 8 window(s)
2026-08-17 07:10:08.032381: Swap charge optimisation started metric 221.69p, cost 234.18p, min_improvement_swap 0.1p
2026-08-17 07:10:08.946133: Swap charge optimisation finished metric 221.69p, cost 234.18p
2026-08-17 07:10:09.065296: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 94%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:10:09.066186: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:10:09.066686: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:10:09.066966: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 03:00:00 @ 8.0p 94%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:10:09.112918: Previous plan best metric is 220.6 (cost 232.32) and new plan best metric is 221.69 (cost 234.18)
2026-08-17 07:10:09.113206: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 07:10:09.113393: Plan valid is now true after recompute was False
2026-08-17 07:10:09.144813: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 556.54p, metric_keep 278.66kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.85kWh, PV 0.0kWh
2026-08-17 07:10:09.279236: Battery has 22.67 hours left - now at 12.32kWh
2026-08-17 07:10:09.325960: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 579.76p, metric_keep 279.35kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 30.02kWh, PV 0.0kWh
2026-08-17 07:10:09.416217: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 284.35p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.02kWh, PV 0.0kWh
2026-08-17 07:10:09.530741: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 278.96p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.85kWh, PV 0.0kWh
2026-08-17 07:10:09.530922: Saving plan best values to HA entities
2026-08-17 07:10:09.723391: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:10:09.729125: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 07:10:09.734949: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.53kWh, house 0.0kWh, export 0.0kWh, metric 278.96p, metric10 284.35p
2026-08-17 07:10:09.814904: Marginal costs baseline metric (no standing charge): 232.3213
2026-08-17 07:10:10.104614: Marginal energy costs matrix computed: min=9.23 max=27.64
2026-08-17 07:10:10.185828: Rate array import [{'start': 430, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 430, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:10:10.186589: - Your estimated bill for today is £1.23 and tomorrow is £1.80
2026-08-17 07:10:10.186635: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:10:10.186657: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 07:10:10.186675: - For the next 48 hours there will be no solar generation.
2026-08-17 07:10:10.186692: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 07:10:10.186713: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 07:10:10.186731:
2026-08-17 07:10:10.251443: Plan calculation took 8.03 seconds
2026-08-17 07:10:10.256284: Saved plan to storage
2026-08-17 07:10:10.259707: No high rate period found
2026-08-17 07:10:10.309561: Import threshold used for optimisation was 8.0p
2026-08-17 07:10:10.358002: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:10:10.363599: Inverter 0: Type SK Sunsynk
2026-08-17 07:10:10.363665: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:10:10.363919: Reserve min: 7%, battery_min: 7%
2026-08-17 07:10:10.363988: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:10:10.364284: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 332W, current battery voltage 51.2V, grid power -54W, load power 390W, PV Power 0W
2026-08-17 07:10:10.364493: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:10:10.364585: Inverter 0 scheduled charge enable is True
2026-08-17 07:10:10.364626: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:10:10.364705: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:10:10.364815: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:10:10.364860: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:10:10.364893: Inverter 0 scheduled discharge enable is False
2026-08-17 07:10:10.365032: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:10:10.365069: Inverter 0 discharge windows currently []
2026-08-17 07:10:10.365088: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:10:10.365104: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:10:10.365122: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:10:10.457552: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 07:10:10.457696: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 07:10:00 charge start time 08-18 00:00:00)
2026-08-17 07:10:10.457732: No export window planned
2026-08-17 07:10:10.457893: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:10:10.458119: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 07:10:10.458447: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 07:10:10.459005: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 07:10:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 07:10:10.459073: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:10:10.459136: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:10:10.459297: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459393: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459428: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459481: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459536: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459582: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459660: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.459947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.460024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.460089: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.460145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:10:10.460176: Inverter 0 count register writes 0
2026-08-17 07:10:10.484282: Total inverter register writes now 859
2026-08-17 07:10:10.623489: Info: Completed run status Demand
2026-08-17 07:10:10.629804: Info: record_status Demand
2026-08-17 07:10:10.637577: Saved current settings to /config/predbat_config.json
2026-08-17 07:10:10.637925: Compare, best tariff: current metric 104.68p
2026-08-17 07:10:48.784336: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:10:48.784615: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:10:48.784659: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:10:48.784819: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:10:48.784861: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:10:48.784884: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:10:48.784902: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:12:49.005853: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:12:49.006136: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:12:49.006173: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:12:49.006370: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:12:49.006412: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:12:49.006434: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:12:49.006451: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:14:49.237026: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:14:49.237320: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:14:49.237357: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:14:49.237499: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:14:49.237581: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:14:49.237604: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:14:49.237623: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:15:00.332059: --------------- PredBat - update at 2026-08-17 07:15:00+01:00 with clock skew 0 minutes, minutes now 435
2026-08-17 07:15:00.332993: Saved current settings to /config/predbat_config.json
2026-08-17 07:15:00.333149: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-17 07:15:00.333262: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:15:00.333435: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:15:00.352426: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:15:00.352569: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:15:00.352741: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:15:00.353308: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:15:00.353432: Predbat mode is set to Control charge & discharge
2026-08-17 07:15:00.572622: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:15:00.572763: Using load_power data to fill gaps in load_today data
2026-08-17 07:15:01.387283: Processing 721 30-minute periods for power integration
2026-08-17 07:15:01.579222: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:15:01.579353: Car charging hold False, threshold 6.0kWh
2026-08-17 07:15:01.579394: Current data so far today: load 4.3kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:15:01.592804: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:15:01.592903: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:15:01.593595: Standing charge is set to 46.63p
2026-08-17 07:15:01.680262: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.680522: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.680771: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.681081: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.681269: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.681446: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.681624: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.681796: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.681985: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.682155: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.682318: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.682489: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.682658: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.682825: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:15:01.683046: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:15:01.683108: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:15:01.688515: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:15:01.688969: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 07:15:01.727031: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:15:01.727148: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:15:01.728184: High export rate found rates in range 99p to -99p
2026-08-17 07:15:01.751719: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:15:01.751808: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:15:01.751851: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:15:01.765733: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 12.59p, rate_forward 6.87p
2026-08-17 07:15:01.766129: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:15:01.814602: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:15:01.814742: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:15:01.893596: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:15:01.919550: Today's load divergence 97.8%, in-day adjustment 77.29%, damping 0.95x, yesterday 68.37% today 97.91% blend 69.79%
2026-08-17 07:15:01.919657: Today's predicted so far 4.61kWh with 0.0kWh car/iBoost excluded, 3.31kWh import ignored, and 4.61kWh forecast extra.
2026-08-17 07:15:01.919688: Today's actual load so far 4.26kWh with 0.0kWh car/iBoost excluded, and 3.31kWh import ignored.
2026-08-17 07:15:01.955787: Inverter 0: Type SK Sunsynk
2026-08-17 07:15:01.955878: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:15:01.956082: Reserve min: 7%, battery_min: 7%
2026-08-17 07:15:01.956153: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:15:01.956420: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 331W, current battery voltage 51.2V, grid power -55W, load power 393W, PV Power 0W
2026-08-17 07:15:01.956579: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:15:01.956669: Inverter 0 scheduled charge enable is True
2026-08-17 07:15:01.956710: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:15:01.956796: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:15:01.956927: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:15:01.957006: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:15:01.957050: Inverter 0 scheduled discharge enable is False
2026-08-17 07:15:01.957190: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:15:01.957228: Inverter 0 discharge windows currently []
2026-08-17 07:15:01.957251: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:15:01.957269: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:15:01.957290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:15:02.013320: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:15:02.013421: Plan was last updated on 2026-08-17 07:10:00+01:00 and is now 5.0 minutes old
2026-08-17 07:15:02.013602: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:15:02.013656: Best export window [ ]
2026-08-17 07:15:02.014426: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:15:02.017035: Load divergence over 8.0 hours mean 758.76W, min 288.0W, max 1788.0W, std dev 410.29W, divergence 27.04%
2026-08-17 07:15:02.033312: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:15:02.033425: LoadML is_calculating False
2026-08-17 07:15:02.033483: Creating pool of 12 processes to match your CPU count
2026-08-17 07:15:02.153193: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 557.5p, metric_keep 278.76kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 29.0kWh, PV 0.0kWh
2026-08-17 07:15:02.277232: Battery has 22.67 hours left - now at 12.32kWh
2026-08-17 07:15:02.317554: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 582.94p, metric_keep 281.61kWh, min_soc 1.12kWh @ 08-18 05:45:00, load 30.18kWh, PV 0.0kWh
2026-08-17 07:15:02.390269: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 287.84p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.18kWh, PV 0.0kWh
2026-08-17 07:15:02.467347: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 282.94p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.0kWh, PV 0.0kWh
2026-08-17 07:15:02.467906: Saving plan best values to HA entities
2026-08-17 07:15:02.629931: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:15:02.635093: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:15:02.640627: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.03kWh, house 0.0kWh, export 0.0kWh, metric 282.94p, metric10 287.84p
2026-08-17 07:15:02.713830: Marginal costs baseline metric (no standing charge): 236.3073
2026-08-17 07:15:02.945843: Marginal energy costs matrix computed: min=9.23 max=27.63
2026-08-17 07:15:03.019710: Rate array import [{'start': 435, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 435, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:15:03.020389: - Your estimated bill for today is £1.23 and tomorrow is £1.80
2026-08-17 07:15:03.020428: - Import rates are very expensive (33.8p) for the next 15 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:15:03.020448: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 07:15:03.020462: - For the next 48 hours there will be no solar generation.
2026-08-17 07:15:03.020476: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 07:15:03.020490: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 07:15:03.020505:
2026-08-17 07:15:03.081260: Plan calculation took 1.07 seconds
2026-08-17 07:15:03.084411: No high rate period found
2026-08-17 07:15:03.148255: Import threshold used for optimisation was 8.0p
2026-08-17 07:15:03.198436: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:15:03.205076: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 07:15:03.205256: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 07:15:00 charge start time 08-18 00:00:00)
2026-08-17 07:15:03.205308: No export window planned
2026-08-17 07:15:03.205556: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:15:03.205621: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 07:15:03.205961: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 07:15:03.206236: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 07:15:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 07:15:03.206320: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:15:03.206428: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:15:03.206595: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.206676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.206739: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.206786: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.206847: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.206987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207300: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:15:03.207353: Inverter 0 count register writes 0
2026-08-17 07:15:03.225474: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 07:15:03.231294: Total inverter register writes now 859
2026-08-17 07:15:03.268533: Info: Completed run status Demand
2026-08-17 07:15:03.274177: Info: record_status Demand
2026-08-17 07:15:03.280422: Saved current settings to /config/predbat_config.json
2026-08-17 07:15:03.280743: Compare, best tariff: current metric 104.68p
2026-08-17 07:15:14.846411: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 07:15:15.017343: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 07:15:33.390413: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:15:33.390702: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:15:33.390750: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:15:33.390925: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:15:33.390970: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:15:33.390989: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:15:33.391009: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:16:57.118643: Info: HAHistory: Pruning history data started.
2026-08-17 07:16:57.122105: Info: HAHistory: Pruning history data completed.
2026-08-17 07:17:33.611302: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:17:33.611597: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:17:33.611671: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:17:33.611824: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:17:33.611868: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:17:33.611890: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:17:33.611908: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:19:33.827144: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:19:33.827440: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:19:33.827486: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:19:33.827623: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:19:33.827662: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:19:33.827683: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:19:33.827701: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:20:00.944465: --------------- PredBat - update at 2026-08-17 07:20:00+01:00 with clock skew 0 minutes, minutes now 440
2026-08-17 07:20:00.945468: Saved current settings to /config/predbat_config.json
2026-08-17 07:20:01.148514: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:20:01.148638: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:20:01.168366: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:20:01.168513: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:20:01.168697: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:20:01.169442: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:20:01.169626: Predbat mode is set to Control charge & discharge
2026-08-17 07:20:01.336538: Found 21602 load_today datapoints going back 27 days
2026-08-17 07:20:01.336673: Using load_power data to fill gaps in load_today data
2026-08-17 07:20:02.020764: Processing 721 30-minute periods for power integration
2026-08-17 07:20:02.181750: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:20:02.181895: Car charging hold False, threshold 6.0kWh
2026-08-17 07:20:02.181939: Current data so far today: load 4.2kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:20:02.195259: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:20:02.195344: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:20:02.195953: Standing charge is set to 46.63p
2026-08-17 07:20:02.287745: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.287970: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.288126: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.288322: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.288467: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.288607: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.288749: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.288886: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.289079: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.289247: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.289418: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.289555: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.289688: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.289822: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:20:02.289954: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:20:02.290003: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:20:02.294287: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:20:02.294623: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 07:20:02.328877: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:20:02.329020: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:20:02.330202: High export rate found rates in range 99p to -99p
2026-08-17 07:20:02.353548: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:20:02.353643: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:20:02.353685: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:20:02.366536: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 12.59p, rate_forward 6.87p
2026-08-17 07:20:02.366941: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:20:02.411011: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:20:02.411131: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:20:02.479024: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:20:02.499408: Today's load divergence 97.13%, in-day adjustment 77.2%, damping 0.95x, yesterday 68.37% today 97.28% blend 69.44%
2026-08-17 07:20:02.499489: Today's predicted so far 4.62kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.62kWh forecast extra.
2026-08-17 07:20:02.499516: Today's actual load so far 4.18kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 07:20:02.535568: Inverter 0: Type SK Sunsynk
2026-08-17 07:20:02.535661: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:20:02.535860: Reserve min: 7%, battery_min: 7%
2026-08-17 07:20:02.535940: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:20:02.536226: Inverter 0 SoC: 12.25kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 326W, current battery voltage 51.2V, grid power -54W, load power 385W, PV Power 0W
2026-08-17 07:20:02.536410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:20:02.536499: Inverter 0 scheduled charge enable is True
2026-08-17 07:20:02.536540: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:20:02.536634: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:20:02.536755: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:20:02.536792: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:20:02.536830: Inverter 0 scheduled discharge enable is False
2026-08-17 07:20:02.536994: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:20:02.537050: Inverter 0 discharge windows currently []
2026-08-17 07:20:02.537077: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:20:02.537096: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:20:02.537114: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:20:02.596209: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:20:02.596338: Plan was last updated on 2026-08-17 07:10:00+01:00 and is now 10.0 minutes old
2026-08-17 07:20:02.596565: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:20:02.596607: Best export window [ ]
2026-08-17 07:20:02.597547: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:20:02.600648: Load divergence over 8.0 hours mean 760.36W, min 292.2W, max 1896.0W, std dev 413.21W, divergence 27.17%
2026-08-17 07:20:02.617075: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:20:02.617211: LoadML is_calculating False
2026-08-17 07:20:02.617280: Creating pool of 12 processes to match your CPU count
2026-08-17 07:20:02.726901: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 558.69p, metric_keep 279.57kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 28.94kWh, PV 0.0kWh
2026-08-17 07:20:02.851530: Battery has 22.5 hours left - now at 12.25kWh
2026-08-17 07:20:02.890987: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 581.83p, metric_keep 280.14kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 30.12kWh, PV 0.0kWh
2026-08-17 07:20:02.963945: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 291.62p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.12kWh, PV 0.0kWh
2026-08-17 07:20:03.065458: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 287.28p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.94kWh, PV 0.0kWh
2026-08-17 07:20:03.065550: Saving plan best values to HA entities
2026-08-17 07:20:03.224542: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:20:03.230012: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 07:20:03.235037: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 17.57kWh, house 0.0kWh, export 0.0kWh, metric 287.28p, metric10 291.62p
2026-08-17 07:20:03.303226: Marginal costs baseline metric (no standing charge): 240.6477
2026-08-17 07:20:03.543249: Marginal energy costs matrix computed: min=9.23 max=27.7
2026-08-17 07:20:03.625720: Rate array import [{'start': 440, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 440, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:20:03.626366: - Your estimated bill for today is £1.24 and tomorrow is £1.80
2026-08-17 07:20:03.626405: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:20:03.626424: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-17 07:20:03.626438: - For the next 48 hours there will be no solar generation.
2026-08-17 07:20:03.626452: - You will reach a minimum of 12% battery in 40 hours.
2026-08-17 07:20:03.626466: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-17 07:20:03.626479:
2026-08-17 07:20:03.683546: Plan calculation took 1.09 seconds
2026-08-17 07:20:03.686713: No high rate period found
2026-08-17 07:20:03.733412: Import threshold used for optimisation was 8.0p
2026-08-17 07:20:03.789071: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:20:03.794263: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 77%, target 100%
2026-08-17 07:20:03.794384: Inverter 0 leaving charge window as already set and more than set_window_minutes 30 away (now 08-17 07:20:00 charge start time 08-18 00:00:00)
2026-08-17 07:20:03.794412: No export window planned
2026-08-17 07:20:03.794557: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:20:03.794627: Adjust idle time, charge 00:00:00-05:30:00 discharge 00:00:00-00:00:00
2026-08-17 07:20:03.794846: Adjust demand (idle) time computed is 05:30:00-23:59:00
2026-08-17 07:20:03.795044: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 07:20:00 target set_soc_minutes 30 charge start time 08-18 00:00:00)
2026-08-17 07:20:03.795098: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:20:03.795176: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:20:03.795284: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795318: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795377: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795400: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795419: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795439: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795516: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795557: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:03.795631: Inverter 0 count register writes 0
2026-08-17 07:20:03.811749: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 07:20:03.811913: Recompute is saving previous plan...
2026-08-17 07:20:03.812752: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 07:20:03.812813: Best export window [ ]
2026-08-17 07:20:03.813531: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:20:03.816093: Load divergence over 8.0 hours mean 760.36W, min 292.2W, max 1896.0W, std dev 413.21W, divergence 27.17%
2026-08-17 07:20:03.829993: Calculating data from yesterday for savings calculation
2026-08-17 07:20:03.839809: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 07:20:03.880745: predict yesterday end_record 08-18 00:00:00, final soc 10.02kWh, metric 147.7p, metric_keep 0kWh, min_soc 7.69kWh @ 08-17 23:25:00, load 11.39kWh, PV 0.0kWh
2026-08-17 07:20:03.893877: predict yesterday10 end_record 08-18 00:00:00, final soc 9.63kWh, metric 144.37p, metric_keep 0kWh, min_soc 7.69kWh @ 08-17 23:25:00, load 11.39kWh, PV 0.0kWh
2026-08-17 07:20:03.914736: predict yesterday end_record 08-18 00:00:00, final soc 10.02kWh, metric 147.7p, metric_keep 0kWh, min_soc 7.69kWh @ 08-17 23:25:00, load 11.39kWh, PV 0.0kWh
2026-08-17 07:20:03.936685: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.69kWh, start_soc 9.96kWh, final_soc 10.02kWh and battery_value 68.84kWh
2026-08-17 07:20:04.001924: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 300.44p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.39kWh, PV 0.0kWh
2026-08-17 07:20:04.002092: Yesterday: No Battery/PV system cost predicted was £3.0 (adjusted £3.0) vs £3.17 (adjusted £2.5), saving £-0.17 (adjusted £0.5) with import 11.39kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 07:20:04.016008: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:20:04.016139: LoadML is_calculating False
2026-08-17 07:20:04.016213: Creating pool of 12 processes to match your CPU count
2026-08-17 07:20:04.092997: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 07:20:04.093917: Optimise levels pass started at 2026-08-17 07:20:04
2026-08-17 07:20:04.093971: Optimise all windows, total charge 25 export 1
2026-08-17 07:20:04.845838: >> Region optimisation pass width 960 gives best_metric 285.48p, best_cost 376.94p, best_cycle 46.05kWh, best_import 34.61kWh
2026-08-17 07:20:05.194674: >> Region optimisation pass width 480 gives best_metric 281.93p, best_cost 280.76p, best_cycle 38.8kWh, best_import 22.58kWh
2026-08-17 07:20:05.726749: >> Region optimisation pass width 240 gives best_metric 275.92p, best_cost 281.79p, best_cycle 40.6kWh, best_import 22.71kWh
2026-08-17 07:20:06.528496: >> Region optimisation pass width 120 gives best_metric 270.68p, best_cost 284.07p, best_cycle 41.97kWh, best_import 23.0kWh
2026-08-17 07:20:06.528727: Calculated end_record as 08-18 07:30:00 based on best_price 8.0p, next_charge_start 08-17 07:30:00, max_windows 13
2026-08-17 07:20:06.528809: Optimise levels pass ended at 2026-08-17 07:20:06, duration 2.4 seconds tried 72 combinations
2026-08-17 07:20:06.528941: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 270.68p, best_keep 0.34kWh, best_cycle 41.97kWh, best_carbon 0kg, best_import 23.0kWh
2026-08-17 07:20:06.548499: Starting detailed optimisation end_record 08-18 07:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [12.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 07:20:08.787904: Tweak plan optimisation started metric 124.65p, cost 137.69p
2026-08-17 07:20:09.088494: Tweak optimisation finished metric 124.65p, cost 137.69p, metric_keep 0kWh, cycle 16.77kWh, carbon 0kg, import 4.7kWh, changed 8 window(s)
2026-08-17 07:20:09.104743: Swap charge optimisation started metric 124.65p, cost 137.69p, min_improvement_swap 0.1p
2026-08-17 07:20:09.269321: Swap charge optimisation finished metric 124.65p, cost 137.69p
2026-08-17 07:20:09.306258: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:20:09.306587: Unclipped charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:20:09.306842: Unfiltered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:20:09.306982: Filtered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:20:09.335935: Previous plan best metric is 140.25 (cost 232.36) and new plan best metric is 124.65 (cost 137.69)
2026-08-17 07:20:09.336103: New plan metric is significantly better from previous plan, using new plan
2026-08-17 07:20:09.336133: Plan valid is now true after recompute was False
2026-08-17 07:20:09.360185: predict base end_record 08-18 07:30:00, final soc 1.12kWh, metric 192.38p, metric_keep 41.38kWh, min_soc 1.12kWh @ 08-18 05:50:00, load 17.94kWh, PV 0.0kWh
2026-08-17 07:20:09.484655: Battery has 22.5 hours left - now at 12.25kWh
2026-08-17 07:20:09.523924: predict base10 end_record 08-18 07:30:00, final soc 1.12kWh, metric 198.09p, metric_keep 41.94kWh, min_soc 1.12kWh @ 08-18 05:55:00, load 18.59kWh, PV 0.0kWh
2026-08-17 07:20:09.604789: predict best10 end_record 08-18 07:30:00, final soc 1.4kWh, metric 185.73p, metric_keep 6.63kWh, min_soc 1.4kWh @ 08-18 07:25:00, load 18.59kWh, PV 0.0kWh
2026-08-17 07:20:09.675477: predict best end_record 08-18 07:30:00, final soc 2.02kWh, metric 184.32p, metric_keep 0kWh, min_soc 2.02kWh @ 08-18 07:25:00, load 17.94kWh, PV 0.0kWh
2026-08-17 07:20:09.675556: Saving plan best values to HA entities
2026-08-17 07:20:09.822766: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:20:09.828768: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 07:20:09.835321: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.7kWh, house 0kWh, export 0.0kWh, metric 184.32p, metric10 185.73p
2026-08-17 07:20:09.907678: Marginal costs baseline metric (no standing charge): 137.6907
2026-08-17 07:20:10.133043: Marginal energy costs matrix computed: min=5.5 max=26.69
2026-08-17 07:20:10.202604: Rate array import [{'start': 440, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 440, 'end': 1890, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:20:10.203125: - Your estimated bill for today is £1.14 and tomorrow is £4.31
2026-08-17 07:20:10.203165: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:20:10.203183: - The battery is currently at 77% and is in eco mode for the next 10 minutes.
2026-08-17 07:20:10.203198: - For the next 48 hours there will be no solar generation.
2026-08-17 07:20:10.203212: - You will reach a minimum of 13% battery in 24 hours.
2026-08-17 07:20:10.203242: - Your next charge slot will be in 10 minutes where import rates will be cheap (8.0p) and your car will be charged with 0.93 kWh.
2026-08-17 07:20:10.203258:
2026-08-17 07:20:10.251232: Plan calculation took 6.44 seconds
2026-08-17 07:20:10.251655: Inverter 0: Type SK Sunsynk
2026-08-17 07:20:10.251702: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:20:10.251957: Reserve min: 7%, battery_min: 7%
2026-08-17 07:20:10.252039: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:20:10.252405: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 288W, current battery voltage 51.2V, grid power -54W, load power 348W, PV Power 0W
2026-08-17 07:20:10.252645: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:20:10.252751: Inverter 0 scheduled charge enable is True
2026-08-17 07:20:10.252804: Inverter 0 charge windows currently [{'start': 1440, 'end': 1770, 'average': 0}, {'start': 2880, 'end': 3210, 'average': 0}]
2026-08-17 07:20:10.252911: Inverter 0 Charge settings: 08-18 00:00:00-08-18 05:30:00, limit 7.0%, power 5.0kW
2026-08-17 07:20:10.253084: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:20:10.253132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:20:10.253191: Inverter 0 scheduled discharge enable is False
2026-08-17 07:20:10.253379: Inverter 0 idle time is 08-17 05:30:00-08-17 23:59:00
2026-08-17 07:20:10.253418: Inverter 0 discharge windows currently []
2026-08-17 07:20:10.253442: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:20:10.253461: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:20:10.253484: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:20:10.322616: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:20:10.322755: Inverter 0 configuring charge window now (now 08-17 07:20:00 target set_window_minutes 30 charge start time 08-17 07:30:00
2026-08-17 07:20:10.322905: IOG action latency: 0.0 seconds from slot start
2026-08-17 07:20:10.323054: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:20:10.323262: Adjust demand (idle) time computed is 05:30:00-07:30:00
2026-08-17 07:20:10.323341: Inverter 0 set new demand (idle) end time to 07:30:00 was 23:59:00
2026-08-17 07:20:15.329832: Inverter 0 write_and_poll_value: Wrote 07:30:00 to idle_end_time, successfully now 07:30:00
2026-08-17 07:20:20.338221: Inverter 0 write_and_poll_value: Wrote 07:30:00 to charge_start_time, successfully now 07:30:00
2026-08-17 07:20:25.347311: Inverter 0 write_and_poll_value: Wrote 08:00:00 to charge_end_time, successfully now 08:00:00
2026-08-17 07:20:25.347456: Inverter 0 Updated start and end charge window to 07:30:00 - 08:00:00 (old 00:00:00 - 05:30:00)
2026-08-17 07:20:25.347495: No export window planned
2026-08-17 07:20:25.347668: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:20:25.347733: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:20:25.347941: Adjust demand (idle) time computed is 05:30:00-07:30:00
2026-08-17 07:20:25.348121: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 07:20:25.348177: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:20:25.348290: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:20:25.348415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348455: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348541: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348596: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348622: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:20:25.348918: Inverter 0 count register writes 0
2026-08-17 07:20:25.372416: Total inverter register writes now 859
2026-08-17 07:20:25.405584: Info: Completed run status Demand
2026-08-17 07:20:25.411796: Info: record_status Demand
2026-08-17 07:20:25.418074: Saved current settings to /config/predbat_config.json
2026-08-17 07:20:25.418335: Compare, best tariff: current metric 104.68p
2026-08-17 07:21:03.529897: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:21:03.530189: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:21:03.530257: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:21:03.530403: Inverter 0 idle time is 08-17 05:30:00-08-17 07:30:00
2026-08-17 07:21:03.530435: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:21:03.530455: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:21:03.530472: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:22:13.720395: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 07:22:14.598273: Processing 1297 30-minute periods for power integration
2026-08-17 07:22:14.681754: ML Component: Car charging hold False, car energy reported load False
2026-08-17 07:22:14.762289: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:22:14.842235: ML Temperature data points: 48521
2026-08-17 07:22:15.057046: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 07:22:15.094413: ML Component: Data fetch completed, load data age 58.0 days, 16912 data points
2026-08-17 07:22:15.094570: ML Component: No training needed, model age is 1.49 hours
2026-08-17 07:22:15.094637: ML Component: Generating predictions load data age 58.0 days, 16912 data points
2026-08-17 07:22:15.231733: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0246 max_dow {0: 0.08534444444278877, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 07:22:22.634897: ML Component: Generated 576 predictions (total 29.23 kWh over 48h)
2026-08-17 07:22:22.676694: ML Component: Prediction cycle completed
2026-08-17 07:22:22.796902: ML Component: Saved 16912 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 07:23:04.289130: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:23:04.289553: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:23:04.289615: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:23:04.289865: Inverter 0 idle time is 08-17 05:30:00-08-17 07:30:00
2026-08-17 07:23:04.289921: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:23:04.290045: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:23:04.290081: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:25:00.510984: --------------- PredBat - update at 2026-08-17 07:25:00+01:00 with clock skew 0 minutes, minutes now 445
2026-08-17 07:25:00.511928: Saved current settings to /config/predbat_config.json
2026-08-17 07:25:00.512106: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 07:25:00.512318: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:25:00.512487: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:25:00.532816: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:25:00.532998: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:25:00.533176: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:25:00.533729: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:25:00.533892: Predbat mode is set to Control charge & discharge
2026-08-17 07:25:00.720116: Found 21602 load_today datapoints going back 27 days
2026-08-17 07:25:00.720256: Using load_power data to fill gaps in load_today data
2026-08-17 07:25:01.397785: Processing 721 30-minute periods for power integration
2026-08-17 07:25:01.553673: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:25:01.553819: Car charging hold False, threshold 6.0kWh
2026-08-17 07:25:01.553860: Current data so far today: load 4.2kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:25:01.567491: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:25:01.567584: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:25:01.568204: Standing charge is set to 46.63p
2026-08-17 07:25:01.647156: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.647378: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.647526: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.647684: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.647856: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.648019: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.648177: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.648317: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.648466: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.648621: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.648748: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.648915: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.649162: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.649306: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:25:01.649445: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:25:01.649495: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:25:01.653826: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:25:01.654153: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 07:25:01.689194: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:25:01.689309: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:25:01.690330: High export rate found rates in range 99p to -99p
2026-08-17 07:25:01.713506: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:25:01.713616: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:25:01.713658: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:25:01.728164: Battery level now 12.25kWh, -1hr ago 12.64kWh, at midnight 10.49kWh, battery value change in the last hour -2.69p, change today 12.1p, rate_forward 6.87p
2026-08-17 07:25:01.728557: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:25:01.779192: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:25:01.779315: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:25:01.845045: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:25:01.864264: Today's load divergence 97.14%, in-day adjustment 77.31%, damping 0.95x, yesterday 68.37% today 97.28% blend 69.1%
2026-08-17 07:25:01.864353: Today's predicted so far 4.63kWh with 0.0kWh car/iBoost excluded, 3.43kWh import ignored, and 4.63kWh forecast extra.
2026-08-17 07:25:01.864379: Today's actual load so far 4.18kWh with 0.0kWh car/iBoost excluded, and 3.43kWh import ignored.
2026-08-17 07:25:01.899582: Inverter 0: Type SK Sunsynk
2026-08-17 07:25:01.899657: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:25:01.899853: Reserve min: 7%, battery_min: 7%
2026-08-17 07:25:01.899934: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:25:01.900288: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 290W, current battery voltage 51.2V, grid power -54W, load power 348W, PV Power 0W
2026-08-17 07:25:01.900471: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:25:01.900615: Inverter 0 scheduled charge enable is True
2026-08-17 07:25:01.900678: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}]
2026-08-17 07:25:01.900827: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 7.0%, power 5.0kW
2026-08-17 07:25:01.900980: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:25:01.901012: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:25:01.901069: Inverter 0 scheduled discharge enable is False
2026-08-17 07:25:01.901205: Inverter 0 idle time is 08-17 05:30:00-08-17 07:30:00
2026-08-17 07:25:01.901236: Inverter 0 discharge windows currently []
2026-08-17 07:25:01.901256: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:25:01.901271: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:25:01.901289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:25:01.962828: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:25:01.962930: Plan was last updated on 2026-08-17 07:20:00+01:00 and is now 5.0 minutes old
2026-08-17 07:25:01.963106: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:25:01.963140: Best export window [ ]
2026-08-17 07:25:01.963819: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:25:01.966308: Load divergence over 8.0 hours mean 761.9W, min 300.0W, max 2007.0W, std dev 407.74W, divergence 26.76%
2026-08-17 07:25:01.982091: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:25:01.982227: LoadML is_calculating False
2026-08-17 07:25:01.982309: Creating pool of 12 processes to match your CPU count
2026-08-17 07:25:02.095556: predict base end_record 08-18 07:35:00, final soc 1.12kWh, metric 198.5p, metric_keep 46.53kWh, min_soc 1.12kWh @ 08-18 01:30:00, load 17.95kWh, PV 0.0kWh
2026-08-17 07:25:02.212827: Battery has 18.08 hours left - now at 12.16kWh
2026-08-17 07:25:02.252352: predict base10 end_record 08-18 07:35:00, final soc 1.12kWh, metric 204.89p, metric_keep 48.12kWh, min_soc 1.12kWh @ 08-18 01:00:00, load 18.61kWh, PV 0.0kWh
2026-08-17 07:25:02.340516: predict best10 end_record 08-18 07:35:00, final soc 1.37kWh, metric 185.63p, metric_keep 7.53kWh, min_soc 1.37kWh @ 08-18 07:30:00, load 18.61kWh, PV 0.0kWh
2026-08-17 07:25:02.414289: predict best end_record 08-18 07:35:00, final soc 1.99kWh, metric 184.95p, metric_keep 0.02kWh, min_soc 1.99kWh @ 08-18 07:30:00, load 17.95kWh, PV 0.0kWh
2026-08-17 07:25:02.414376: Saving plan best values to HA entities
2026-08-17 07:25:02.574362: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 07:25:02.579288: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:25:02.584029: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.78kWh, house 0kWh, export 0.0kWh, metric 184.95p, metric10 185.63p
2026-08-17 07:25:02.652140: Marginal costs baseline metric (no standing charge): 138.3198
2026-08-17 07:25:02.865679: Marginal energy costs matrix computed: min=6.87 max=27.03
2026-08-17 07:25:02.928386: Rate array import [{'start': 445, 'end': 450, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1895, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 445, 'end': 1895, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:25:02.929032: - Your estimated bill for today is £1.15 and tomorrow is £4.31
2026-08-17 07:25:02.929085: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 30 minutes.
2026-08-17 07:25:02.929105: - The battery is currently at 76% and is in eco mode for the next 5 minutes.
2026-08-17 07:25:02.929120: - For the next 48 hours there will be no solar generation.
2026-08-17 07:25:02.929134: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 07:25:02.929165: - Your next charge slot will be in 5 minutes where import rates will be cheap (8.0p) and your car will be charged with 0.93 kWh.
2026-08-17 07:25:02.929181:
2026-08-17 07:25:02.982167: Plan calculation took 1.02 seconds
2026-08-17 07:25:02.984984: No high rate period found
2026-08-17 07:25:03.031845: Import threshold used for optimisation was 8.0p
2026-08-17 07:25:03.080118: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:25:03.085796: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:25:03.085960: Inverter 0 configuring charge window now (now 08-17 07:25:00 target set_window_minutes 30 charge start time 08-17 07:30:00
2026-08-17 07:25:03.086117: IOG action latency: 0.0 seconds from slot start
2026-08-17 07:25:03.086367: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:25:03.086624: Adjust demand (idle) time computed is 05:30:00-07:30:00
2026-08-17 07:25:03.086747: No export window planned
2026-08-17 07:25:03.086917: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:25:03.086964: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:25:03.087156: Adjust demand (idle) time computed is 05:30:00-07:30:00
2026-08-17 07:25:03.087325: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 07:25:03.087402: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 07:25:03.087499: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 07:25:03.087647: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.087720: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.087785: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.087840: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.087886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.087940: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.087987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088364: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:25:03.088447: Inverter 0 count register writes 0
2026-08-17 07:25:03.103419: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 07:25:03.108452: Total inverter register writes now 859
2026-08-17 07:25:03.137809: Info: Completed run status Demand
2026-08-17 07:25:03.147000: Info: record_status Demand
2026-08-17 07:25:03.153744: Saved current settings to /config/predbat_config.json
2026-08-17 07:25:03.154088: Compare, best tariff: current metric 104.68p
2026-08-17 07:25:34.266836: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:25:34.267127: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:25:34.267189: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:25:34.267349: Inverter 0 idle time is 08-17 05:30:00-08-17 07:30:00
2026-08-17 07:25:34.267397: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:25:34.267420: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:25:34.267438: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:27:48.512056: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:27:48.512401: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:27:48.512453: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:27:48.512671: Inverter 0 idle time is 08-17 05:30:00-08-17 07:30:00
2026-08-17 07:27:48.512721: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:27:48.512744: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:27:48.512761: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:29:48.753337: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:29:48.753635: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:29:48.753732: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:29:48.753866: Inverter 0 idle time is 08-17 05:30:00-08-17 07:30:00
2026-08-17 07:29:48.753904: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:29:48.753924: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:29:48.753942: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:30:00.852287: --------------- PredBat - update at 2026-08-17 07:30:00+01:00 with clock skew 0 minutes, minutes now 450
2026-08-17 07:30:00.853398: Saved current settings to /config/predbat_config.json
2026-08-17 07:30:00.853618: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 07:30:00.853764: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:30:00.853876: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:30:00.884274: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:30:00.884412: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:30:00.884621: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:30:00.885250: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:30:00.885381: Predbat mode is set to Control charge & discharge
2026-08-17 07:30:01.116491: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:30:01.116658: Using load_power data to fill gaps in load_today data
2026-08-17 07:30:01.959448: Processing 721 30-minute periods for power integration
2026-08-17 07:30:02.119919: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:30:02.120076: Car charging hold False, threshold 6.0kWh
2026-08-17 07:30:02.120138: Current data so far today: load 4.32kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:30:02.137013: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:30:02.137147: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:30:02.138017: Standing charge is set to 46.63p
2026-08-17 07:30:02.242249: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.242921: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.243171: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.243374: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.243764: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.243989: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.244181: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.244362: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.244565: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.244758: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.244926: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.245182: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.245360: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.245577: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:30:02.245751: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:30:02.245815: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:30:02.251162: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:30:02.251748: Import rates: min 8.0p, max 33.75p, average 27.05p
2026-08-17 07:30:02.294246: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:30:02.294363: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:30:02.295376: High export rate found rates in range 99p to -99p
2026-08-17 07:30:02.320368: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:30:02.320494: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:30:02.320538: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:30:02.333696: Battery level now 12.16kWh, -1hr ago 12.54kWh, at midnight 10.49kWh, battery value change in the last hour -2.58p, change today 11.49p, rate_forward 6.87p
2026-08-17 07:30:02.334003: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:30:02.387004: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:30:02.387124: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:30:02.459910: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:30:02.484135: Today's load divergence 97.34%, in-day adjustment 77.46%, damping 0.95x, yesterday 68.37% today 97.47% blend 68.75%
2026-08-17 07:30:02.484259: Today's predicted so far 4.74kWh with 0.0kWh car/iBoost excluded, 3.45kWh import ignored, and 4.74kWh forecast extra.
2026-08-17 07:30:02.484302: Today's actual load so far 4.32kWh with 0.0kWh car/iBoost excluded, and 3.45kWh import ignored.
2026-08-17 07:30:02.521793: Inverter 0: Type SK Sunsynk
2026-08-17 07:30:02.521892: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:30:02.522079: Reserve min: 7%, battery_min: 7%
2026-08-17 07:30:02.522159: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:30:02.522459: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 290W, current battery voltage 51.2V, grid power -54W, load power 349W, PV Power 0W
2026-08-17 07:30:02.522650: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:30:02.522740: Inverter 0 scheduled charge enable is True
2026-08-17 07:30:02.522781: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}]
2026-08-17 07:30:02.522878: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 7.0%, power 5.0kW
2026-08-17 07:30:02.522998: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:30:02.523034: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:30:02.523071: Inverter 0 scheduled discharge enable is False
2026-08-17 07:30:02.523192: Inverter 0 idle time is 08-18 05:30:00-08-18 07:30:00
2026-08-17 07:30:02.523228: Inverter 0 discharge windows currently []
2026-08-17 07:30:02.523252: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:30:02.523272: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:30:02.523314: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:30:02.756508: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:30:02.756608: Plan was last updated on 2026-08-17 07:20:00+01:00 and is now 10.0 minutes old
2026-08-17 07:30:02.756797: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:30:02.756834: Best export window [ ]
2026-08-17 07:30:02.757557: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:30:02.760167: Load divergence over 8.0 hours mean 762.18W, min 304.2W, max 1983.0W, std dev 397.33W, divergence 26.07%
2026-08-17 07:30:02.775931: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:30:02.776037: LoadML is_calculating False
2026-08-17 07:30:02.776101: Creating pool of 12 processes to match your CPU count
2026-08-17 07:30:02.907932: predict base end_record 08-18 07:40:00, final soc 1.12kWh, metric 199.74p, metric_keep 47.79kWh, min_soc 1.12kWh @ 08-18 01:30:00, load 18.12kWh, PV 0.0kWh
2026-08-17 07:30:03.039209: Battery has 18.0 hours left - now at 12.16kWh
2026-08-17 07:30:03.079215: predict base10 end_record 08-18 07:40:00, final soc 1.12kWh, metric 206.18p, metric_keep 49.37kWh, min_soc 1.12kWh @ 08-18 01:00:00, load 18.78kWh, PV 0.0kWh
2026-08-17 07:30:03.159589: predict best10 end_record 08-18 07:40:00, final soc 1.34kWh, metric 185.76p, metric_keep 8.34kWh, min_soc 1.34kWh @ 08-18 07:35:00, load 18.78kWh, PV 0.0kWh
2026-08-17 07:30:03.240385: predict best end_record 08-18 07:40:00, final soc 1.96kWh, metric 185.09p, metric_keep 0.07kWh, min_soc 1.96kWh @ 08-18 07:35:00, load 18.12kWh, PV 0.0kWh
2026-08-17 07:30:03.240489: Saving plan best values to HA entities
2026-08-17 07:30:03.411199: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 07:30:03.416819: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:30:03.422189: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.8kWh, house 0.0kWh, export 0.0kWh, metric 185.09p, metric10 185.76p
2026-08-17 07:30:03.497457: Marginal costs baseline metric (no standing charge): 138.4583
2026-08-17 07:30:03.759698: Marginal energy costs matrix computed: min=7.21 max=27.12
2026-08-17 07:30:03.843072: Rate array import [{'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1900, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 450, 'end': 1900, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:30:03.843506: - Your estimated bill for today is £1.15 and tomorrow is £4.31
2026-08-17 07:30:03.843554: - Import rates are cheap (8.0p) for the next 30 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:30:03.843576: - The battery is currently at 76% and is charging to 75% for the next 30 minutes.
2026-08-17 07:30:03.843595: - For the next 48 hours there will be no solar generation.
2026-08-17 07:30:03.843616: - You will reach a minimum of 12% battery in 24 hours.
2026-08-17 07:30:03.843634: - Your car is currently charging.
2026-08-17 07:30:03.843655:
2026-08-17 07:30:03.900853: Plan calculation took 1.14 seconds
2026-08-17 07:30:03.904465: No high rate period found
2026-08-17 07:30:03.961045: Import threshold used for optimisation was 8.0p
2026-08-17 07:30:04.024048: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:30:04.033201: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:30:04.033349: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:30:04.033559: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:30:04.033653: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:30:04.033848: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:30:04.034109: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:30:04.034200: Inverter 0 set new demand (idle) start time to 08:00:00 was 05:30:00
2026-08-17 07:30:09.042578: Inverter 0 write_and_poll_value: Wrote 08:00:00 to idle_start_time, successfully now 08:00:00
2026-08-17 07:30:09.042718: Inverter 0 set new demand (idle) end time to 23:59:00 was 07:30:00
2026-08-17 07:30:14.051185: Inverter 0 write_and_poll_value: Wrote 23:59:00 to idle_end_time, successfully now 23:59:00
2026-08-17 07:30:14.051343: No export window planned
2026-08-17 07:30:14.051543: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:30:14.051587: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:30:14.051797: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:30:14.051935: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:30:14.052010: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.0kWh
2026-08-17 07:30:14.052085: Inverter 0 Current charge limit is 7% and new target is 75%
2026-08-17 07:30:19.135583: Inverter 0 write_and_poll_value: Wrote 75 to charge_limit, successfully now 75.0
2026-08-17 07:30:19.135902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.135957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.135990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.136016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.136041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.136065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.136090: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.136176: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 07:30:19.142064: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 07:30:19.247205: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 07:30:19.352437: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 07:30:19.356226: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 07:30:19.398663: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 07:30:19.443201: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-17 07:30:19.486910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.487008: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.487043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.487070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.487095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.487129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.487156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:19.487178: Inverter 0 count register writes 1
2026-08-17 07:30:19.506237: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 07:30:19.506480: Recompute is saving previous plan...
2026-08-17 07:30:19.507917: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 7%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 07:30:19.507977: Best export window [ ]
2026-08-17 07:30:19.508841: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:30:19.512117: Load divergence over 8.0 hours mean 762.18W, min 304.2W, max 1983.0W, std dev 397.33W, divergence 26.07%
2026-08-17 07:30:19.529448: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:30:19.529621: LoadML is_calculating False
2026-08-17 07:30:19.529697: Creating pool of 12 processes to match your CPU count
2026-08-17 07:30:19.611222: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 07:30:19.612236: Optimise levels pass started at 2026-08-17 07:30:19
2026-08-17 07:30:19.612300: Optimise all windows, total charge 25 export 1
2026-08-17 07:30:20.148365: >> Region optimisation pass width 960 gives best_metric 286.59p, best_cost 377.7p, best_cycle 46.16kWh, best_import 34.7kWh
2026-08-17 07:30:20.535571: >> Region optimisation pass width 480 gives best_metric 283.02p, best_cost 281.53p, best_cycle 38.91kWh, best_import 22.68kWh
2026-08-17 07:30:21.057871: >> Region optimisation pass width 240 gives best_metric 277.01p, best_cost 282.54p, best_cycle 40.7kWh, best_import 22.81kWh
2026-08-17 07:30:21.843316: >> Region optimisation pass width 120 gives best_metric 271.8p, best_cost 284.85p, best_cycle 42.07kWh, best_import 23.1kWh
2026-08-17 07:30:21.843529: Calculated end_record as 08-18 07:30:00 based on best_price 8.0p, next_charge_start 08-17 07:30:00, max_windows 13
2026-08-17 07:30:21.843619: Optimise levels pass ended at 2026-08-17 07:30:21, duration 2.2 seconds tried 72 combinations
2026-08-17 07:30:21.843724: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 271.8p, best_keep 0.35kWh, best_cycle 42.07kWh, best_carbon 0kg, best_import 23.1kWh
2026-08-17 07:30:21.860874: Starting detailed optimisation end_record 08-18 07:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 07:30:24.113502: Tweak plan optimisation started metric 125.27p, cost 138.46p
2026-08-17 07:30:24.418388: Tweak optimisation finished metric 125.27p, cost 138.46p, metric_keep 0kWh, cycle 16.8kWh, carbon 0kg, import 4.8kWh, changed 8 window(s)
2026-08-17 07:30:24.435189: Swap charge optimisation started metric 125.27p, cost 138.46p, min_improvement_swap 0.1p
2026-08-17 07:30:24.604783: Swap charge optimisation finished metric 125.27p, cost 138.46p
2026-08-17 07:30:24.645255: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:30:24.645591: Unclipped charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:30:24.645811: Unfiltered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:30:24.645956: Filtered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:30:24.675780: Previous plan best metric is 125.27 (cost 138.46) and new plan best metric is 125.27 (cost 138.46)
2026-08-17 07:30:24.675953: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 07:30:24.676096: Plan valid is now true after recompute was False
2026-08-17 07:30:24.700879: predict base end_record 08-18 07:30:00, final soc 1.12kWh, metric 197.61p, metric_keep 45.31kWh, min_soc 1.12kWh @ 08-18 01:30:00, load 18.06kWh, PV 0.0kWh
2026-08-17 07:30:24.817460: Battery has 18.0 hours left - now at 12.16kWh
2026-08-17 07:30:24.870576: predict base10 end_record 08-18 07:30:00, final soc 1.12kWh, metric 203.95p, metric_keep 46.89kWh, min_soc 1.12kWh @ 08-18 01:00:00, load 18.71kWh, PV 0.0kWh
2026-08-17 07:30:24.937114: predict best10 end_record 08-18 07:30:00, final soc 1.41kWh, metric 185.76p, metric_keep 6.53kWh, min_soc 1.41kWh @ 08-18 07:25:00, load 18.71kWh, PV 0.0kWh
2026-08-17 07:30:25.006820: predict best end_record 08-18 07:30:00, final soc 2.03kWh, metric 185.09p, metric_keep 0kWh, min_soc 2.03kWh @ 08-18 07:25:00, load 18.06kWh, PV 0.0kWh
2026-08-17 07:30:25.006919: Saving plan best values to HA entities
2026-08-17 07:30:25.147328: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 07:30:25.152668: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:30:25.157914: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.8kWh, house 0.0kWh, export 0.0kWh, metric 185.09p, metric10 185.76p
2026-08-17 07:30:25.227946: Marginal costs baseline metric (no standing charge): 138.4583
2026-08-17 07:30:25.473288: Marginal energy costs matrix computed: min=6.14 max=26.85
2026-08-17 07:30:25.537487: Rate array import [{'start': 450, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1890, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 450, 'end': 1890, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:30:25.537889: - Your estimated bill for today is £1.15 and tomorrow is £4.31
2026-08-17 07:30:25.537935: - Import rates are cheap (8.0p) for the next 30 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:30:25.537958: - The battery is currently at 76% and is charging to 75% for the next 30 minutes.
2026-08-17 07:30:25.537988: - For the next 48 hours there will be no solar generation.
2026-08-17 07:30:25.538016: - You will reach a minimum of 13% battery in 23 hours.
2026-08-17 07:30:25.538035: - Your car is currently charging.
2026-08-17 07:30:25.538051:
2026-08-17 07:30:25.584863: Plan calculation took 6.08 seconds
2026-08-17 07:30:25.585329: Inverter 0: Type SK Sunsynk
2026-08-17 07:30:25.585423: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:30:25.585692: Reserve min: 7%, battery_min: 7%
2026-08-17 07:30:25.585773: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:30:25.586095: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 290W, current battery voltage 51.2V, grid power -55W, load power 351W, PV Power 0W
2026-08-17 07:30:25.586338: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:30:25.586466: Inverter 0 scheduled charge enable is True
2026-08-17 07:30:25.586521: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}]
2026-08-17 07:30:25.586622: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 75.0%, power 5.0kW
2026-08-17 07:30:25.586745: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:30:25.586786: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:30:25.586825: Inverter 0 scheduled discharge enable is False
2026-08-17 07:30:25.586950: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:30:25.586988: Inverter 0 discharge windows currently []
2026-08-17 07:30:25.587011: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:30:25.587034: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:30:25.587051: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:30:25.644914: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:30:25.645094: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:30:25.645233: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:30:25.645316: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:30:25.645456: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:30:25.645649: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:30:25.645738: No export window planned
2026-08-17 07:30:25.645845: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:30:25.645880: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:30:25.646014: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:30:25.646119: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:30:25.646185: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.0kWh
2026-08-17 07:30:25.646271: Inverter 0 Current Target SoC is 75%, already at target
2026-08-17 07:30:25.646378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646652: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646716: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646752: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646795: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646829: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646870: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646905: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.646972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.647004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.647036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.647062: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.647092: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.647127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.647152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:30:25.647173: Inverter 0 count register writes 0
2026-08-17 07:30:25.669139: Total inverter register writes now 860
2026-08-17 07:30:25.707294: Info: Completed run status Hold charging
2026-08-17 07:30:25.947684: Info: record_status Hold charging target 76%-75%
2026-08-17 07:30:25.955350: Saved current settings to /config/predbat_config.json
2026-08-17 07:30:25.955737: Compare, best tariff: current metric 104.68p
2026-08-17 07:31:04.072465: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:31:04.072749: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:31:04.072792: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:31:04.072990: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:31:04.073055: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:31:04.073079: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:31:04.073103: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:33:04.323422: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:33:04.323699: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:33:04.323756: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:33:04.323919: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:33:04.323983: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:33:04.324007: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:33:04.324025: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:35:00.548601: --------------- PredBat - update at 2026-08-17 07:35:00+01:00 with clock skew 0 minutes, minutes now 455
2026-08-17 07:35:00.549576: Saved current settings to /config/predbat_config.json
2026-08-17 07:35:00.549740: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 07:35:00.549826: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:35:00.549968: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:35:00.568648: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:35:00.568786: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:35:00.568992: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:35:00.569580: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:35:00.569701: Predbat mode is set to Control charge & discharge
2026-08-17 07:35:00.742790: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:35:00.743008: Using load_power data to fill gaps in load_today data
2026-08-17 07:35:01.508276: Processing 721 30-minute periods for power integration
2026-08-17 07:35:01.662962: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:35:01.663086: Car charging hold False, threshold 6.0kWh
2026-08-17 07:35:01.663125: Current data so far today: load 4.35kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:35:01.676691: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:35:01.676774: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:35:01.677456: Standing charge is set to 46.63p
2026-08-17 07:35:01.767720: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.767939: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.768094: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.768288: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.768435: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.768582: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.768726: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.768865: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.769057: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.769218: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.769466: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.769614: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.769752: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.769974: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:35:01.770234: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:35:01.770303: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:35:01.775031: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:35:01.775406: Import rates: min 8.0p, max 33.75p, average 27.09p
2026-08-17 07:35:01.812995: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:35:01.813114: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:35:01.814158: High export rate found rates in range 99p to -99p
2026-08-17 07:35:01.838162: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:35:01.838287: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:35:01.838330: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:35:01.850614: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 11.49p, rate_forward 6.87p
2026-08-17 07:35:01.850914: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:35:01.895892: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:35:01.896037: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:35:01.961788: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:35:01.982606: Today's load divergence 97.1%, in-day adjustment 77.49%, damping 0.95x, yesterday 68.37% today 97.25% blend 68.4%
2026-08-17 07:35:01.982698: Today's predicted so far 4.82kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.82kWh forecast extra.
2026-08-17 07:35:01.982725: Today's actual load so far 4.36kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 07:35:02.018045: Inverter 0: Type SK Sunsynk
2026-08-17 07:35:02.018126: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:35:02.018292: Reserve min: 7%, battery_min: 7%
2026-08-17 07:35:02.018351: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:35:02.018564: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 295W, current battery voltage 51.2V, grid power -55W, load power 352W, PV Power 0W
2026-08-17 07:35:02.018698: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:35:02.018791: Inverter 0 scheduled charge enable is True
2026-08-17 07:35:02.018828: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}, {'start': 3330, 'end': 3360, 'average': 0}]
2026-08-17 07:35:02.018909: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 75.0%, power 5.0kW
2026-08-17 07:35:02.019009: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:35:02.019038: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:35:02.019068: Inverter 0 scheduled discharge enable is False
2026-08-17 07:35:02.019180: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:35:02.019212: Inverter 0 discharge windows currently []
2026-08-17 07:35:02.019230: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:35:02.019245: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:35:02.019259: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:35:02.078084: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:35:02.078478: Plan was last updated on 2026-08-17 07:30:00+01:00 and is now 5.0 minutes old
2026-08-17 07:35:02.078711: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:35:02.078747: Best export window [ ]
2026-08-17 07:35:02.079404: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:35:02.081943: Load divergence over 8.0 hours mean 762.28W, min 297.6W, max 1926.0W, std dev 393.26W, divergence 25.8%
2026-08-17 07:35:02.097289: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:35:02.097391: LoadML is_calculating False
2026-08-17 07:35:02.097449: Creating pool of 12 processes to match your CPU count
2026-08-17 07:35:02.204673: predict base end_record 08-18 07:35:00, final soc 1.51kWh, metric 212.69p, metric_keep 45.44kWh, min_soc 1.12kWh @ 08-18 01:40:00, load 18.11kWh, PV 0.0kWh
2026-08-17 07:35:02.329360: Battery has 18.08 hours left - now at 12.16kWh
2026-08-17 07:35:02.370258: predict base10 end_record 08-18 07:35:00, final soc 1.44kWh, metric 216.74p, metric_keep 47.14kWh, min_soc 1.12kWh @ 08-18 01:10:00, load 18.77kWh, PV 0.0kWh
2026-08-17 07:35:02.441070: predict best10 end_record 08-18 07:35:00, final soc 1.35kWh, metric 185.56p, metric_keep 7.89kWh, min_soc 1.35kWh @ 08-18 07:30:00, load 18.77kWh, PV 0.0kWh
2026-08-17 07:35:02.523173: predict best end_record 08-18 07:35:00, final soc 1.97kWh, metric 184.89p, metric_keep 0.04kWh, min_soc 1.97kWh @ 08-18 07:30:00, load 18.11kWh, PV 0.0kWh
2026-08-17 07:35:02.523275: Saving plan best values to HA entities
2026-08-17 07:35:02.689684: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 07:35:02.694539: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:35:02.699332: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.77kWh, house 0.0kWh, export 0.0kWh, metric 184.89p, metric10 185.56p
2026-08-17 07:35:02.761666: Marginal costs baseline metric (no standing charge): 138.2557
2026-08-17 07:35:02.979223: Marginal energy costs matrix computed: min=7.07 max=27.08
2026-08-17 07:35:03.042188: Rate array import [{'start': 455, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1895, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 455, 'end': 1895, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:35:03.042574: - Your estimated bill for today is £1.14 and tomorrow is £4.31
2026-08-17 07:35:03.042613: - Import rates are cheap (8.0p) for the next 25 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:35:03.042632: - The battery is currently at 76% and is charging to 75% for the next 25 minutes.
2026-08-17 07:35:03.042648: - For the next 48 hours there will be no solar generation.
2026-08-17 07:35:03.042662: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 07:35:03.042677: - Your car is currently charging.
2026-08-17 07:35:03.042693:
2026-08-17 07:35:03.092074: Plan calculation took 1.01 seconds
2026-08-17 07:35:03.095536: No high rate period found
2026-08-17 07:35:03.143640: Import threshold used for optimisation was 8.0p
2026-08-17 07:35:03.191714: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:35:03.199119: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:35:03.199269: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:35:03.199453: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:35:03.199539: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:35:03.199690: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:35:03.199964: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:35:03.200061: No export window planned
2026-08-17 07:35:03.200206: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:35:03.200245: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:35:03.200381: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:35:03.200492: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:35:03.200556: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.0kWh
2026-08-17 07:35:03.200615: Inverter 0 Current Target SoC is 75%, already at target
2026-08-17 07:35:03.200722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.200766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.200795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.200826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.200898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.200930: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201085: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201128: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201180: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201211: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201242: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201272: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201306: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201373: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:35:03.201570: Inverter 0 count register writes 0
2026-08-17 07:35:03.216714: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 07:35:03.221477: Total inverter register writes now 860
2026-08-17 07:35:03.254630: Info: Completed run status Hold charging
2026-08-17 07:35:03.260909: Info: record_status Hold charging target 76%-75%
2026-08-17 07:35:03.267684: Saved current settings to /config/predbat_config.json
2026-08-17 07:35:03.268048: Compare, best tariff: current metric 104.68p
2026-08-17 07:35:33.375620: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:35:33.375874: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:35:33.375942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:35:33.376081: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:35:33.376166: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:35:33.376191: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:35:33.376217: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:37:33.595133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:37:33.595500: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:37:33.595560: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:37:33.595722: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:37:33.595788: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:37:33.595809: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:37:33.595828: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:39:33.814365: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:39:33.814610: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:39:33.814669: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:39:33.814776: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:39:33.814809: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:39:33.814826: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:39:33.814840: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:40:00.912847: --------------- PredBat - update at 2026-08-17 07:40:00+01:00 with clock skew 0 minutes, minutes now 460
2026-08-17 07:40:00.913764: Saved current settings to /config/predbat_config.json
2026-08-17 07:40:00.913897: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 07:40:00.913990: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:40:00.914088: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:40:00.935294: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:40:00.935469: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:40:00.935718: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:40:00.936303: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:40:00.936510: Predbat mode is set to Control charge & discharge
2026-08-17 07:40:01.141452: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:40:01.141644: Using load_power data to fill gaps in load_today data
2026-08-17 07:40:01.996078: Processing 721 30-minute periods for power integration
2026-08-17 07:40:02.180110: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:40:02.180251: Car charging hold False, threshold 6.0kWh
2026-08-17 07:40:02.180298: Current data so far today: load 4.3kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:40:02.196671: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:40:02.196786: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:40:02.197578: Standing charge is set to 46.63p
2026-08-17 07:40:02.299580: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.299904: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.300130: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.300365: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.300622: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.300873: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.301113: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.301292: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.301537: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.301759: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.301969: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.302139: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.302327: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.302519: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:40:02.302711: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:40:02.302800: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:40:02.308149: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:40:02.308560: Import rates: min 8.0p, max 33.75p, average 27.13p
2026-08-17 07:40:02.352104: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:40:02.352238: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:40:02.353471: High export rate found rates in range 99p to -99p
2026-08-17 07:40:02.383656: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:40:02.384177: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:40:02.384260: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:40:02.399929: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 11.49p, rate_forward 6.87p
2026-08-17 07:40:02.400310: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.32kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:40:02.455925: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:40:02.456055: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:40:02.541796: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:40:02.569183: Today's load divergence 96.79%, in-day adjustment 77.5%, damping 0.95x, yesterday 68.37% today 96.95% blend 68.06%
2026-08-17 07:40:02.569280: Today's predicted so far 4.81kWh with 0.0kWh car/iBoost excluded, 3.33kWh import ignored, and 4.81kWh forecast extra.
2026-08-17 07:40:02.569331: Today's actual load so far 4.31kWh with 0.0kWh car/iBoost excluded, and 3.33kWh import ignored.
2026-08-17 07:40:02.605076: Inverter 0: Type SK Sunsynk
2026-08-17 07:40:02.605173: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:40:02.605363: Reserve min: 7%, battery_min: 7%
2026-08-17 07:40:02.605458: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:40:02.605737: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 288W, current battery voltage 51.2V, grid power -54W, load power 345W, PV Power 0W
2026-08-17 07:40:02.605897: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:40:02.605984: Inverter 0 scheduled charge enable is True
2026-08-17 07:40:02.606033: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}, {'start': 3330, 'end': 3360, 'average': 0}]
2026-08-17 07:40:02.606120: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 75.0%, power 5.0kW
2026-08-17 07:40:02.606239: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:40:02.606274: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:40:02.606310: Inverter 0 scheduled discharge enable is False
2026-08-17 07:40:02.606444: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:40:02.606482: Inverter 0 discharge windows currently []
2026-08-17 07:40:02.606505: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:40:02.606526: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:40:02.606543: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:40:02.666900: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:40:02.667012: Plan was last updated on 2026-08-17 07:30:00+01:00 and is now 10.0 minutes old
2026-08-17 07:40:02.667237: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:40:02.667281: Best export window [ ]
2026-08-17 07:40:02.668142: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:40:02.671303: Load divergence over 8.0 hours mean 762.34W, min 292.2W, max 1707.6W, std dev 394.29W, divergence 25.86%
2026-08-17 07:40:02.690701: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:40:02.690854: LoadML is_calculating False
2026-08-17 07:40:02.690927: Creating pool of 12 processes to match your CPU count
2026-08-17 07:40:02.816002: predict base end_record 08-18 07:40:00, final soc 1.9kWh, metric 227.54p, metric_keep 45.59kWh, min_soc 1.12kWh @ 08-18 01:40:00, load 18.06kWh, PV 0.0kWh
2026-08-17 07:40:02.952657: Battery has 18.0 hours left - now at 12.16kWh
2026-08-17 07:40:02.998245: predict base10 end_record 08-18 07:40:00, final soc 1.77kWh, metric 229.27p, metric_keep 47.47kWh, min_soc 1.12kWh @ 08-18 01:10:00, load 18.71kWh, PV 0.0kWh
2026-08-17 07:40:03.080325: predict best10 end_record 08-18 07:40:00, final soc 1.33kWh, metric 185.35p, metric_keep 8.72kWh, min_soc 1.33kWh @ 08-18 07:35:00, load 18.71kWh, PV 0.0kWh
2026-08-17 07:40:03.154607: predict best end_record 08-18 07:40:00, final soc 1.95kWh, metric 184.7p, metric_keep 0.11kWh, min_soc 1.95kWh @ 08-18 07:35:00, load 18.06kWh, PV 0.0kWh
2026-08-17 07:40:03.154714: Saving plan best values to HA entities
2026-08-17 07:40:03.330792: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:40:03.337195: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:40:03.343268: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.75kWh, house 0.0kWh, export 0.0kWh, metric 184.7p, metric10 185.35p
2026-08-17 07:40:03.419041: Marginal costs baseline metric (no standing charge): 138.0699
2026-08-17 07:40:03.684747: Marginal energy costs matrix computed: min=7.51 max=27.19
2026-08-17 07:40:03.761381: Rate array import [{'start': 460, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1900, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 460, 'end': 1900, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:40:03.761801: - Your estimated bill for today is £1.14 and tomorrow is £4.31
2026-08-17 07:40:03.761851: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:40:03.761875: - The battery is currently at 76% and is charging to 75% for the next 20 minutes.
2026-08-17 07:40:03.761894: - For the next 48 hours there will be no solar generation.
2026-08-17 07:40:03.761911: - You will reach a minimum of 12% battery in 23 hours.
2026-08-17 07:40:03.761930: - Your car is currently charging.
2026-08-17 07:40:03.761948:
2026-08-17 07:40:03.826447: Plan calculation took 1.16 seconds
2026-08-17 07:40:03.829948: No high rate period found
2026-08-17 07:40:03.885355: Import threshold used for optimisation was 8.0p
2026-08-17 07:40:03.938987: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:40:03.945874: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:40:03.945996: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:40:03.946174: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:40:03.946262: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:40:03.946407: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:40:03.946680: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:40:03.946779: No export window planned
2026-08-17 07:40:03.946890: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:40:03.946926: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:40:03.947061: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:40:03.947199: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:40:03.947266: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.0kWh
2026-08-17 07:40:03.947332: Inverter 0 Current Target SoC is 75%, already at target
2026-08-17 07:40:03.947453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947554: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947675: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947709: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947739: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947768: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947793: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947828: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947862: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.947983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.948007: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.948030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.948054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.948078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:03.948099: Inverter 0 count register writes 0
2026-08-17 07:40:03.964813: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 07:40:03.965024: Recompute is saving previous plan...
2026-08-17 07:40:03.966303: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 75%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 75%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 75%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 75%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 75%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 75%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 75%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 75%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 75%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 75%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 75%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 75%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 75%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 75%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 75%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 75%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 75%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 75% ]
2026-08-17 07:40:03.966390: Best export window [ ]
2026-08-17 07:40:03.967245: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:40:03.971253: Load divergence over 8.0 hours mean 762.34W, min 292.2W, max 1707.6W, std dev 394.29W, divergence 25.86%
2026-08-17 07:40:03.989520: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:40:03.989664: LoadML is_calculating False
2026-08-17 07:40:03.989748: Creating pool of 12 processes to match your CPU count
2026-08-17 07:40:04.084302: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 07:40:04.085236: Optimise levels pass started at 2026-08-17 07:40:04
2026-08-17 07:40:04.085305: Optimise all windows, total charge 25 export 1
2026-08-17 07:40:04.485708: >> Region optimisation pass width 960 gives best_metric 286.8p, best_cost 377.34p, best_cycle 46.24kWh, best_import 34.66kWh
2026-08-17 07:40:04.655185: >> Region optimisation pass width 480 gives best_metric 286.8p, best_cost 377.34p, best_cycle 46.24kWh, best_import 34.66kWh
2026-08-17 07:40:04.958735: >> Region optimisation pass width 240 gives best_metric 286.8p, best_cost 377.34p, best_cycle 46.24kWh, best_import 34.66kWh
2026-08-17 07:40:05.566829: >> Region optimisation pass width 120 gives best_metric 286.8p, best_cost 377.34p, best_cycle 46.24kWh, best_import 34.66kWh
2026-08-17 07:40:05.567101: Calculated end_record as 08-18 08:00:00 based on best_price 8.0p, next_charge_start 08-17 08:00:00, max_windows 13
2026-08-17 07:40:05.567203: Optimise levels pass ended at 2026-08-17 07:40:05, duration 1.5 seconds tried 70 combinations
2026-08-17 07:40:05.567317: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 286.8p, best_keep 0.1kWh, best_cycle 46.24kWh, best_carbon 0kg, best_import 34.66kWh
2026-08-17 07:40:05.587686: Starting detailed optimisation end_record 08-18 08:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 07:40:07.896607: Tweak plan optimisation started metric 126.92p, cost 139.55p
2026-08-17 07:40:08.163010: Tweak optimisation finished metric 126.92p, cost 139.55p, metric_keep 0.06kWh, cycle 17.23kWh, carbon 0kg, import 4.93kWh, changed 8 window(s)
2026-08-17 07:40:08.182026: Swap charge optimisation started metric 126.92p, cost 139.55p, min_improvement_swap 0.1p
2026-08-17 07:40:08.352738: Swap charge optimisation finished metric 126.92p, cost 139.55p
2026-08-17 07:40:08.388871: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:40:08.389206: Unclipped charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:40:08.389446: Unfiltered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:40:08.389615: Filtered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:40:08.418180: Previous plan best metric is 127.49 (cost 138.07) and new plan best metric is 126.92 (cost 139.55)
2026-08-17 07:40:08.418377: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 07:40:08.418508: Plan valid is now true after recompute was False
2026-08-17 07:40:08.443740: predict base end_record 08-18 08:00:00, final soc 3.45kWh, metric 288.71p, metric_keep 45.59kWh, min_soc 1.12kWh @ 08-18 01:40:00, load 18.21kWh, PV 0.0kWh
2026-08-17 07:40:08.555032: Battery has 18.0 hours left - now at 12.16kWh
2026-08-17 07:40:08.591667: predict base10 end_record 08-18 08:00:00, final soc 3.06kWh, metric 281.31p, metric_keep 47.47kWh, min_soc 1.12kWh @ 08-18 01:10:00, load 18.87kWh, PV 0.0kWh
2026-08-17 07:40:08.662544: predict best10 end_record 08-18 08:00:00, final soc 1.16kWh, metric 185.35p, metric_keep 13.11kWh, min_soc 1.16kWh @ 08-18 07:55:00, load 18.87kWh, PV 0.0kWh
2026-08-17 07:40:08.725438: predict best end_record 08-18 08:00:00, final soc 1.79kWh, metric 184.7p, metric_keep 0.97kWh, min_soc 1.79kWh @ 08-18 07:55:00, load 18.21kWh, PV 0.0kWh
2026-08-17 07:40:08.725527: Saving plan best values to HA entities
2026-08-17 07:40:08.885731: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:40:08.896399: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:40:08.903136: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.75kWh, house 0.0kWh, export 0.0kWh, metric 184.7p, metric10 185.35p
2026-08-17 07:40:08.978475: Marginal costs baseline metric (no standing charge): 138.0699
2026-08-17 07:40:09.245852: Marginal energy costs matrix computed: min=7.66 max=27.81
2026-08-17 07:40:09.322611: Rate array import [{'start': 460, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1920, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 460, 'end': 1920, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:40:09.323502: - Your estimated bill for today is £1.14 and tomorrow is £4.31
2026-08-17 07:40:09.323563: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:40:09.323587: - The battery is currently at 76% and is charging to 75% for the next 20 minutes.
2026-08-17 07:40:09.323606: - For the next 48 hours there will be no solar generation.
2026-08-17 07:40:09.323623: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 07:40:09.323640: - Your car is currently charging.
2026-08-17 07:40:09.323657:
2026-08-17 07:40:09.377994: Plan calculation took 5.41 seconds
2026-08-17 07:40:09.378359: Inverter 0: Type SK Sunsynk
2026-08-17 07:40:09.378407: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:40:09.378683: Reserve min: 7%, battery_min: 7%
2026-08-17 07:40:09.378764: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:40:09.379093: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 288W, current battery voltage 51.2V, grid power -54W, load power 345W, PV Power 0W
2026-08-17 07:40:09.379333: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:40:09.379486: Inverter 0 scheduled charge enable is True
2026-08-17 07:40:09.379546: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}, {'start': 3330, 'end': 3360, 'average': 0}]
2026-08-17 07:40:09.379649: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 75.0%, power 5.0kW
2026-08-17 07:40:09.379775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:40:09.379815: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:40:09.379853: Inverter 0 scheduled discharge enable is False
2026-08-17 07:40:09.379975: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:40:09.380014: Inverter 0 discharge windows currently []
2026-08-17 07:40:09.380036: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:40:09.380059: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:40:09.380076: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:40:09.435616: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:40:09.435736: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:40:09.435867: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:40:09.435977: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:40:09.436128: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:40:09.436318: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:40:09.436440: No export window planned
2026-08-17 07:40:09.436579: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:40:09.436615: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:40:09.436771: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:40:09.436907: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:40:09.437028: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.0kWh
2026-08-17 07:40:09.437102: Inverter 0 Current Target SoC is 75%, already at target
2026-08-17 07:40:09.437218: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437421: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437495: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437533: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437569: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437599: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437625: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437674: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437711: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:40:09.437962: Inverter 0 count register writes 0
2026-08-17 07:40:09.460411: Total inverter register writes now 860
2026-08-17 07:40:09.497656: Info: Completed run status Hold charging
2026-08-17 07:40:09.505168: Info: record_status Hold charging target 76%-75%
2026-08-17 07:40:09.512604: Saved current settings to /config/predbat_config.json
2026-08-17 07:40:09.512997: Compare, best tariff: current metric 104.68p
2026-08-17 07:40:48.643543: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:40:48.643840: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:40:48.643903: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:40:48.644080: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:40:48.644121: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:40:48.644142: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:40:48.644161: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:42:48.868421: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:42:48.868729: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:42:48.868787: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:42:48.869032: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:42:48.869099: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:42:48.869121: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:42:48.869139: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:44:49.101318: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:44:49.101599: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:44:49.101643: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:44:49.101783: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:44:49.101822: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:44:49.101844: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:44:49.101862: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:45:00.221088: --------------- PredBat - update at 2026-08-17 07:45:00+01:00 with clock skew 0 minutes, minutes now 465
2026-08-17 07:45:00.222025: Saved current settings to /config/predbat_config.json
2026-08-17 07:45:00.222199: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 07:45:00.222351: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:45:00.222473: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:45:00.242587: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:45:00.242714: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:45:00.242993: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:45:00.243625: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:45:00.243763: Predbat mode is set to Control charge & discharge
2026-08-17 07:45:00.445394: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:45:00.445571: Using load_power data to fill gaps in load_today data
2026-08-17 07:45:01.305900: Processing 721 30-minute periods for power integration
2026-08-17 07:45:01.486975: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:45:01.487114: Car charging hold False, threshold 6.0kWh
2026-08-17 07:45:01.487174: Current data so far today: load 4.3kWh, import 6.4kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:45:01.504336: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:45:01.504448: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:45:01.505301: Standing charge is set to 46.63p
2026-08-17 07:45:01.605664: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.605910: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.606097: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.606257: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.606404: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.606547: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.606695: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.606871: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.607036: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.607179: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.607315: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.607455: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.607590: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.607740: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:45:01.607897: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:45:01.607948: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:45:01.612310: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:45:01.612748: Import rates: min 8.0p, max 33.75p, average 27.18p
2026-08-17 07:45:01.648171: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:45:01.648286: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:45:01.649334: High export rate found rates in range 99p to -99p
2026-08-17 07:45:01.672691: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:45:01.672818: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:45:01.672862: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:45:01.685067: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today 11.49p, rate_forward 6.87p
2026-08-17 07:45:01.685470: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:45:01.771322: Today's energy total net 6.4kWh, import 6.4kWh, export 0.0kWh, cost 100.09p, import 53.45p, export 0.0p, carbon 0.0kg
2026-08-17 07:45:01.771452: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:45:01.844710: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:45:01.865005: Today's load divergence 96.8%, in-day adjustment 77.6%, damping 0.95x, yesterday 68.37% today 96.96% blend 67.71%
2026-08-17 07:45:01.865077: Today's predicted so far 4.8kWh with 0.0kWh car/iBoost excluded, 3.31kWh import ignored, and 4.8kWh forecast extra.
2026-08-17 07:45:01.865103: Today's actual load so far 4.3kWh with 0.0kWh car/iBoost excluded, and 3.31kWh import ignored.
2026-08-17 07:45:01.899926: Inverter 0: Type SK Sunsynk
2026-08-17 07:45:01.900032: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:45:01.900219: Reserve min: 7%, battery_min: 7%
2026-08-17 07:45:01.900290: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:45:01.900544: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 20W, current battery voltage 51.2V, grid power -277W, load power 296W, PV Power 0W
2026-08-17 07:45:01.900700: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:45:01.900786: Inverter 0 scheduled charge enable is True
2026-08-17 07:45:01.900831: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}, {'start': 3330, 'end': 3360, 'average': 0}]
2026-08-17 07:45:01.900924: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 75.0%, power 5.0kW
2026-08-17 07:45:01.901101: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:45:01.901144: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:45:01.901182: Inverter 0 scheduled discharge enable is False
2026-08-17 07:45:01.901308: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:45:01.901344: Inverter 0 discharge windows currently []
2026-08-17 07:45:01.901367: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:45:01.901386: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:45:01.901404: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:45:01.961810: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:45:01.961922: Plan was last updated on 2026-08-17 07:40:00+01:00 and is now 5.0 minutes old
2026-08-17 07:45:01.962249: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:45:01.962307: Best export window [ ]
2026-08-17 07:45:01.963130: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:45:01.966358: Load divergence over 8.0 hours mean 762.51W, min 288.0W, max 1788.0W, std dev 407.59W, divergence 26.73%
2026-08-17 07:45:01.985134: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:45:01.985269: LoadML is_calculating False
2026-08-17 07:45:01.985348: Creating pool of 12 processes to match your CPU count
2026-08-17 07:45:02.142617: predict base end_record 08-18 08:05:00, final soc 3.41kWh, metric 288.39p, metric_keep 45.61kWh, min_soc 1.12kWh @ 08-18 01:40:00, load 18.2kWh, PV 0.0kWh
2026-08-17 07:45:02.371740: Battery has 17.92 hours left - now at 12.16kWh
2026-08-17 07:45:02.437316: predict base10 end_record 08-18 08:05:00, final soc 3.02kWh, metric 280.97p, metric_keep 47.49kWh, min_soc 1.12kWh @ 08-18 01:10:00, load 18.87kWh, PV 0.0kWh
2026-08-17 07:45:02.538362: predict best10 end_record 08-18 08:05:00, final soc 1.14kWh, metric 185.2p, metric_keep 13.96kWh, min_soc 1.14kWh @ 08-18 08:00:00, load 18.87kWh, PV 0.0kWh
2026-08-17 07:45:02.616121: predict best end_record 08-18 08:05:00, final soc 1.77kWh, metric 184.55p, metric_keep 1.16kWh, min_soc 1.77kWh @ 08-18 08:00:00, load 18.2kWh, PV 0.0kWh
2026-08-17 07:45:02.616319: Saving plan best values to HA entities
2026-08-17 07:45:02.788314: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:45:02.793596: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:45:02.798913: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.73kWh, house 0kWh, export 0.0kWh, metric 184.55p, metric10 185.2p
2026-08-17 07:45:02.869780: Marginal costs baseline metric (no standing charge): 137.9142
2026-08-17 07:45:03.094300: Marginal energy costs matrix computed: min=6.93 max=27.92
2026-08-17 07:45:03.176521: Rate array import [{'start': 465, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1925, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 465, 'end': 1925, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:45:03.176939: - Your estimated bill for today is £1.14 and tomorrow is £4.31
2026-08-17 07:45:03.177036: - Import rates are cheap (8.0p) for the next 15 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:45:03.177061: - The battery is currently at 76% and is charging to 75% for the next 15 minutes.
2026-08-17 07:45:03.177081: - For the next 48 hours there will be no solar generation.
2026-08-17 07:45:03.177098: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 07:45:03.177116: - Your car is currently charging.
2026-08-17 07:45:03.177137:
2026-08-17 07:45:03.229946: Plan calculation took 1.27 seconds
2026-08-17 07:45:03.232737: No high rate period found
2026-08-17 07:45:03.280212: Import threshold used for optimisation was 8.0p
2026-08-17 07:45:03.330757: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:45:03.337421: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:45:03.337574: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:45:03.337869: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:45:03.338022: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:45:03.338292: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:45:03.338603: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:45:03.338764: No export window planned
2026-08-17 07:45:03.339118: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:45:03.339174: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:45:03.339328: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:45:03.339442: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:45:03.339503: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.16kWh and this battery needs to add -0.16kWh to get to 12.0kWh
2026-08-17 07:45:03.339557: Inverter 0 Current Target SoC is 75%, already at target
2026-08-17 07:45:03.339664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339810: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339873: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339908: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339932: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339957: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.339996: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340026: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340060: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340116: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:45:03.340303: Inverter 0 count register writes 0
2026-08-17 07:45:03.354727: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 07:45:03.359509: Total inverter register writes now 860
2026-08-17 07:45:03.392575: Info: Completed run status Hold charging
2026-08-17 07:45:03.399108: Info: record_status Hold charging target 76%-75%
2026-08-17 07:45:03.405866: Saved current settings to /config/predbat_config.json
2026-08-17 07:45:03.406183: Compare, best tariff: current metric 104.68p
2026-08-17 07:45:33.512795: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:45:33.513274: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:45:33.513351: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:45:33.513520: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:45:33.513672: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:45:33.513723: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:45:33.513744: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:47:33.739008: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:47:33.739327: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:47:33.739365: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:47:33.739529: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:47:33.739569: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:47:33.739605: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:47:33.739628: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:49:33.970496: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:49:33.970798: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:49:33.970838: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:49:33.971026: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:49:33.971067: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:49:33.971088: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:49:33.971106: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:50:00.078079: --------------- PredBat - update at 2026-08-17 07:50:00+01:00 with clock skew 0 minutes, minutes now 470
2026-08-17 07:50:00.078941: Saved current settings to /config/predbat_config.json
2026-08-17 07:50:00.079100: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 07:50:00.079277: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.4, latest beta is v8.48.4
2026-08-17 07:50:00.079427: Autoupdate: There is an update pending v8.48.4 Much faster planning, support for up to 8 cars, inverter fixes - auto update is off
2026-08-17 07:50:00.104010: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 07:50:00.104153: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 07:50:00.104344: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 07:50:00.105099: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 07:50:00.105231: Predbat mode is set to Control charge & discharge
2026-08-17 07:50:00.315951: Found 21602 load_today datapoints going back 28 days
2026-08-17 07:50:00.316120: Using load_power data to fill gaps in load_today data
2026-08-17 07:50:01.236272: Processing 721 30-minute periods for power integration
2026-08-17 07:50:01.438056: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 07:50:01.438192: Car charging hold False, threshold 6.0kWh
2026-08-17 07:50:01.438242: Current data so far today: load 4.42kWh, import 6.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 07:50:01.456109: Car 0 using Octopus Intelligent, charging planned - charging limit 58.6, ready time 08:00:00 - battery size 58.6
2026-08-17 07:50:01.456216: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 07:50:01.457033: Standing charge is set to 46.63p
2026-08-17 07:50:01.552921: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.553661: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.553892: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.554135: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.554419: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.554656: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.554874: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.555076: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.555319: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.555542: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.555719: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.555896: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.556071: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.556245: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 07:50:01.556481: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 07:50:01.556552: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 07:50:01.563417: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 07:50:01.563992: Import rates: min 8.0p, max 33.75p, average 27.22p
2026-08-17 07:50:01.611391: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 07:50:01.611512: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 07:50:01.612632: High export rate found rates in range 99p to -99p
2026-08-17 07:50:01.638247: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 07:50:01.638405: Car 0 on Octopus Intelligent, active plan for charge
2026-08-17 07:50:01.638450: Car 0 charging plan is: [{'start': 450, 'end': 480, 'kwh': 0.9335, 'average': 8.0, 'cost': 7.47, 'soc': 58.6, 'octopus': True}]
2026-08-17 07:50:01.651437: Battery level now 12.16kWh, -1hr ago 12.37kWh, at midnight 10.49kWh, battery value change in the last hour -1.43p, change today 11.49p, rate_forward 6.87p
2026-08-17 07:50:01.651747: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.44p, import 1.44p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 07:50:01.706506: Today's energy total net 6.5kWh, import 6.5kWh, export 0.0kWh, cost 103.08p, import 56.44p, export 0.0p, carbon 0.0kg
2026-08-17 07:50:01.706669: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 07:50:01.773203: Using weighted-bucket historical load forecast over 14 days
2026-08-17 07:50:01.794566: Today's load divergence 97.37%, in-day adjustment 77.88%, damping 0.95x, yesterday 68.37% today 97.5% blend 67.36%
2026-08-17 07:50:01.794659: Today's predicted so far 4.82kWh with 0.0kWh car/iBoost excluded, 3.38kWh import ignored, and 4.82kWh forecast extra.
2026-08-17 07:50:01.794686: Today's actual load so far 4.4kWh with 0.0kWh car/iBoost excluded, and 3.38kWh import ignored.
2026-08-17 07:50:01.832690: Inverter 0: Type SK Sunsynk
2026-08-17 07:50:01.832778: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:50:01.833020: Reserve min: 7%, battery_min: 7%
2026-08-17 07:50:01.833307: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:50:01.833573: Inverter 0 SoC: 12.08kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 20W, current battery voltage 51.2V, grid power -275W, load power 295W, PV Power 0W
2026-08-17 07:50:01.833716: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:50:01.833793: Inverter 0 scheduled charge enable is True
2026-08-17 07:50:01.833830: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}, {'start': 3330, 'end': 3360, 'average': 0}]
2026-08-17 07:50:01.833903: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 75.0%, power 5.0kW
2026-08-17 07:50:01.834005: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:50:01.834034: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:50:01.834063: Inverter 0 scheduled discharge enable is False
2026-08-17 07:50:01.834159: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:50:01.834189: Inverter 0 discharge windows currently []
2026-08-17 07:50:01.834208: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:50:01.834223: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:50:01.834237: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:50:01.890881: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 07:50:01.891001: Plan was last updated on 2026-08-17 07:40:00+01:00 and is now 10.0 minutes old
2026-08-17 07:50:01.891247: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 07:50:01.891307: Best export window [ ]
2026-08-17 07:50:01.892009: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:50:01.894559: Load divergence over 8.0 hours mean 764.04W, min 292.2W, max 1896.0W, std dev 410.51W, divergence 26.86%
2026-08-17 07:50:01.910829: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:50:01.910940: LoadML is_calculating False
2026-08-17 07:50:01.910997: Creating pool of 12 processes to match your CPU count
2026-08-17 07:50:02.041918: predict base end_record 08-18 08:10:00, final soc 3.38kWh, metric 291.95p, metric_keep 45.97kWh, min_soc 1.12kWh @ 08-18 01:35:00, load 18.35kWh, PV 0.0kWh
2026-08-17 07:50:02.182099: Battery has 17.75 hours left - now at 12.08kWh
2026-08-17 07:50:02.230813: predict base10 end_record 08-18 08:10:00, final soc 2.99kWh, metric 284.54p, metric_keep 47.8kWh, min_soc 1.12kWh @ 08-18 01:05:00, load 19.02kWh, PV 0.0kWh
2026-08-17 07:50:02.315101: predict best10 end_record 08-18 08:10:00, final soc 1.12kWh, metric 189.51p, metric_keep 15.31kWh, min_soc 1.12kWh @ 08-18 08:05:00, load 19.02kWh, PV 0.0kWh
2026-08-17 07:50:02.405541: predict best end_record 08-18 08:10:00, final soc 1.73kWh, metric 188.15p, metric_keep 1.6kWh, min_soc 1.73kWh @ 08-18 08:05:00, load 18.35kWh, PV 0.0kWh
2026-08-17 07:50:02.405626: Saving plan best values to HA entities
2026-08-17 07:50:02.587244: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:50:02.592721: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:50:02.598453: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.81kWh, house 0.0kWh, export 0.0kWh, metric 188.15p, metric10 189.51p
2026-08-17 07:50:02.671057: Marginal costs baseline metric (no standing charge): 141.5168
2026-08-17 07:50:02.941343: Marginal energy costs matrix computed: min=7.95 max=28.37
2026-08-17 07:50:03.006923: Rate array import [{'start': 470, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1930, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 470, 'end': 1930, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:50:03.007300: - Your estimated bill for today is £1.18 and tomorrow is £4.31
2026-08-17 07:50:03.007339: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:50:03.007357: - The battery is currently at 76% and is charging to 75% for the next 10 minutes.
2026-08-17 07:50:03.007372: - For the next 48 hours there will be no solar generation.
2026-08-17 07:50:03.007386: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 07:50:03.007399: - Your car is currently charging.
2026-08-17 07:50:03.007417:
2026-08-17 07:50:03.049745: Plan calculation took 1.16 seconds
2026-08-17 07:50:03.052508: No high rate period found
2026-08-17 07:50:03.096297: Import threshold used for optimisation was 8.0p
2026-08-17 07:50:03.143177: Low import rate windows [0: 08-17 07:30:00 - 08-17 08:00:00 @ 8.0, 1: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 2: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 3: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 4: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 5: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 6: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 7: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 8: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 9: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 10: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 11: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 12: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 13: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 14: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 15: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 16: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 17: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 18: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 19: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 20: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 21: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 22: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 23: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 24: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 07:50:03.149719: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:50:03.149839: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:50:03.150041: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:50:03.150147: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:50:03.150350: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:50:03.150671: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:50:03.150795: No export window planned
2026-08-17 07:50:03.150959: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:50:03.151005: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:50:03.151179: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:50:03.151343: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:50:03.151438: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.08kWh and this battery needs to add -0.08kWh to get to 12.0kWh
2026-08-17 07:50:03.151536: Inverter 0 Current Target SoC is 75%, already at target
2026-08-17 07:50:03.151686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.151748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.151798: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.151851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.151896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.151944: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.151999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152065: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152118: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152168: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152226: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152366: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152443: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152507: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152636: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:03.152815: Inverter 0 count register writes 0
2026-08-17 07:50:03.170241: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 07:50:03.170448: Recompute is saving previous plan...
2026-08-17 07:50:03.171398: Best charge window [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 75%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 75%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 75%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 75%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 75%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 75%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 75%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 75%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 75%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 75%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 75%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 75%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 75%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 75%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 75%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 75%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 75%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 75%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 75% ]
2026-08-17 07:50:03.171449: Best export window [ ]
2026-08-17 07:50:03.172292: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 07:50:03.175563: Load divergence over 8.0 hours mean 764.04W, min 292.2W, max 1896.0W, std dev 410.51W, divergence 26.86%
2026-08-17 07:50:03.191109: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 07:50:03.191269: LoadML is_calculating False
2026-08-17 07:50:03.191364: Creating pool of 12 processes to match your CPU count
2026-08-17 07:50:03.279620: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 07:50:03.280571: Optimise levels pass started at 2026-08-17 07:50:03
2026-08-17 07:50:03.280633: Optimise all windows, total charge 25 export 1
2026-08-17 07:50:03.648719: >> Region optimisation pass width 960 gives best_metric 290.79p, best_cost 380.76p, best_cycle 46.48kWh, best_import 34.71kWh
2026-08-17 07:50:03.797783: >> Region optimisation pass width 480 gives best_metric 290.79p, best_cost 380.76p, best_cycle 46.48kWh, best_import 34.71kWh
2026-08-17 07:50:04.095825: >> Region optimisation pass width 240 gives best_metric 290.79p, best_cost 380.76p, best_cycle 46.48kWh, best_import 34.71kWh
2026-08-17 07:50:04.650685: >> Region optimisation pass width 120 gives best_metric 290.79p, best_cost 380.76p, best_cycle 46.48kWh, best_import 34.71kWh
2026-08-17 07:50:04.650915: Calculated end_record as 08-18 08:00:00 based on best_price 8.0p, next_charge_start 08-17 08:00:00, max_windows 13
2026-08-17 07:50:04.650980: Optimise levels pass ended at 2026-08-17 07:50:04, duration 1.4 seconds tried 70 combinations
2026-08-17 07:50:04.651043: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 290.79p, best_keep 0.11kWh, best_cycle 46.48kWh, best_carbon 0kg, best_import 34.71kWh
2026-08-17 07:50:04.668131: Starting detailed optimisation end_record 08-18 08:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 07:50:06.966536: Tweak plan optimisation started metric 130.23p, cost 142.99p
2026-08-17 07:50:07.249351: Tweak optimisation finished metric 130.23p, cost 142.99p, metric_keep 0.04kWh, cycle 17.38kWh, carbon 0kg, import 4.99kWh, changed 8 window(s)
2026-08-17 07:50:07.269173: Swap charge optimisation started metric 130.23p, cost 142.99p, min_improvement_swap 0.1p
2026-08-17 07:50:07.468889: Swap charge optimisation finished metric 130.23p, cost 142.99p
2026-08-17 07:50:07.517861: Raw charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:50:07.518437: Unclipped charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:50:07.518669: Unfiltered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:50:07.518900: Filtered charge windows [ 17-08 07:30:00 - 17-08 08:00:00 @ 8.0p 75%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 07:50:07.558359: Previous plan best metric is 130.77 (cost 141.52) and new plan best metric is 130.23 (cost 142.99)
2026-08-17 07:50:07.558673: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 07:50:07.558892: Plan valid is now true after recompute was False
2026-08-17 07:50:07.589764: predict base end_record 08-18 08:00:00, final soc 3.45kWh, metric 291.95p, metric_keep 45.97kWh, min_soc 1.12kWh @ 08-18 01:35:00, load 18.29kWh, PV 0.0kWh
2026-08-17 07:50:07.718975: Battery has 17.75 hours left - now at 12.08kWh
2026-08-17 07:50:07.765909: predict base10 end_record 08-18 08:00:00, final soc 3.06kWh, metric 284.54p, metric_keep 47.8kWh, min_soc 1.12kWh @ 08-18 01:05:00, load 18.95kWh, PV 0.0kWh
2026-08-17 07:50:07.847239: predict best10 end_record 08-18 08:00:00, final soc 1.17kWh, metric 188.77p, metric_keep 12.85kWh, min_soc 1.17kWh @ 08-18 07:55:00, load 18.95kWh, PV 0.0kWh
2026-08-17 07:50:07.934047: predict best end_record 08-18 08:00:00, final soc 1.8kWh, metric 188.15p, metric_keep 0.89kWh, min_soc 1.8kWh @ 08-18 07:55:00, load 18.29kWh, PV 0.0kWh
2026-08-17 07:50:07.934133: Saving plan best values to HA entities
2026-08-17 07:50:08.089031: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 07:50:08.094907: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 07:50:08.101481: Best charging limit SoC's [12.0, 4.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.81kWh, house 0.0kWh, export 0.0kWh, metric 188.15p, metric10 188.77p
2026-08-17 07:50:08.181407: Marginal costs baseline metric (no standing charge): 141.5168
2026-08-17 07:50:08.465428: Marginal energy costs matrix computed: min=6.84 max=28.1
2026-08-17 07:50:08.535784: Rate array import [{'start': 470, 'end': 480, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1920, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 470, 'end': 1920, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 07:50:08.536299: - Your estimated bill for today is £1.18 and tomorrow is £4.31
2026-08-17 07:50:08.536360: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 15 hours.
2026-08-17 07:50:08.536391: - The battery is currently at 76% and is charging to 75% for the next 10 minutes.
2026-08-17 07:50:08.536433: - For the next 48 hours there will be no solar generation.
2026-08-17 07:50:08.536462: - You will reach a minimum of 11% battery in 24 hours.
2026-08-17 07:50:08.536482: - Your car is currently charging.
2026-08-17 07:50:08.536510:
2026-08-17 07:50:08.588422: Plan calculation took 5.42 seconds
2026-08-17 07:50:08.588800: Inverter 0: Type SK Sunsynk
2026-08-17 07:50:08.588854: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 07:50:08.589138: Reserve min: 7%, battery_min: 7%
2026-08-17 07:50:08.589223: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 07:50:08.589574: Inverter 0 SoC: 12.08kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 20W, current battery voltage 51.2V, grid power -275W, load power 295W, PV Power 0W
2026-08-17 07:50:08.589841: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:50:08.589957: Inverter 0 scheduled charge enable is True
2026-08-17 07:50:08.590012: Inverter 0 charge windows currently [{'start': 450, 'end': 480, 'average': 0}, {'start': 1890, 'end': 1920, 'average': 0}, {'start': 3330, 'end': 3360, 'average': 0}]
2026-08-17 07:50:08.590110: Inverter 0 Charge settings: 08-17 07:30:00-08-17 08:00:00, limit 75.0%, power 5.0kW
2026-08-17 07:50:08.590235: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:50:08.590322: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:50:08.590367: Inverter 0 scheduled discharge enable is False
2026-08-17 07:50:08.590509: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:50:08.590548: Inverter 0 discharge windows currently []
2026-08-17 07:50:08.590572: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:50:08.590595: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:50:08.590613: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 07:50:08.646481: Include original charge start 08-17 07:30:00, keeping this instead of new start 08-17 07:30:00
2026-08-17 07:50:08.646606: Inverter 0 Charge window will be: 2026-08-17 07:30:00+01:00 - 2026-08-17 08:00:00+01:00 - current SoC 76%, target 75%
2026-08-17 07:50:08.646771: Inverter 0 Target SoC 75%, (this inverter 75%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 07:50:08.646894: Inverter 0 Hold charging as SoC 76% is above target SoC 75% (global soc target 75%) set_discharge_during_charge True
2026-08-17 07:50:08.647048: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:50:08.647257: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:50:08.647366: No export window planned
2026-08-17 07:50:08.647504: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 07:50:08.647567: Adjust idle time, charge 07:30:00-08:00:00 discharge 00:00:00-00:00:00
2026-08-17 07:50:08.647769: Adjust demand (idle) time computed is 08:00:00-23:59:00
2026-08-17 07:50:08.647891: Inverter 0 setting charging SoC to 75% as per target
2026-08-17 07:50:08.647975: Inverter 0 adjust target SoC for charge to 75% (12.0kWh/16.0kWh 16.0kWh) based on going from 76% -> 75% total add is -0.08kWh and this battery needs to add -0.08kWh to get to 12.0kWh
2026-08-17 07:50:08.648025: Inverter 0 Current Target SoC is 75%, already at target
2026-08-17 07:50:08.648162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648426: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648473: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648500: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648528: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648562: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648593: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648654: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 07:50:08.648983: Inverter 0 count register writes 0
2026-08-17 07:50:08.672575: Total inverter register writes now 860
2026-08-17 07:50:08.708862: Info: Completed run status Hold charging
2026-08-17 07:50:08.715882: Info: record_status Hold charging target 76%-75%
2026-08-17 07:50:08.723320: Saved current settings to /config/predbat_config.json
2026-08-17 07:50:08.723669: Compare, best tariff: current metric 104.68p
2026-08-17 07:50:48.848574: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 07:50:48.848850: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 07:50:48.848893: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 07:50:48.849108: Inverter 0 idle time is 08-17 08:00:00-08-17 23:59:00
2026-08-17 07:50:48.849155: Note: Inverter does not support discharge freeze - disabled
2026-08-17 07:50:48.849176: Note: Inverter does not support charge freeze - disabled
2026-08-17 07:50:48.849194: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 10:28:29.270428: Info: No secrets.yaml file found
2026-08-17 10:28:29.273233: Loading apps.yaml
2026-08-17 10:28:29.298310: Predbat: Startup predbat
2026-08-17 10:28:29.455590: --------------- PredBat - update at 2026-08-17 10:25:00+01:00 with clock skew 0 minutes, minutes now 625
2026-08-17 10:28:29.457755: Config root is /config
2026-08-17 10:28:29.462786: --------------- PredBat - update at 2026-08-17 10:25:00+01:00 with clock skew 0 minutes, minutes now 625
2026-08-17 10:28:29.463003: Initialising Storage interface
2026-08-17 10:28:29.463314: Initialising Home Assistant Interface interface
2026-08-17 10:28:29.497802: Warn: Connection error from http://10.0.20.15:8123/api/services: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/services (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-17 10:28:29.497909: Warn: Unable to connect directly to Home Assistant at http://10.0.20.15:8123, please check your configuration of ha_url/ha_key
2026-08-17 10:28:29.497958: Error: Exception raised
2026-08-17 10:28:29.501940: Error: Traceback (most recent call last):
File "/addon/predbat.py", line 1625, in initialize
self.components.initialize(phase=0)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/addon/components.py", line 583, in initialize
self.components[component_name] = component_info["class"](self.base, **arg_dict)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/addon/component_base.py", line 66, in __init__
self.initialize(**kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^
File "/addon/ha.py", line 432, in initialize
raise ValueError
ValueError
2026-08-17 10:28:29.513656: Error: get_state_wrapper - No HA interface available
2026-08-17 10:28:29.513804: Error: set_state_wrapper - No HA interface available
2026-08-17 10:28:29.513844: Warn: record_status Error: Exception raised
2026-08-17 10:28:29.516338: Stopping Predbat
2026-08-17 10:28:29.516416: Predbat terminating
2026-08-17 10:28:29.516459: Stopping storage interface
2026-08-17 10:28:29.617179: Stopped storage interface
2026-08-17 10:28:29.617310: Info: Components stopped
2026-08-17 10:28:29.617391: Predbat terminated
2026-08-17 10:49:33.968645: Info: No secrets.yaml file found
2026-08-17 10:49:33.969904: Loading apps.yaml
2026-08-17 10:49:34.006912: Predbat: Startup predbat
2026-08-17 10:49:34.093303: --------------- PredBat - update at 2026-08-17 10:45:00+01:00 with clock skew 0 minutes, minutes now 645
2026-08-17 10:49:34.095918: Config root is /config
2026-08-17 10:49:34.096195: --------------- PredBat - update at 2026-08-17 10:45:00+01:00 with clock skew 0 minutes, minutes now 645
2026-08-17 10:49:34.096282: Initialising Storage interface
2026-08-17 10:49:34.096522: Initialising Home Assistant Interface interface
2026-08-17 10:49:34.102527: Warn: Connection error from http://10.0.20.15:8123/api/services: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/services (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-17 10:49:34.102641: Warn: Unable to connect directly to Home Assistant at http://10.0.20.15:8123, please check your configuration of ha_url/ha_key
2026-08-17 10:49:34.102689: Error: Exception raised
2026-08-17 10:49:34.106950: Error: Traceback (most recent call last):
File "/addon/predbat.py", line 1625, in initialize
self.components.initialize(phase=0)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/addon/components.py", line 583, in initialize
self.components[component_name] = component_info["class"](self.base, **arg_dict)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/addon/component_base.py", line 66, in __init__
self.initialize(**kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^
File "/addon/ha.py", line 432, in initialize
raise ValueError
ValueError
2026-08-17 10:49:34.108899: Error: get_state_wrapper - No HA interface available
2026-08-17 10:49:34.109015: Error: set_state_wrapper - No HA interface available
2026-08-17 10:49:34.114249: Warn: record_status Error: Exception raised
2026-08-17 10:49:34.117697: Stopping Predbat
2026-08-17 10:49:34.117784: Predbat terminating
2026-08-17 10:49:34.117831: Stopping storage interface
2026-08-17 10:49:34.218322: Stopped storage interface
2026-08-17 10:49:34.218450: Info: Components stopped
2026-08-17 10:49:34.218540: Predbat terminated
2026-08-17 10:53:43.898321: Info: No secrets.yaml file found
2026-08-17 10:53:43.902530: Loading apps.yaml
2026-08-17 10:53:44.017775: Predbat: Startup predbat
2026-08-17 10:53:44.194931: --------------- PredBat - update at 2026-08-17 10:50:00+01:00 with clock skew 0 minutes, minutes now 650
2026-08-17 10:53:44.197453: Config root is /config
2026-08-17 10:53:44.197638: --------------- PredBat - update at 2026-08-17 10:50:00+01:00 with clock skew 0 minutes, minutes now 650
2026-08-17 10:53:44.197686: Initialising Storage interface
2026-08-17 10:53:44.197876: Initialising Home Assistant Interface interface
2026-08-17 10:53:44.203427: Warn: Connection error from http://10.0.20.15:8123/api/services: HTTPConnectionPool(host='10.0.20.15', port=8123): Max retries exceeded with url: /api/services (Caused by NewConnectionError("HTTPConnection(host='10.0.20.15', port=8123): Failed to establish a new connection: [Errno 111] Connection refused"))
2026-08-17 10:53:44.203539: Warn: Unable to connect directly to Home Assistant at http://10.0.20.15:8123, please check your configuration of ha_url/ha_key
2026-08-17 10:53:44.203606: Error: Exception raised
2026-08-17 10:53:44.208497: Error: Traceback (most recent call last):
File "/addon/predbat.py", line 1625, in initialize
self.components.initialize(phase=0)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/addon/components.py", line 583, in initialize
self.components[component_name] = component_info["class"](self.base, **arg_dict)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/addon/component_base.py", line 66, in __init__
self.initialize(**kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^
File "/addon/ha.py", line 432, in initialize
raise ValueError
ValueError
2026-08-17 10:53:44.210434: Error: get_state_wrapper - No HA interface available
2026-08-17 10:53:44.210537: Error: set_state_wrapper - No HA interface available
2026-08-17 10:53:44.210571: Warn: record_status Error: Exception raised
2026-08-17 10:53:44.221390: Stopping Predbat
2026-08-17 10:53:44.221475: Predbat terminating
2026-08-17 10:53:44.221556: Stopping storage interface
2026-08-17 10:53:44.322045: Stopped storage interface
2026-08-17 10:53:44.322184: Info: Components stopped
2026-08-17 10:53:44.322290: Predbat terminated
2026-08-17 10:54:15.653384: Info: No secrets.yaml file found
2026-08-17 10:54:15.653634: Loading apps.yaml
2026-08-17 10:54:15.682312: Predbat: Startup predbat
2026-08-17 10:54:15.726751: --------------- PredBat - update at 2026-08-17 10:50:00+01:00 with clock skew 0 minutes, minutes now 650
2026-08-17 10:54:15.729344: Config root is /config
2026-08-17 10:54:15.729678: --------------- PredBat - update at 2026-08-17 10:50:00+01:00 with clock skew 0 minutes, minutes now 650
2026-08-17 10:54:15.729850: Initialising Storage interface
2026-08-17 10:54:15.730173: Initialising Home Assistant Interface interface
2026-08-17 10:54:16.344871: Initialising Home Assistant History interface
2026-08-17 10:54:16.345236: Initialising Web Interface interface
2026-08-17 10:54:16.345457: Initialising plugin system
2026-08-17 10:54:16.345673: Scanning for plugins in: /addon
2026-08-17 10:54:16.346328: Plugin discovery complete. Loaded 0 plugins.
2026-08-17 10:54:16.346489: Starting Storage interface
2026-08-17 10:54:16.346635: Creating task: <coroutine object ComponentBase.start at 0x7f763241dd20>
2026-08-17 10:54:16.347330: StorageComponent: Waiting for API to start
2026-08-17 10:54:16.369999: Storage: Cleaned up expired cache file octopus_free_url_cache (module=octopus_free)
2026-08-17 10:54:16.370325: StorageComponent: Started
2026-08-17 10:54:17.348002: Starting Home Assistant Interface interface
2026-08-17 10:54:17.348166: Creating task: <coroutine object HAInterface.start at 0x7f7614924f20>
2026-08-17 10:54:17.349975: HAInterface: Waiting for API to start
2026-08-17 10:54:17.350351: Info: Starting HA interface
2026-08-17 10:54:17.353202: Info: Start socket for url http://10.0.20.15:8123/api/websocket
2026-08-17 10:54:17.415074: Info: Web Socket active
2026-08-17 10:54:18.350567: Starting Home Assistant History interface
2026-08-17 10:54:18.350729: Creating task: <coroutine object ComponentBase.start at 0x7f76148697a0>
2026-08-17 10:54:18.351299: HAHistory: Waiting for API to start
2026-08-17 10:54:18.351739: Info: Starting HAHistory
2026-08-17 10:54:18.351878: Info: HAHistory: Pruning history data started.
2026-08-17 10:54:18.352009: Info: HAHistory: Pruning history data completed.
2026-08-17 10:54:18.352159: HAHistory: Started
2026-08-17 10:54:19.351535: Starting Web Interface interface
2026-08-17 10:54:19.351695: Creating task: <coroutine object WebInterface.start at 0x7f7614ae7230>
2026-08-17 10:54:19.352323: WebInterface: Waiting for API to start
2026-08-17 10:54:20.355293: Config root is /config and printable config_root_p is now /config
2026-08-17 10:54:20.650376: Refreshing Predbat configuration
2026-08-17 10:54:24.665497: Loading current config
2026-08-17 10:54:28.357579: Saved current settings to /config/predbat_config.json
2026-08-17 10:54:29.879804: Compare, best tariff: current metric 104.68p
2026-08-17 10:54:29.916288: Initialising MCP Server interface
2026-08-17 10:54:29.916798: Initialising External Temperature API interface
2026-08-17 10:54:29.917120: Starting MCP Server interface
2026-08-17 10:54:29.917180: Creating task: <coroutine object PredbatMCPServer.start at 0x7f76148c27a0>
2026-08-17 10:54:29.917764: Creating HTTP MCP Server with Predbat integration
2026-08-17 10:54:29.917839: HTTP MCP Server started (web interface integration)
2026-08-17 10:54:29.923994: PredbatMCPServer: Waiting for API to start
2026-08-17 10:54:29.924114: Starting External Temperature API interface
2026-08-17 10:54:29.924156: Creating task: <coroutine object ComponentBase.start at 0x7f7614869d20>
2026-08-17 10:54:29.927986: TemperatureAPI: Waiting for API to start
2026-08-17 10:54:30.264003: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 10:54:30.429331: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 10:54:30.611308: TemperatureAPI: Started
2026-08-17 10:54:30.928477: Initialising ML Load Forecaster interface
2026-08-17 10:54:31.103834: ML Predictor: Upgraded 288 feature std values to prevent extreme normalization
2026-08-17 10:54:31.104341: ML Predictor: Model loaded from /config/predbat_ml_model.npz (trained 2026-08-17 04:50, val_mae=0.0027, val_bias=-0.0002)
2026-08-17 10:54:31.104755: ML Component: Loaded existing model
2026-08-17 10:54:31.105031: Starting ML Load Forecaster interface
2026-08-17 10:54:31.105294: Creating task: <coroutine object ComponentBase.start at 0x7f7614869900>
2026-08-17 10:54:31.138203: LoadMLComponent: Waiting for API to start
2026-08-17 10:54:31.186884: ML Component: Loaded database history: 16912 load points, 3.5h elapsed since save, age 58.0 days (shift will be applied on next fetch)
2026-08-17 10:54:31.200902: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 10:54:57.576837: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 10:54:57.577050: Zero load period starting at 2026-08-17T10:50:00+0100 (0 minutes) for 185 minutes with base value 398.85
2026-08-17 10:54:57.577461: Processing 1297 30-minute periods for power integration
2026-08-17 10:54:57.677221: ML Component: Car charging hold False, car energy reported load False
2026-08-17 10:54:57.781726: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 10:54:57.872451: ML Temperature data points: 48311
2026-08-17 10:55:03.579836: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 10:55:03.603544: ML Component: Data fetch completed, load data age 58.0 days, 16954 data points
2026-08-17 10:55:03.603728: ML Component: No training needed, model age is 4.99 hours
2026-08-17 10:55:03.603833: ML Component: Generating predictions load data age 58.0 days, 16954 data points
2026-08-17 10:55:03.889567: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0235 max_dow {0: 0.08534444450702933, 1: 0.10010624997783452, 2: 0.10805312459506095, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 10:55:14.512842: ML Component: Generated 576 predictions (total 33.82 kWh over 48h)
2026-08-17 10:55:15.608707: ML Component: Prediction cycle completed
2026-08-17 10:55:15.668896: ML Component: Saved 16954 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 10:55:15.670351: LoadMLComponent: Started
2026-08-17 10:55:16.179631: Refreshing Predbat configuration
2026-08-17 10:55:17.851933: Watch list []
2026-08-17 10:55:18.614921: Saved current settings to /config/predbat_config.json
2026-08-17 10:55:18.616259: Regular expression argument octopus_intelligent_slot matched ^(binary_sensor.octopus_energy([0-9a-z_]+|)_intelligent_dispatching)$ with binary_sensor.octopus_energy_00000000_0002_4000_8020_00000011dbf8_intelligent_dispatching
2026-08-17 10:55:18.617410: Regular expression argument octopus_ready_time matched ^((select|time).octopus_energy_([0-9a-z_]+|)_intelligent_target_time)$ with time.octopus_energy_00000000_0002_4000_8020_00000011dbf8_intelligent_target_time
2026-08-17 10:55:18.618489: Regular expression argument octopus_charge_limit matched ^(number.octopus_energy([0-9a-z_]+|)_intelligent_charge_target)$ with number.octopus_energy_00000000_0002_4000_8020_00000011dbf8_intelligent_charge_target
2026-08-17 10:55:18.620960: Regular expression argument octopus_saving_session matched ^(binary_sensor.octopus_energy([0-9a-z_]+|)_saving_session(s|))$ with binary_sensor.octopus_energy_a_db198414_octoplus_saving_sessions
2026-08-17 10:55:18.622057: Regular expression argument octopus_free_session matched ^(event.octopus_energy_([0-9a-z_]+|)_octoplus_free_electricity_session_events)$ with event.octopus_energy_a_db198414_octoplus_free_electricity_session_events
2026-08-17 10:55:18.622277: Warn: Validation of apps.yaml found configuration item 'load_today' element sensor.sunsynk_day_load_energy is not a valid type float
2026-08-17 10:55:18.622360: Warn: Validation of apps.yaml found configuration item 'import_today' element sensor.sunsynk_day_grid_import is not a valid type float
2026-08-17 10:55:18.622424: Warn: Validation of apps.yaml found configuration item 'export_today' element sensor.sunsynk_day_grid_export is not a valid type float
2026-08-17 10:55:18.622524: Warn: Validation of apps.yaml found configuration item 'battery_power' element sensor.sunsynk_battery_power is not a valid type float
2026-08-17 10:55:18.622617: Warn: Validation of apps.yaml found configuration item 'load_power' element sensor.sunsynk_load_power is not a valid type float
2026-08-17 10:55:18.623253: Error: Validation of apps.yaml found 5 configuration errors
2026-08-17 10:55:18.628182: Restored saved plan from 220 minutes ago: 4 charge windows, 0 export windows
2026-08-17 10:55:18.638163: Predbat: Next run time will be 2026-08-17 10:55:00 and then every 300 seconds
2026-08-17 10:55:19.744396: Refreshing Predbat configuration
2026-08-17 10:55:21.165077: Saved current settings to /config/predbat_config.json
2026-08-17 10:55:21.165258: Warn: Validation of apps.yaml found configuration item 'load_today' element sensor.sunsynk_day_load_energy is not a valid type float
2026-08-17 10:55:21.165386: Warn: Validation of apps.yaml found configuration item 'import_today' element sensor.sunsynk_day_grid_import is not a valid type float
2026-08-17 10:55:21.165473: Warn: Validation of apps.yaml found configuration item 'export_today' element sensor.sunsynk_day_grid_export is not a valid type float
2026-08-17 10:55:21.165599: Warn: Validation of apps.yaml found configuration item 'battery_power' element sensor.sunsynk_battery_power is not a valid type float
2026-08-17 10:55:21.165686: Warn: Validation of apps.yaml found configuration item 'load_power' element sensor.sunsynk_load_power is not a valid type float
2026-08-17 10:55:21.166270: Error: Validation of apps.yaml found 5 configuration errors
2026-08-17 10:55:21.166407: --------------- PredBat - update at 2026-08-17 10:55:00+01:00 with clock skew 0 minutes, minutes now 655
2026-08-17 10:55:21.166839: Saved current settings to /config/predbat_config.json
2026-08-17 10:55:21.370903: Loaded GitHub URL cache from storage (1 entries)
2026-08-17 10:55:21.626936: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 10:55:21.627046: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 10:55:21.723085: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 10:55:21.723215: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 10:55:21.723427: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 10:55:21.724157: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 10:55:21.724312: Predbat mode is set to Control charge & discharge
2026-08-17 10:55:21.921287: Found 21602 load_today datapoints going back 28 days
2026-08-17 10:55:21.921448: Using load_power data to fill gaps in load_today data
2026-08-17 10:55:22.784966: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 10:55:22.785135: Zero load period starting at 2026-08-17T10:55:00+0100 (0 minutes) for 190 minutes with base value 215.9
2026-08-17 10:55:22.785451: Processing 721 30-minute periods for power integration
2026-08-17 10:55:23.140472: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 10:55:23.140611: Car charging hold False, threshold 6.0kWh
2026-08-17 10:55:23.140660: Current data so far today: load 4.4kWh, import 6.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 10:55:23.249359: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 10:55:23.249463: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 10:55:23.250147: Standing charge is set to 46.63p
2026-08-17 10:55:23.348840: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.349087: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.349293: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.349469: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.349692: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.349881: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.350049: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.350238: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.350425: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.350694: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.350877: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.351138: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.351379: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.351584: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 10:55:23.351805: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 0.93, kWh location , source SMART, octopus_slot_low_rate True
2026-08-17 10:55:23.351885: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 10:55:23.357590: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 10:55:23.358091: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 10:55:23.401326: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 10:55:23.401435: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 10:55:23.402584: High export rate found rates in range 99p to -99p
2026-08-17 10:55:23.431717: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 10:55:23.431833: Car 0 on Octopus Intelligent, no active plan
2026-08-17 10:55:23.449358: Battery level now 12.08kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour 0.0p, change today 10.94p, rate_forward 6.87p
2026-08-17 10:55:23.449861: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.29kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 10:55:23.506083: Today's energy total net 6.5kWh, import 6.5kWh, export 0.0kWh, cost 103.08p, import 56.44p, export 0.0p, carbon 0.0kg
2026-08-17 10:55:23.506216: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 10:55:23.591718: Using weighted-bucket historical load forecast over 14 days
2026-08-17 10:55:23.736903: Today's load divergence 92.15%, in-day adjustment 79.37%, damping 0.95x, yesterday 68.37% today 92.54% blend 54.51%
2026-08-17 10:55:23.737289: Today's predicted so far 6.46kWh with 0.0kWh car/iBoost excluded, 3.43kWh import ignored, and 6.46kWh forecast extra.
2026-08-17 10:55:23.737363: Today's actual load so far 5.3kWh with 0.0kWh car/iBoost excluded, and 3.43kWh import ignored.
2026-08-17 10:55:23.772114: Octopus slots changed from [[], [], [], [], [], [], [], []] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]]
2026-08-17 10:55:23.772370: Octopus free slots changed from [] to [{'start': '2024-08-15T13:00:00+01:00', 'end': '2024-08-15T14:00:00+01:00', 'rate': 0}, {'start': '2024-08-18T13:00:00+01:00', 'end': '2024-08-18T14:00:00+01:00', 'rate': 0}, {'start': '2024-08-21T13:00:00+01:00', 'end': '2024-08-21T14:00:00+01:00', 'rate': 0}, {'start': '2024-08-31T13:00:00+01:00', 'end': '2024-08-31T14:00:00+01:00', 'rate': 0}, {'start': '2024-09-10T13:00:00+01:00', 'end': '2024-09-10T14:00:00+01:00', 'rate': 0}, {'start': '2024-09-14T13:00:00+01:00', 'end': '2024-09-14T14:00:00+01:00', 'rate': 0}, {'start': '2024-10-20T13:00:00+01:00', 'end': '2024-10-20T14:00:00+01:00', 'rate': 0}, {'start': '2024-11-24T07:00:00+00:00', 'end': '2024-11-24T09:00:00+00:00', 'rate': 0}, {'start': '2025-06-22T14:00:00+01:00', 'end': '2025-06-22T15:00:00+01:00', 'rate': 0}, {'start': '2025-07-05T14:00:00+01:00', 'end': '2025-07-05T15:00:00+01:00', 'rate': 0}, {'start': '2025-08-05T14:00:00+01:00', 'end': '2025-08-05T15:00:00+01:00', 'rate': 0}, {'start': '2025-08-09T14:00:00+01:00', 'end': '2025-08-09T15:00:00+01:00', 'rate': 0}, {'start': '2025-08-31T14:00:00+01:00', 'end': '2025-08-31T15:00:00+01:00', 'rate': 0}, {'start': '2025-09-01T14:00:00+01:00', 'end': '2025-09-01T15:00:00+01:00', 'rate': 0}, {'start': '2025-09-06T14:00:00+01:00', 'end': '2025-09-06T15:00:00+01:00', 'rate': 0}, {'start': '2025-09-07T12:00:00+01:00', 'end': '2025-09-07T14:00:00+01:00', 'rate': 0}, {'start': '2025-09-11T12:00:00+01:00', 'end': '2025-09-11T13:00:00+01:00', 'rate': 0}, {'start': '2025-09-15T14:00:00+01:00', 'end': '2025-09-15T15:00:00+01:00', 'rate': 0}, {'start': '2025-09-18T14:00:00+01:00', 'end': '2025-09-18T15:00:00+01:00', 'rate': 0}, {'start': '2025-10-04T12:00:00+01:00', 'end': '2025-10-04T14:00:00+01:00', 'rate': 0}, {'start': '2025-10-05T11:00:00+01:00', 'end': '2025-10-05T12:00:00+01:00', 'rate': 0}, {'start': '2025-10-24T21:00:00+01:00', 'end': '2025-10-24T22:00:00+01:00', 'rate': 0}, {'start': '2025-10-25T12:00:00+01:00', 'end': '2025-10-25T15:00:00+01:00', 'rate': 0}]
2026-08-17 10:55:23.772844: Sensor changes require a replan, will recompute the plan
2026-08-17 10:55:23.773081: Inverter 0: Type SK Sunsynk
2026-08-17 10:55:23.773139: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 10:55:27.978791: Find battery size has 15 days of data, max days 15
2026-08-17 10:55:27.979165: Charge start 20185 soc 22.0 end 20165 soc 29.05
2026-08-17 10:55:27.979210: Charging clipped start at 20175 with SoC 24%, end at 20165 with SoC 29%; SoC change 5%
2026-08-17 10:55:27.979269: Charge start 20125 soc 31.0 end 19957 soc 100.0
2026-08-17 10:55:27.979314: Charging clipped start at 20115 with SoC 33%, end at 19985 with SoC 90%; SoC change 57%
2026-08-17 10:55:27.979361: Power added over 131 samples is 9.9kWh
2026-08-17 10:55:27.979417: Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 57% SoC over 131 minutes
2026-08-17 10:55:27.979939: Charge start 17215 soc 15.0 end 17036 soc 89.65
2026-08-17 10:55:27.979979: Charging clipped start at 17205 with SoC 17%, end at 17040 with SoC 89%; SoC change 72%
2026-08-17 10:55:27.980035: Power added over 166 samples is 12.5kWh
2026-08-17 10:55:27.980064: Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 72% SoC over 166 minutes
2026-08-17 10:55:27.980092: Charge start 17005 soc 92.0 end 16978 soc 100.0
2026-08-17 10:55:27.980296: Charge start 15918 soc 68.0 end 15917 soc 68.0
2026-08-17 10:55:27.980336: Charge start 15895 soc 69.0 end 15819 soc 99.5
2026-08-17 10:55:27.980368: Charging clipped start at 15885 with SoC 71%, end at 15845 with SoC 88%; SoC change 17%
2026-08-17 10:55:27.980397: Power added over 41 samples is 3.1kWh
2026-08-17 10:55:27.980419: Battery size sample accepted raw 18.13kWh adjusted 16.89kWh from 17% SoC over 41 minutes
2026-08-17 10:55:27.980708: Charge start 14245 soc 42.0 end 14221 soc 49.25
2026-08-17 10:55:27.980742: Charging clipped start at 14235 with SoC 44%, end at 14225 with SoC 49%; SoC change 5%
2026-08-17 10:55:27.980773: Charge start 14155 soc 52.0 end 14153 soc 52.0
2026-08-17 10:55:27.980819: Charge start 14125 soc 53.0 end 14096 soc 62.05
2026-08-17 10:55:27.980844: Charging clipped start at 14115 with SoC 55%, end at 14100 with SoC 62%; SoC change 7%
2026-08-17 10:55:27.981046: Charge start 12939 soc 9.0 end 12930 soc 11.15
2026-08-17 10:55:27.981079: Charge start 12913 soc 9.35 end 12904 soc 10.65
2026-08-17 10:55:27.981134: Charge start 12895 soc 11.8 end 12682 soc 100.0
2026-08-17 10:55:27.981167: Charging clipped start at 12895 with SoC 11%, end at 12710 with SoC 90%; SoC change 79%
2026-08-17 10:55:27.981216: Power added over 186 samples is 14.1kWh
2026-08-17 10:55:27.981242: Battery size sample accepted raw 17.84kWh adjusted 16.61kWh from 79% SoC over 186 minutes
2026-08-17 10:55:27.981456: Charge start 11545 soc 13.0 end 11456 soc 49.25
2026-08-17 10:55:27.981494: Charging clipped start at 11540 with SoC 14%, end at 11460 with SoC 49%; SoC change 35%
2026-08-17 10:55:27.981528: Power added over 81 samples is 6.1kWh
2026-08-17 10:55:27.981549: Battery size sample accepted raw 17.47kWh adjusted 16.27kWh from 35% SoC over 81 minutes
2026-08-17 10:55:27.981580: Charge start 11425 soc 53.0 end 11412 soc 55.75
2026-08-17 10:55:27.981610: Charge start 11395 soc 59.0 end 11373 soc 65.842
2026-08-17 10:55:27.981636: Charging clipped start at 11385 with SoC 61%, end at 11375 with SoC 65%; SoC change 4%
2026-08-17 10:55:27.981667: Charge start 11365 soc 69.0 end 11289 soc 99.65
2026-08-17 10:55:27.981697: Charging clipped start at 11365 with SoC 69%, end at 11315 with SoC 89%; SoC change 20%
2026-08-17 10:55:27.981724: Power added over 51 samples is 3.9kWh
2026-08-17 10:55:27.981748: Battery size sample accepted raw 19.33kWh adjusted 18.0kWh from 20% SoC over 51 minutes
2026-08-17 10:55:27.981950: Charge start 10135 soc 25.1 end 10121 soc 28.421
2026-08-17 10:55:27.981975: Charging clipped start at 10135 with SoC 25%, end at 10125 with SoC 28%; SoC change 3%
2026-08-17 10:55:27.982008: Charge start 10045 soc 31.0 end 10030 soc 35.75
2026-08-17 10:55:27.982030: Charging clipped start at 10035 with SoC 33%, end at 10030 with SoC 35%; SoC change 2%
2026-08-17 10:55:27.982075: Charge start 9955 soc 37.95 end 9857 soc 77.8
2026-08-17 10:55:27.982094: Charging clipped start at 9955 with SoC 37%, end at 9860 with SoC 77%; SoC change 40%
2026-08-17 10:55:27.982131: Power added over 96 samples is 7.3kWh
2026-08-17 10:55:27.982156: Battery size sample accepted raw 18.13kWh adjusted 16.88kWh from 40% SoC over 96 minutes
2026-08-17 10:55:27.982409: Charge start 8515 soc 10.85 end 8362 soc 74.55
2026-08-17 10:55:27.982434: Charging clipped start at 8515 with SoC 10%, end at 8365 with SoC 74%; SoC change 64%
2026-08-17 10:55:27.982489: Power added over 151 samples is 11.4kWh
2026-08-17 10:55:27.982511: Battery size sample accepted raw 17.86kWh adjusted 16.63kWh from 64% SoC over 151 minutes
2026-08-17 10:55:27.982687: Charge start 7365 soc 9.0 end 7356 soc 9.25
2026-08-17 10:55:27.982729: Charge start 7266 soc 9.0 end 7257 soc 9.75
2026-08-17 10:55:27.982773: Charge start 7195 soc 13.0 end 7125 soc 41.95
2026-08-17 10:55:27.982795: Charging clipped start at 7185 with SoC 15%, end at 7125 with SoC 41%; SoC change 26%
2026-08-17 10:55:27.982823: Power added over 61 samples is 4.6kWh
2026-08-17 10:55:27.982846: Battery size sample accepted raw 17.73kWh adjusted 16.51kWh from 26% SoC over 61 minutes
2026-08-17 10:55:27.982889: Charge start 7105 soc 44.0 end 6963 soc 100.0
2026-08-17 10:55:27.982930: Charging clipped start at 7095 with SoC 46%, end at 6995 with SoC 90%; SoC change 44%
2026-08-17 10:55:27.982980: Power added over 101 samples is 7.7kWh
2026-08-17 10:55:27.983001: Battery size sample accepted raw 17.44kWh adjusted 16.24kWh from 44% SoC over 101 minutes
2026-08-17 10:55:27.983107: Charge start 6385 soc 45.65 end 6382 soc 45.65
2026-08-17 10:55:27.983147: Charge start 6295 soc 42.0 end 6291 soc 42.0
2026-08-17 10:55:27.983267: Charge start 5710 soc 19.0 end 5698 soc 22.05
2026-08-17 10:55:27.983314: Charge start 5605 soc 22.0 end 5587 soc 27.55
2026-08-17 10:55:27.983347: Charging clipped start at 5600 with SoC 23%, end at 5590 with SoC 27%; SoC change 4%
2026-08-17 10:55:27.983385: Charge start 5575 soc 31.0 end 5482 soc 68.55
2026-08-17 10:55:27.983411: Charging clipped start at 5565 with SoC 33%, end at 5485 with SoC 68%; SoC change 35%
2026-08-17 10:55:27.983442: Power added over 81 samples is 6.2kWh
2026-08-17 10:55:27.983462: Battery size sample accepted raw 17.58kWh adjusted 16.37kWh from 35% SoC over 81 minutes
2026-08-17 10:55:27.983601: Charge start 4941 soc 9.8 end 4932 soc 9.65
2026-08-17 10:55:27.983635: Charge start 4907 soc 9.45 end 4899 soc 10.3
2026-08-17 10:55:27.983664: Charge start 4871 soc 9.65 end 4862 soc 9.8
2026-08-17 10:55:27.983693: Charge start 4835 soc 9.0 end 4826 soc 9.3
2026-08-17 10:55:27.983722: Charge start 4824 soc 11.55 end 4805 soc 19.9
2026-08-17 10:55:27.983740: Charging clipped start at 4820 with SoC 13%, end at 4805 with SoC 19%; SoC change 6%
2026-08-17 10:55:27.983830: Charge start 4425 soc 8.9 end 4417 soc 9.6
2026-08-17 10:55:27.983865: Charge start 4382 soc 9.05 end 4373 soc 10.05
2026-08-17 10:55:27.983895: Charge start 4337 soc 9.0 end 4329 soc 10.3
2026-08-17 10:55:27.983952: Charge start 4299 soc 9.05 end 4290 soc 11.05
2026-08-17 10:55:27.984033: Charge start 4247 soc 9.0 end 4239 soc 10.211
2026-08-17 10:55:27.984089: Charge start 4229 soc 12.1 end 4228 soc 12.1
2026-08-17 10:55:27.984136: Charge start 4195 soc 13.0 end 4076 soc 61.65
2026-08-17 10:55:27.984163: Charging clipped start at 4185 with SoC 15%, end at 4080 with SoC 61%; SoC change 46%
2026-08-17 10:55:27.984199: Power added over 106 samples is 8.0kWh
2026-08-17 10:55:27.984227: Battery size sample accepted raw 17.48kWh adjusted 16.27kWh from 46% SoC over 106 minutes
2026-08-17 10:55:27.984256: Charge start 4045 soc 63.0 end 4017 soc 72.85
2026-08-17 10:55:27.984282: Charging clipped start at 4040 with SoC 64%, end at 4020 with SoC 72%; SoC change 8%
2026-08-17 10:55:27.984395: Charge start 3527 soc 9.5 end 3519 soc 10.25
2026-08-17 10:55:27.984430: Charge start 3488 soc 9.0 end 3479 soc 10.7
2026-08-17 10:55:27.984460: Charge start 3444 soc 9.0 end 3435 soc 10.9
2026-08-17 10:55:27.984508: Charge start 3386 soc 10.3 end 3377 soc 9.7
2026-08-17 10:55:27.984556: Charge start 3297 soc 9.0 end 3288 soc 10.1
2026-08-17 10:55:27.984590: Charge start 3241 soc 9.0 end 3232 soc 9.7
2026-08-17 10:55:27.984634: Charge start 3141 soc 9.0 end 3133 soc 10.0
2026-08-17 10:55:27.984684: Charge start 3006 soc 9.0 end 2997 soc 9.75
2026-08-17 10:55:27.984726: Charge start 2899 soc 9.0 end 2890 soc 11.1
2026-08-17 10:55:27.984762: Charge start 2845 soc 13.0 end 2821 soc 20.15
2026-08-17 10:55:27.984789: Charging clipped start at 2835 with SoC 15%, end at 2825 with SoC 20%; SoC change 5%
2026-08-17 10:55:27.984817: Charge start 2785 soc 22.7 end 2781 soc 22.7
2026-08-17 10:55:27.984879: Charge start 2755 soc 25.0 end 2576 soc 99.45
2026-08-17 10:55:27.984909: Charging clipped start at 2745 with SoC 27%, end at 2600 with SoC 90%; SoC change 63%
2026-08-17 10:55:27.984954: Power added over 146 samples is 11.1kWh
2026-08-17 10:55:27.984977: Battery size sample accepted raw 17.55kWh adjusted 16.34kWh from 63% SoC over 146 minutes
2026-08-17 10:55:27.985215: Charge start 1435 soc 44.0 end 1376 soc 66.5
2026-08-17 10:55:27.985244: Charging clipped start at 1425 with SoC 46%, end at 1380 with SoC 66%; SoC change 20%
2026-08-17 10:55:27.985271: Power added over 46 samples is 3.5kWh
2026-08-17 10:55:27.985302: Battery size sample accepted raw 17.29kWh adjusted 16.1kWh from 20% SoC over 46 minutes
2026-08-17 10:55:27.985326: Charge start 1345 soc 68.8 end 1332 soc 71.45
2026-08-17 10:55:27.985359: Charging clipped start at 1345 with SoC 68%, end at 1335 with SoC 71%; SoC change 3%
2026-08-17 10:55:27.985579: Charge start 685 soc 54.0 end 655 soc 65.55
2026-08-17 10:55:27.985635: Charging clipped start at 675 with SoC 56%, end at 655 with SoC 65%; SoC change 9%
2026-08-17 10:55:27.985732: Charge start 445 soc 66.0 end 416 soc 75.35
2026-08-17 10:55:27.985801: Charging clipped start at 435 with SoC 68%, end at 420 with SoC 75%; SoC change 7%
2026-08-17 10:55:27.985869: Charge start 354 soc 78.0 end 350 soc 78.95
2026-08-17 10:55:27.985998: Estimated battery size is 16.39kWh from 11 selected samples, 14 accepted samples, 13 rejected samples, median 16.34kWh (assumed charging loss factor 0.9, rejects {'soc_change_too_small': 13})
2026-08-17 10:55:27.998452: Inverter 0 battery size tracking: found_size 16.39 kWh, history {'2026-08-17': 16.39, '2026-08-16': 16.39, '2026-08-15': 16.39, '2026-08-14': 16.42, '2026-08-13': 16.48, '2026-08-12': 16.49, '2026-08-11': 16.47}, trimmed_mean 16.43 kWh, degradation -2.69%, configured battery_scaling 100% (configured degradation 0%)
2026-08-17 10:55:28.005688: Reserve min: 7%, battery_min: 7%
2026-08-17 10:55:28.005819: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 10:55:28.005874: **** Creating dummy entity sensor.predbat_SK_0_scheduled_charge_enable with value on and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.011276: **** Creating dummy entity sensor.predbat_SK_0_scheduled_discharge_enable with value on and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.017139: **** Creating dummy entity sensor.predbat_SK_0_reserve with value 1.12 and attributes {'state_class': 'measurement', 'unit_of_measurement': '%', 'icon': 'mdi:battery-lock'}
2026-08-17 10:55:28.022934: **** Creating dummy entity sensor.predbat_SK_0_charge_rate with value 5000.0 and attributes {'state_class': 'measurement', 'unit_of_measurement': 'W', 'device_class': 'power'}
2026-08-17 10:55:28.028644: **** Creating dummy entity sensor.predbat_SK_0_discharge_rate with value 5000.0 and attributes {'state_class': 'measurement', 'unit_of_measurement': 'W', 'device_class': 'power'}
2026-08-17 10:55:28.034684: **** Creating dummy entity sensor.predbat_SK_0_inverter_mode with value Eco and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.040731: **** Creating dummy entity sensor.predbat_SK_0_charge_start_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.046329: **** Creating dummy entity sensor.predbat_SK_0_charge_end_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.051882: **** Creating dummy entity sensor.predbat_SK_0_discharge_start_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.057105: **** Creating dummy entity sensor.predbat_SK_0_discharge_end_time with value 23:59:00 and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.062300: **** Creating dummy entity sensor.predbat_SK_0_idle_start_time with value 00:00:00 and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.067077: **** Creating dummy entity sensor.predbat_SK_0_idle_end_time with value 00:00:00 and attributes {'state_class': 'measurement'}
2026-08-17 10:55:28.072152: Warn: Return bad float value unknown from soc_percent using default 0.0
2026-08-17 10:55:28.077375: Warn: record_status Warn: Return bad float value unknown from soc_percent
2026-08-17 10:55:28.077517: Warn: Return bad float value unknown from battery_power using default 0.0
2026-08-17 10:55:28.082623: Warn: record_status Warn: Return bad float value unknown from battery_power
2026-08-17 10:55:28.082759: Warn: Return bad float value unknown from grid_power using default 0.0
2026-08-17 10:55:28.088569: Warn: record_status Warn: Return bad float value unknown from grid_power
2026-08-17 10:55:28.088698: Warn: Return bad float value unknown from load_power using default 0.0
2026-08-17 10:55:28.094400: Warn: record_status Warn: Return bad float value unknown from load_power
2026-08-17 10:55:28.094549: Inverter 0 SoC: 0.0kW 0%, current charge rate 5000W, current discharge rate 5250W, current battery power 0W, current battery voltage 51.2V, grid power 0W, load power 0W, PV Power 0W
2026-08-17 10:55:33.100937: Inverter 0 Wrote scheduled_charge_enable to False successfully and got off
2026-08-17 10:55:33.101167: Inverter 0 scheduled charge enable is False
2026-08-17 10:55:33.101228: Inverter 0 charge windows currently []
2026-08-17 10:55:33.101274: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 10:55:38.108666: Inverter 0 Wrote scheduled_discharge_enable to False successfully and got off
2026-08-17 10:55:38.108771: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 10:55:38.108841: Inverter 0 scheduled discharge enable is False
2026-08-17 10:55:38.109103: Inverter 0 idle time is 08-18 00:00:00-08-18 00:00:00
2026-08-17 10:55:38.109171: Inverter 0 discharge windows currently []
2026-08-17 10:55:38.109243: Looking for discharge curve with sensors sensor.sunsynk_battery_soc, sensor.predbat_SK_0_discharge_rate, predbat.status and sensor.sunsynk_battery_power
2026-08-17 10:55:38.596732: Looking for discharge curve, have found 15.0 days of history data, max days 15
2026-08-17 10:55:38.661129: Info: Cannot find battery discharge curve (no full rate discharge cycle to empty found in history), battery may not have been fully charged/discharged at max rate recently - this is normal in cost-optimised operation
2026-08-17 10:55:38.671855: Note: Inverter does not support discharge freeze - disabled
2026-08-17 10:55:38.671994: Note: Inverter does not support charge freeze - disabled
2026-08-17 10:55:38.672033: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 10:55:38.741786: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 10:55:38.741873: Will recompute the plan as it is invalid
2026-08-17 10:55:38.741974: Recompute is saving previous plan...
2026-08-17 10:55:38.742798: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 10:55:38.742852: Best export window [ ]
2026-08-17 10:55:38.743603: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 10:55:38.746135: Load divergence over 8.0 hours mean 644.09W, min 384.0W, max 2007.0W, std dev 329.66W, divergence 25.59%
2026-08-17 10:55:38.759072: Calculating data from yesterday for savings calculation
2026-08-17 10:55:38.768132: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 10:55:39.059989: Warn: Prediction kernel failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so)) - using Python engine
2026-08-17 10:55:39.078717: predict yesterday end_record 08-18 00:00:00, final soc 10.01kWh, metric 233.22p, metric_keep 0.03kWh, min_soc 0.39kWh @ 08-17 00:00:00, load 11.39kWh, PV 0.0kWh
2026-08-17 10:55:39.094839: predict yesterday10 end_record 08-18 00:00:00, final soc 9.62kWh, metric 229.88p, metric_keep 0.05kWh, min_soc 0.32kWh @ 08-17 00:00:00, load 11.39kWh, PV 0.0kWh
2026-08-17 10:55:39.116929: predict yesterday end_record 08-18 00:00:00, final soc 10.01kWh, metric 233.22p, metric_keep 0.03kWh, min_soc 0.39kWh @ 08-17 00:00:00, load 11.39kWh, PV 0.0kWh
2026-08-17 10:55:39.151989: Yesterday: Predbat disabled was £2.33 (adjusted £1.64) vs £3.17 (adjusted £2.5), saving £-0.84 (adjusted £-0.86) with import 23.32kWh, export 0.0kWh, battery_cycle 26.97kWh, start_soc 0.0kWh, final_soc 10.01kWh and battery_value 68.76kWh
2026-08-17 10:55:39.219612: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 300.15p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.39kWh, PV 0.0kWh
2026-08-17 10:55:39.219785: Yesterday: No Battery/PV system cost predicted was £3.0 (adjusted £3.0) vs £3.17 (adjusted £2.5), saving £-0.17 (adjusted £0.5) with import 11.39kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 10:55:39.230736: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 10:55:39.230843: LoadML is_calculating False
2026-08-17 10:55:39.230923: Creating pool of 12 processes to match your CPU count
2026-08-17 10:55:39.366328: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 10:55:39.367136: Optimise levels pass started at 2026-08-17 10:55:39
2026-08-17 10:55:39.367185: Optimise all windows, total charge 24 export 1
2026-08-17 10:55:39.719985: >> Region optimisation pass width 960 gives best_metric 928.52p, best_cost 647.11p, best_cycle 43.04kWh, best_import 45.2kWh
2026-08-17 10:55:39.874913: >> Region optimisation pass width 480 gives best_metric 928.52p, best_cost 647.11p, best_cycle 43.04kWh, best_import 45.2kWh
2026-08-17 10:55:40.140773: >> Region optimisation pass width 240 gives best_metric 928.52p, best_cost 647.11p, best_cycle 43.04kWh, best_import 45.2kWh
2026-08-17 10:55:41.208478: >> Region optimisation pass width 120 gives best_metric 922.04p, best_cost 600.1p, best_cycle 43.74kWh, best_import 39.33kWh
2026-08-17 10:55:41.208710: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 10:55:41.208803: Optimise levels pass ended at 2026-08-17 10:55:41, duration 1.8 seconds tried 68 combinations
2026-08-17 10:55:41.208908: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 922.04p, best_keep 357.67kWh, best_cycle 43.74kWh, best_carbon 0kg, best_import 39.33kWh
2026-08-17 10:55:41.227610: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.25, 15.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 10:55:43.709406: Tweak plan optimisation started metric 849.61p, cost 504.64p
2026-08-17 10:55:44.058761: Tweak optimisation finished metric 849.61p, cost 504.64p, metric_keep 357.19kWh, cycle 27.93kWh, carbon 0kg, import 27.39kWh, changed 8 window(s)
2026-08-17 10:55:44.077810: Swap charge optimisation started metric 849.61p, cost 504.64p, min_improvement_swap 0.1p
2026-08-17 10:55:44.866557: Swap charge optimisation finished metric 849.61p, cost 504.64p
2026-08-17 10:55:44.985009: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 10:55:44.985603: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 10:55:44.986006: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 10:55:44.986431: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 10:55:45.023532: Previous plan best metric is 849.02 (cost 502.31) and new plan best metric is 849.61 (cost 504.64)
2026-08-17 10:55:45.023749: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 10:55:45.023966: Plan valid is now true after recompute was False
2026-08-17 10:55:45.052959: predict base end_record 08-18 23:30:00, final soc 0.0kWh, metric 819.88p, metric_keep 1011.32kWh, min_soc 0.0kWh @ 08-17 10:55:00, load 27.65kWh, PV 0.0kWh
2026-08-17 10:55:45.173360: Battery has 0.0 hours left - now at 0.0kWh
2026-08-17 10:55:45.236262: predict base10 end_record 08-18 23:30:00, final soc 0.0kWh, metric 851.79p, metric_keep 1011.32kWh, min_soc 0.0kWh @ 08-17 10:55:00, load 28.76kWh, PV 0.0kWh
2026-08-17 10:55:45.313931: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 561.98p, metric_keep 361.07kWh, min_soc 0.0kWh @ 08-17 10:55:00, load 28.76kWh, PV 0.0kWh
2026-08-17 10:55:45.392067: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 548.95p, metric_keep 357.31kWh, min_soc 0.0kWh @ 08-17 10:55:00, load 27.65kWh, PV 0.0kWh
2026-08-17 10:55:45.392169: Saving plan best values to HA entities
2026-08-17 10:55:45.575034: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 10:55:45.581345: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 10:55:45.587360: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 20.02kWh, house 7.08kWh, export 0.0kWh, metric 548.95p, metric10 561.98p
2026-08-17 10:55:45.670835: Marginal costs baseline metric (no standing charge): 502.3112
2026-08-17 10:55:45.944057: Marginal energy costs matrix computed: min=23.02 max=33.75
2026-08-17 10:55:46.020334: Rate array import [{'start': 655, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 655, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 10:55:46.021103: - Your estimated bill for today is £3.66 and tomorrow is £2.08
2026-08-17 10:55:46.021150: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 10:55:46.021172: - The battery is currently at 0% and is in eco mode for the next 12 hours.
2026-08-17 10:55:46.021191: - For the next 48 hours there will be no solar generation.
2026-08-17 10:55:46.021212: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 10:55:46.021230:
2026-08-17 10:55:46.074422: Plan calculation took 7.33 seconds
2026-08-17 10:55:46.078731: Saved plan to storage
2026-08-17 10:55:46.082263: No high rate period found
2026-08-17 10:55:46.140503: Import threshold used for optimisation was 8.0p
2026-08-17 10:55:46.196474: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 10:55:46.204841: Inverter 0: Type SK Sunsynk
2026-08-17 10:55:46.204933: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 10:55:46.205169: Reserve min: 7%, battery_min: 7%
2026-08-17 10:55:46.205254: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 10:55:46.205511: Warn: Return bad float value unknown from soc_percent using default 0.0
2026-08-17 10:55:46.211773: Warn: record_status Warn: Return bad float value unknown from soc_percent
2026-08-17 10:55:46.211934: Warn: Return bad float value unknown from battery_power using default 0.0
2026-08-17 10:55:46.217739: Warn: record_status Warn: Return bad float value unknown from battery_power
2026-08-17 10:55:46.217884: Warn: Return bad float value unknown from grid_power using default 0.0
2026-08-17 10:55:46.223580: Warn: record_status Warn: Return bad float value unknown from grid_power
2026-08-17 10:55:46.223724: Warn: Return bad float value unknown from load_power using default 0.0
2026-08-17 10:55:46.229537: Warn: record_status Warn: Return bad float value unknown from load_power
2026-08-17 10:55:46.229674: Inverter 0 SoC: 0.0kW 0%, current charge rate 5000W, current discharge rate 5250W, current battery power 0W, current battery voltage 51.2V, grid power 0W, load power 0W, PV Power 0W
2026-08-17 10:55:46.229905: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 10:55:46.230016: Inverter 0 scheduled charge enable is False
2026-08-17 10:55:46.230054: Inverter 0 charge windows currently []
2026-08-17 10:55:46.230086: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 10:55:46.230212: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 10:55:46.230253: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 10:55:46.230335: Inverter 0 scheduled discharge enable is False
2026-08-17 10:55:46.230477: Inverter 0 idle time is 08-18 00:00:00-08-18 00:00:00
2026-08-17 10:55:46.230517: Inverter 0 discharge windows currently []
2026-08-17 10:55:46.230550: Note: Inverter does not support discharge freeze - disabled
2026-08-17 10:55:46.230579: Note: Inverter does not support charge freeze - disabled
2026-08-17 10:55:46.230598: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 10:55:46.286319: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 0%, target 100%
2026-08-17 10:55:46.286466: Inverter 0 disabled charge window while waiting for schedule (now 08-17 10:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 10:55:46.286538: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 10:55:46.286753: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 10:55:46.286833: Inverter 0 set new demand (idle) start time to 10:55:00 was 00:00:00
2026-08-17 10:55:51.292704: Inverter 0 write_and_poll_value: Wrote 10:55:00 to idle_start_time, successfully now 10:55:00
2026-08-17 10:55:51.292818: Inverter 0 set new demand (idle) end time to 23:59:00 was 00:00:00
2026-08-17 10:55:56.300414: Inverter 0 write_and_poll_value: Wrote 23:59:00 to idle_end_time, successfully now 23:59:00
2026-08-17 10:55:56.300528: No export window planned
2026-08-17 10:55:56.300743: Inverter 0 Adjust force export to False, change times from 23:59:00 - 23:59:00 to 00:00:00 - 00:00:00
2026-08-17 10:55:56.300817: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 10:55:56.301099: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 10:55:56.301169: Inverter 0 set new export start time to 00:00:00
2026-08-17 10:56:01.308709: Inverter 0 write_and_poll_value: Wrote 00:00:00 to discharge_start_time, successfully now 00:00:00
2026-08-17 10:56:01.308823: Inverter 0 Set new export end time to 00:00:00 was 23:59:00
2026-08-17 10:56:06.315822: Inverter 0 write_and_poll_value: Wrote 00:00:00 to discharge_end_time, successfully now 00:00:00
2026-08-17 10:56:06.316176: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 10:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 10:56:06.316273: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 10:56:06.316345: Inverter 0 Current charge limit is 75% and new target is 7%
2026-08-17 10:56:11.419563: Inverter 0 write_and_poll_value: Wrote 7 to charge_limit, successfully now 7.0
2026-08-17 10:56:11.419817: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.444604: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.468657: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.489849: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.533531: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.577996: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.621294: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-17 10:56:11.665626: Inverter 0 Calling service charge_stop_service domain discharge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.768506: Inverter 0 Calling service charge_stop_service domain discharge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.871516: Inverter 0 Calling service charge_stop_service domain discharge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:11.974636: Inverter 0 Calling service charge_stop_service domain discharge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:12.077653: Inverter 0 Calling service charge_stop_service domain discharge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:12.180815: Inverter 0 Calling service charge_stop_service domain discharge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Gen'}
2026-08-17 10:56:12.212474: Inverter 0 Calling service charge_stop_service domain discharge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-17 10:56:12.315264: Inverter 0 count register writes 1
2026-08-17 10:56:12.456568: Total inverter register writes now 861
2026-08-17 10:56:12.573065: Error: Completed run status Demand with Errors reported (check log)
2026-08-17 10:56:12.578169: Saved current settings to /config/predbat_config.json
2026-08-17 10:56:12.578526: Compare, best tariff: current metric 104.68p
2026-08-17 10:56:12.631426: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-17 10:56:12.631870: Warn: Validation of apps.yaml found configuration item 'load_today' element sensor.sunsynk_day_load_energy is not a valid type float
2026-08-17 10:56:12.632040: Warn: Validation of apps.yaml found configuration item 'import_today' element sensor.sunsynk_day_grid_import is not a valid type float
2026-08-17 10:56:12.632110: Warn: Validation of apps.yaml found configuration item 'export_today' element sensor.sunsynk_day_grid_export is not a valid type float
2026-08-17 10:56:12.632886: Error: Validation of apps.yaml found 3 configuration errors
2026-08-17 10:56:15.770631: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 10:56:21.216640: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 10:56:21.216815: Zero load period starting at 2026-08-17T10:55:00+0100 (0 minutes) for 190 minutes with base value 413.5
2026-08-17 10:56:21.217168: Processing 1345 30-minute periods for power integration
2026-08-17 10:56:21.319696: ML Component: Car charging hold False, car energy reported load False
2026-08-17 10:56:21.415830: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 10:56:21.506652: ML Temperature data points: 49746
2026-08-17 10:56:22.348067: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 10:56:22.373569: ML Component: Data fetch completed, load data age 58.0 days, 16955 data points
2026-08-17 10:56:22.373664: ML Component: Starting fine-tune training (2h interval), model age is 5.0699344436111105 hours
2026-08-17 10:56:22.373694: ML Component: Doing training...
2026-08-17 10:56:22.386055: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-17 10:56:22.386153: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (58.9 days)
2026-08-17 10:56:22.422533: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-17 10:56:22.422638: ML Predictor: Starting initial training with 30 epochs
2026-08-17 10:56:23.028539: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-17 10:56:27.529796: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-17 10:56:27.582821: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0481) load(mean=0.0588 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.6012 std=4.4850) import_rate(mean=16.9112 std=8.3457) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5257)
2026-08-17 10:56:39.521129: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0116 val_mae=0.0055 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-17 10:56:49.212937: Warn: Return bad float value unknown from soc_percent using default 0.0
2026-08-17 10:56:49.225416: Warn: record_status Warn: Return bad float value unknown from soc_percent
2026-08-17 10:56:49.225901: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 10:56:49.226258: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 10:56:49.226318: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 10:56:49.226620: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 10:56:49.226687: Note: Inverter does not support discharge freeze - disabled
2026-08-17 10:56:49.226747: Note: Inverter does not support charge freeze - disabled
2026-08-17 10:56:49.226789: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 10:56:51.814966: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0346 val_mae=0.0065 kWh val_bias=-0.0015 kWh (-2.1%) combined=0.0043 kWh ema_combined=0.0032 kWh
2026-08-17 10:57:03.770330: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0378 val_mae=0.0061 kWh val_bias=-0.0023 kWh (-3.1%) combined=0.0046 kWh ema_combined=0.0036 kWh
2026-08-17 10:57:15.047328: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0268 val_mae=0.0042 kWh val_bias=-0.0013 kWh (-1.8%) combined=0.0024 kWh ema_combined=0.0033 kWh
2026-08-17 10:57:27.523928: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0213 val_mae=0.0044 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0029 kWh ema_combined=0.0032 kWh
2026-08-17 10:57:39.865223: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0144 val_mae=0.0035 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0025 kWh ema_combined=0.0030 kWh
2026-08-17 10:57:51.844359: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0128 val_mae=0.0033 kWh val_bias=+0.0008 kWh (+1.1%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-17 10:58:03.908395: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0122 val_mae=0.0032 kWh val_bias=-0.0013 kWh (-1.7%) combined=0.0021 kWh ema_combined=0.0026 kWh
2026-08-17 10:58:15.905345: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0092 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-17 10:58:27.899064: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0099 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-17 10:58:39.937229: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0103 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 10:58:49.576427: Warn: Return bad float value unknown from soc_percent using default 0.0
2026-08-17 10:58:49.584645: Warn: record_status Warn: Return bad float value unknown from soc_percent
2026-08-17 10:58:49.584978: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 10:58:49.585187: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 10:58:49.585236: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 10:58:49.585401: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 10:58:49.585448: Note: Inverter does not support discharge freeze - disabled
2026-08-17 10:58:49.585476: Note: Inverter does not support charge freeze - disabled
2026-08-17 10:58:49.585539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 10:58:51.882665: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0094 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-17 10:59:02.866473: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0077 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-17 10:59:14.948102: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0078 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 10:59:26.875379: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0070 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 10:59:39.033540: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0067 val_mae=0.0026 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-17 10:59:51.215515: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0081 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 11:00:00.845637: --------------- PredBat - update at 2026-08-17 11:00:00+01:00 with clock skew 0 minutes, minutes now 660
2026-08-17 11:00:00.846598: Saved current settings to /config/predbat_config.json
2026-08-17 11:00:00.846739: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 4.7 minutes
2026-08-17 11:00:00.846827: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:00:00.846922: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:00:00.892680: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:00:00.892844: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:00:00.893223: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:00:00.893990: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:00:00.894252: Predbat mode is set to Control charge & discharge
2026-08-17 11:00:01.271845: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:00:01.272568: Using load_power data to fill gaps in load_today data
2026-08-17 11:00:02.796244: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:00:02.796514: Zero load period starting at 2026-08-17T11:00:00+0100 (0 minutes) for 195 minutes with base value 215.875
2026-08-17 11:00:02.796881: Processing 721 30-minute periods for power integration
2026-08-17 11:00:03.127088: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:00:03.136762: Car charging hold False, threshold 6.0kWh
2026-08-17 11:00:03.136981: Current data so far today: load 4.4kWh, import 6.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:00:03.173447: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:00:03.173717: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:00:03.183098: Standing charge is set to 46.63p
2026-08-17 11:00:03.468684: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.468989: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.469274: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.469503: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.469724: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.469942: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.470183: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.470396: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.470606: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.470817: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.471043: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.471262: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.471470: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.471689: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.471941: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.472186: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.472397: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.472603: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.472829: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:00:03.472920: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:00:03.480666: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:00:03.480990: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:00:03.584728: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:00:03.585069: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:00:03.586232: High export rate found rates in range 99p to -99p
2026-08-17 11:00:03.618747: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:00:03.619014: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:00:03.635620: Battery level now 0.0kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -83.02p, change today -72.08p, rate_forward 6.87p
2026-08-17 11:00:03.636224: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.48kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:00:03.719696: Today's energy total net 6.5kWh, import 6.5kWh, export 0.0kWh, cost 103.08p, import 56.44p, export 0.0p, carbon 0.0kg
2026-08-17 11:00:03.719855: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:00:03.828738: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:00:03.863017: Today's load divergence 94.0%, in-day adjustment 80.25%, damping 0.95x, yesterday 68.37% today 94.3% blend 54.17%
2026-08-17 11:00:03.863612: Today's predicted so far 6.6kWh with 0.0kWh car/iBoost excluded, 3.45kWh import ignored, and 6.6kWh forecast extra.
2026-08-17 11:00:03.863662: Today's actual load so far 5.69kWh with 0.0kWh car/iBoost excluded, and 3.45kWh import ignored.
2026-08-17 11:00:03.905592: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -0.9335, 'source': 'SMART'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.61, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T08:00:00+01:00', 'end': '2026-08-17T08:30:00+01:00', 'charge_in_kwh': -0.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T08:30:00+01:00', 'end': '2026-08-17T09:00:00+01:00', 'charge_in_kwh': -0.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T09:00:00+01:00', 'end': '2026-08-17T09:30:00+01:00', 'charge_in_kwh': -0.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T09:30:00+01:00', 'end': '2026-08-17T10:00:00+01:00', 'charge_in_kwh': -0.2, 'source': 'unknown', 'location': 'AT_HOME'}]]
2026-08-17 11:00:03.906278: Sensor changes require a replan, will recompute the plan
2026-08-17 11:00:03.906978: Inverter 0: Type SK Sunsynk
2026-08-17 11:00:03.907076: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:00:03.907469: Reserve min: 7%, battery_min: 7%
2026-08-17 11:00:03.907585: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:00:03.907889: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -55W, load power 561W, PV Power 0W
2026-08-17 11:00:03.908142: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:00:03.908270: Inverter 0 scheduled charge enable is False
2026-08-17 11:00:03.908309: Inverter 0 charge windows currently []
2026-08-17 11:00:03.908395: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:00:03.908558: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:00:03.908600: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:00:03.908697: Inverter 0 scheduled discharge enable is False
2026-08-17 11:00:03.908879: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:00:03.908921: Inverter 0 discharge windows currently []
2026-08-17 11:00:03.909014: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:00:03.909049: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:00:03.909105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:00:04.052216: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:00:04.052320: Will recompute the plan as it is invalid
2026-08-17 11:00:04.052537: Recompute is saving previous plan...
2026-08-17 11:00:04.053943: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 11:00:04.054089: Best export window [ ]
2026-08-17 11:00:04.055543: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:00:04.060466: Load divergence over 8.0 hours mean 644.21W, min 386.4W, max 1983.0W, std dev 321.77W, divergence 24.97%
2026-08-17 11:00:04.126347: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:00:04.126621: LoadML is_calculating True
2026-08-17 11:00:04.126797: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 11:00:04.144140: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 11:00:04.156376: Optimise levels pass started at 2026-08-17 11:00:04
2026-08-17 11:00:04.156608: Optimise all windows, total charge 24 export 1
2026-08-17 11:00:08.129967: >> Region optimisation pass width 960 gives best_metric 294.06p, best_cost 370.74p, best_cycle 45.99kWh, best_import 33.46kWh
2026-08-17 11:00:10.428495: >> Region optimisation pass width 480 gives best_metric 283.28p, best_cost 293.04p, best_cycle 43.54kWh, best_import 23.75kWh
2026-08-17 11:00:10.960046: >> Region optimisation pass width 240 gives best_metric 283.28p, best_cost 293.04p, best_cycle 43.54kWh, best_import 23.75kWh
2026-08-17 11:00:14.192402: >> Region optimisation pass width 120 gives best_metric 280.83p, best_cost 291.8p, best_cycle 41.36kWh, best_import 23.59kWh
2026-08-17 11:00:14.192630: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 11:00:14.192751: Optimise levels pass ended at 2026-08-17 11:00:14, duration 10.0 seconds tried 86 combinations
2026-08-17 11:00:14.192816: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 280.83p, best_keep 0.18kWh, best_cycle 41.36kWh, best_carbon 0kg, best_import 23.59kWh
2026-08-17 11:00:14.208456: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 11:00:15.211689: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0078 val_mae=0.0022 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0016 kWh ema_combined=0.0015 kWh
2026-08-17 11:00:38.138809: Tweak plan optimisation started metric 214.18p, cost 225.96p
2026-08-17 11:00:39.246324: Tweak optimisation finished metric 214.18p, cost 225.96p, metric_keep 0.11kWh, cycle 30.05kWh, carbon 0kg, import 15.36kWh, changed 8 window(s)
2026-08-17 11:00:39.274613: Swap charge optimisation started metric 214.18p, cost 225.96p, min_improvement_swap 0.1p
2026-08-17 11:00:40.202435: Swap charge optimisation finished metric 214.18p, cost 225.96p
2026-08-17 11:00:40.326625: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:00:40.327216: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:00:40.327447: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:00:40.327620: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:00:40.365952: Previous plan best metric is 214.67 (cost 226.53) and new plan best metric is 214.18 (cost 225.96)
2026-08-17 11:00:40.366471: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 11:00:40.366599: Plan valid is now true after recompute was False
2026-08-17 11:00:40.395149: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 556.6p, metric_keep 278.33kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 27.7kWh, PV 0.0kWh
2026-08-17 11:00:40.603445: Battery has 15.92 hours left - now at 12.0kWh
2026-08-17 11:00:40.652368: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 579.85p, metric_keep 280.3kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 28.81kWh, PV 0.0kWh
2026-08-17 11:00:40.770744: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 277.42p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 28.81kWh, PV 0.0kWh
2026-08-17 11:00:40.896721: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 273.17p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 27.7kWh, PV 0.0kWh
2026-08-17 11:00:40.912020: Saving plan best values to HA entities
2026-08-17 11:00:41.192057: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:00:41.198233: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:00:41.216399: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.43kWh, house 0.0kWh, export 0.0kWh, metric 273.17p, metric10 277.42p
2026-08-17 11:00:41.387677: Marginal costs baseline metric (no standing charge): 226.5332
2026-08-17 11:00:41.685492: Marginal energy costs matrix computed: min=8.04 max=24.42
2026-08-17 11:00:41.876259: Rate array import [{'start': 660, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 660, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:00:41.877401: - Your estimated bill for today is £1.26 and tomorrow is £1.71
2026-08-17 11:00:41.877468: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:00:41.877502: - The battery is currently at 75% and is in eco mode for the next 12 hours.
2026-08-17 11:00:41.877527: - For the next 48 hours there will be no solar generation.
2026-08-17 11:00:41.886989: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:00:41.887069: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:00:41.887090:
2026-08-17 11:00:41.954987: Plan calculation took 37.90 seconds
2026-08-17 11:00:42.002722: Saved plan to storage
2026-08-17 11:00:42.006593: No high rate period found
2026-08-17 11:00:42.087151: Import threshold used for optimisation was 8.0p
2026-08-17 11:00:42.188555: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:00:42.194285: Inverter 0: Type SK Sunsynk
2026-08-17 11:00:42.194436: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:00:42.194719: Reserve min: 7%, battery_min: 7%
2026-08-17 11:00:42.194878: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:00:42.195226: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 501W, current battery voltage 51.2V, grid power -55W, load power 561W, PV Power 0W
2026-08-17 11:00:42.195459: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:00:42.195622: Inverter 0 scheduled charge enable is False
2026-08-17 11:00:42.195746: Inverter 0 charge windows currently []
2026-08-17 11:00:42.195858: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:00:42.196080: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:00:42.196200: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:00:42.196322: Inverter 0 scheduled discharge enable is False
2026-08-17 11:00:42.196542: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:00:42.196637: Inverter 0 discharge windows currently []
2026-08-17 11:00:42.196672: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:00:42.196694: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:00:42.196825: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:00:42.307461: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 75%, target 100%
2026-08-17 11:00:42.307761: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:00:42.307918: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:00:42.308204: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:00:42.308350: No export window planned
2026-08-17 11:00:42.308543: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:00:42.308595: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:00:42.308871: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:00:42.309126: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:00:42.309195: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:00:42.309352: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:00:42.309499: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.309655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.309808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.309943: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.310071: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.310203: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.310332: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.310514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.310652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.310810: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.310941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.311068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.311196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.311323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:00:42.311443: Inverter 0 count register writes 0
2026-08-17 11:00:42.366086: Total inverter register writes now 861
2026-08-17 11:00:42.412866: Info: Completed run status Demand
2026-08-17 11:00:42.782095: Info: record_status Demand
2026-08-17 11:00:42.789035: Saved current settings to /config/predbat_config.json
2026-08-17 11:00:42.789368: Compare, best tariff: current metric 104.68p
2026-08-17 11:00:43.873605: Validation of apps.yaml was successful
2026-08-17 11:00:43.873829: Info: Config validation retry succeeded, previous errors have now cleared
2026-08-17 11:00:44.620812: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0067 val_mae=0.0023 kWh val_bias=+0.0006 kWh (+0.9%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 11:00:55.582388: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0074 val_mae=0.0024 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-17 11:01:07.571040: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0072 val_mae=0.0023 kWh val_bias=-0.0011 kWh (-1.5%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-17 11:01:18.927710: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:01:18.928033: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:01:18.928094: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:01:18.928260: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:01:18.928307: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:01:18.928335: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:01:18.928361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:01:19.363969: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0065 val_mae=0.0022 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 11:01:30.285562: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0071 val_mae=0.0020 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-17 11:01:41.560199: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0066 val_mae=0.0018 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0010 kWh ema_combined=0.0013 kWh
2026-08-17 11:01:53.033093: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0067 val_mae=0.0019 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-17 11:02:05.559125: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0058 val_mae=0.0018 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0009 kWh ema_combined=0.0012 kWh
2026-08-17 11:02:17.144784: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0054 val_mae=0.0018 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-17 11:02:27.415672: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0057 val_mae=0.0018 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-17 11:02:37.767319: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0021 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0012 kWh ema_combined=0.0011 kWh
2026-08-17 11:02:48.499435: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-17 11:02:48.505086: ML Predictor: Restored best weights from epoch with val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.5%)
2026-08-17 11:02:48.505373: ML Predictor: Training complete, final val_mae=0.0018 kWh val_bias=-0.0004 kWh (-0.5%)
2026-08-17 11:02:49.329753: ML Predictor: AR rollout over holdout: ar_mae=0.0019 kWh ar_bias=-0.0004 kWh (-0.6%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-17 11:02:49.333850: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0018 kWh
2026-08-17 11:02:49.392741: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-17 11:02:49.392973: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 11:02:49.929331: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 11:02:55.048679: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 11:02:55.102575: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0589 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.6138 std=4.4953) import_rate(mean=16.8950 std=8.3466) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1891 std=0.5259)
2026-08-17 11:02:55.190568: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 11:02:55.205760: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 11:02:55.231056: ML Predictor: Baseline (pre-finetune) val_mae=0.0035 kWh val_bias=-0.0009 kWh
2026-08-17 11:03:06.352874: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0092 val_mae=0.0040 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-17 11:03:17.045634: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0109 val_mae=0.0046 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-17 11:03:19.077691: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:03:19.078288: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:03:19.078470: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:03:19.078928: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:03:19.079097: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:03:19.079279: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:03:19.079428: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:03:27.830048: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0107 val_mae=0.0052 kWh val_bias=+0.0016 kWh (+1.8%) combined=0.0030 kWh ema_combined=0.0027 kWh
2026-08-17 11:03:40.085329: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0125 val_mae=0.0037 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-17 11:03:52.312407: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0135 val_mae=0.0041 kWh val_bias=+0.0015 kWh (+1.7%) combined=0.0033 kWh ema_combined=0.0027 kWh
2026-08-17 11:04:03.365405: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0121 val_mae=0.0047 kWh val_bias=-0.0033 kWh (-3.6%) combined=0.0042 kWh ema_combined=0.0032 kWh
2026-08-17 11:04:14.423236: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0111 val_mae=0.0033 kWh val_bias=+0.0004 kWh (+0.4%) combined=0.0021 kWh ema_combined=0.0029 kWh
2026-08-17 11:04:26.120956: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0097 val_mae=0.0036 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0025 kWh
2026-08-17 11:04:37.309862: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0096 val_mae=0.0032 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-17 11:04:51.546688: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0097 val_mae=0.0039 kWh val_bias=-0.0020 kWh (-2.2%) combined=0.0031 kWh ema_combined=0.0025 kWh
2026-08-17 11:04:55.362025: Successfully loaded apps.yaml from apps.yaml
2026-08-17 11:05:00.356319: --------------- PredBat - update at 2026-08-17 11:05:00+01:00 with clock skew 0 minutes, minutes now 665
2026-08-17 11:05:00.357503: Saved current settings to /config/predbat_config.json
2026-08-17 11:05:00.357735: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 9.6 minutes
2026-08-17 11:05:00.357962: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:05:00.358165: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:05:00.399928: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:05:00.400265: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:05:00.400585: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:05:00.401293: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:05:00.401550: Predbat mode is set to Control charge & discharge
2026-08-17 11:05:00.800648: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:05:00.800790: Using load_power data to fill gaps in load_today data
2026-08-17 11:05:01.974020: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:05:01.974226: Zero load period starting at 2026-08-17T10:54:00+0100 (11 minutes) for 189 minutes with base value 215.85
2026-08-17 11:05:01.974616: Processing 721 30-minute periods for power integration
2026-08-17 11:05:02.251932: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:05:02.252034: Car charging hold False, threshold 6.0kWh
2026-08-17 11:05:02.252082: Current data so far today: load 7.04kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:05:02.264179: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:05:02.280033: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:05:02.280590: Standing charge is set to 46.63p
2026-08-17 11:05:02.556435: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.556698: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.556887: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.557084: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.557356: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.557551: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.557732: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.557901: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.558080: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.558252: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.558417: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.568566: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.568773: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.568947: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.569180: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.569662: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.569865: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.570035: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.570223: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:05:02.570285: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:05:02.575978: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:05:02.576339: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:05:02.652507: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:05:02.652608: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:05:02.653576: High export rate found rates in range 99p to -99p
2026-08-17 11:05:02.678270: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:05:02.678365: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:05:02.692239: Battery level now 12.0kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -0.55p, change today 10.39p, rate_forward 6.87p
2026-08-17 11:05:02.692666: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 3.03kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:05:02.792830: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:05:02.792983: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:05:02.956273: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:05:03.029687: Today's load divergence 107.28%, in-day adjustment 86.17%, damping 0.95x, yesterday 68.37% today 106.92% blend 53.82%
2026-08-17 11:05:03.029793: Today's predicted so far 6.72kWh with 0.0kWh car/iBoost excluded, 4.0kWh import ignored, and 6.72kWh forecast extra.
2026-08-17 11:05:03.029825: Today's actual load so far 7.97kWh with 0.0kWh car/iBoost excluded, and 4.0kWh import ignored.
2026-08-17 11:05:03.107639: Inverter 0: Type SK Sunsynk
2026-08-17 11:05:03.107741: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:05:03.107988: Reserve min: 7%, battery_min: 7%
2026-08-17 11:05:03.108087: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:05:03.108356: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 427W, current battery voltage 51.2V, grid power -54W, load power 489W, PV Power 0W
2026-08-17 11:05:03.108508: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:05:03.108597: Inverter 0 scheduled charge enable is False
2026-08-17 11:05:03.108633: Inverter 0 charge windows currently []
2026-08-17 11:05:03.108667: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:05:03.108858: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:05:03.108907: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:05:03.108948: Inverter 0 scheduled discharge enable is False
2026-08-17 11:05:03.109151: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:05:03.109198: Inverter 0 discharge windows currently []
2026-08-17 11:05:03.109273: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:05:03.109329: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:05:03.109492: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:05:03.228431: Dynamic load last period 13.20kW, status high, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:05:03.228661: Plan was last updated on 2026-08-17 11:00:00+01:00 and is now 5.0 minutes old
2026-08-17 11:05:03.228953: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:05:03.229086: Best export window [ ]
2026-08-17 11:05:03.229988: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:05:03.233357: Load divergence over 8.0 hours mean 644.07W, min 381.6W, max 1926.0W, std dev 316.58W, divergence 24.58%
2026-08-17 11:05:03.283948: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:05:03.284191: LoadML is_calculating True
2026-08-17 11:05:03.284309: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 11:05:03.341102: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.45p, metric_keep 280.85kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.94kWh, PV 0.0kWh
2026-08-17 11:05:03.549871: Battery has 15.17 hours left - now at 12.0kWh
2026-08-17 11:05:03.633696: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.9p, metric_keep 282.62kWh, min_soc 1.12kWh @ 08-18 01:40:00, load 32.08kWh, PV 0.0kWh
2026-08-17 11:05:03.799621: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 322.99p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 32.08kWh, PV 0.0kWh
2026-08-17 11:05:03.934792: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 318.46p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 30.94kWh, PV 0.0kWh
2026-08-17 11:05:03.934882: Saving plan best values to HA entities
2026-08-17 11:05:04.268867: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:05:04.276387: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:05:04.284271: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.45kWh, house 0.0kWh, export 0.0kWh, metric 318.46p, metric10 322.99p
2026-08-17 11:05:04.454116: Marginal costs baseline metric (no standing charge): 271.8237
2026-08-17 11:05:04.977645: Marginal energy costs matrix computed: min=8.51 max=25.89
2026-08-17 11:05:05.133339: Rate array import [{'start': 665, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 665, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:05:05.134570: - Your estimated bill for today is £1.63 and tomorrow is £1.75
2026-08-17 11:05:05.134631: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:05:05.144383: - The battery is currently at 75% and is in eco mode for the next 12 hours.
2026-08-17 11:05:05.144974: - For the next 48 hours there will be no solar generation.
2026-08-17 11:05:05.145027: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:05:05.145161: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:05:05.145241:
2026-08-17 11:05:05.237802: Plan calculation took 2.01 seconds
2026-08-17 11:05:05.256690: No high rate period found
2026-08-17 11:05:05.371132: Import threshold used for optimisation was 8.0p
2026-08-17 11:05:05.471629: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:05:05.493300: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 75%, target 100%
2026-08-17 11:05:05.493469: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:05:05.493626: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:05:05.493921: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:05:05.494101: No export window planned
2026-08-17 11:05:05.494338: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:05:05.494446: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:05:05.494717: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:05:05.494965: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:05:05.495130: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:05:05.495267: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:05:05.495454: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.495567: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.495694: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.495797: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.495947: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496080: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496212: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496364: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496494: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.496969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.497090: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:05:05.497211: Inverter 0 count register writes 0
2026-08-17 11:05:05.516993: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 11:05:05.537611: Total inverter register writes now 861
2026-08-17 11:05:05.627448: Info: Completed run status Demand
2026-08-17 11:05:05.653205: Info: record_status Demand
2026-08-17 11:05:05.672542: Saved current settings to /config/predbat_config.json
2026-08-17 11:05:05.672876: Compare, best tariff: current metric 104.68p
2026-08-17 11:05:12.167355: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0094 val_mae=0.0043 kWh val_bias=-0.0022 kWh (-2.5%) combined=0.0031 kWh ema_combined=0.0027 kWh
2026-08-17 11:05:25.311618: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0086 val_mae=0.0035 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-17 11:05:38.238874: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0078 val_mae=0.0032 kWh val_bias=+0.0012 kWh (+1.4%) combined=0.0025 kWh ema_combined=0.0026 kWh
2026-08-17 11:05:48.814408: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:05:48.814631: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:05:48.814774: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:05:48.815265: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:05:48.815330: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:05:48.815361: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:05:48.815388: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:05:51.478581: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0088 val_mae=0.0031 kWh val_bias=+0.0011 kWh (+1.3%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-17 11:06:04.003252: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0077 val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0014 kWh ema_combined=0.0023 kWh
2026-08-17 11:06:14.567948: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0075 val_mae=0.0033 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-17 11:06:25.627148: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0034 kWh val_bias=-0.0019 kWh (-2.2%) combined=0.0027 kWh ema_combined=0.0024 kWh
2026-08-17 11:06:38.137926: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0072 val_mae=0.0032 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-17 11:06:50.790491: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0066 val_mae=0.0027 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-17 11:07:03.647230: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0066 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 11:07:14.218664: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0061 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-17 11:07:26.185194: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0064 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 11:07:38.549614: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0052 val_mae=0.0024 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-17 11:07:49.249695: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:07:49.249925: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:07:49.249958: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:07:49.250110: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:07:49.250150: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:07:49.250173: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:07:49.250193: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:07:49.270914: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0026 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0021 kWh ema_combined=0.0018 kWh
2026-08-17 11:07:59.810681: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-17 11:08:11.284103: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0021 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 11:08:23.513769: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0022 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-17 11:08:34.514143: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0008 kWh (-0.8%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-17 11:08:45.706041: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0020 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0015 kWh
2026-08-17 11:08:57.443235: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0060 val_mae=0.0026 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0022 kWh ema_combined=0.0018 kWh
2026-08-17 11:08:57.444285: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0008 kWh (-0.8%)
2026-08-17 11:08:57.444554: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0008 kWh (-0.8%)
2026-08-17 11:08:58.407879: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=-0.0008 kWh (-0.9%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 11:08:58.412202: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0024 kWh
2026-08-17 11:08:58.459795: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-17 11:08:58.460002: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 11:08:59.094209: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 11:09:04.854283: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 11:09:04.908986: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0590 std=0.0473) pv(mean=0.0000 std=0.0100) temp(mean=19.6270 std=4.5032) import_rate(mean=16.8648 std=8.3480) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-17 11:09:04.998198: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 11:09:05.013540: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 11:09:05.043684: ML Predictor: Baseline (pre-finetune) val_mae=0.0038 kWh val_bias=-0.0005 kWh
2026-08-17 11:09:16.911299: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0098 val_mae=0.0043 kWh val_bias=+0.0012 kWh (+1.6%) combined=0.0035 kWh ema_combined=0.0035 kWh
2026-08-17 11:09:33.674270: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0126 val_mae=0.0050 kWh val_bias=-0.0033 kWh (-4.2%) combined=0.0047 kWh ema_combined=0.0038 kWh
2026-08-17 11:09:51.662330: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0103 val_mae=0.0049 kWh val_bias=+0.0032 kWh (+4.1%) combined=0.0052 kWh ema_combined=0.0042 kWh
2026-08-17 11:10:00.125999: --------------- PredBat - update at 2026-08-17 11:10:00+01:00 with clock skew 0 minutes, minutes now 670
2026-08-17 11:10:00.127810: Saved current settings to /config/predbat_config.json
2026-08-17 11:10:00.128080: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 14.6 minutes
2026-08-17 11:10:00.128266: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:10:00.128462: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:10:00.176918: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:10:00.177063: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:10:00.177304: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:10:00.177904: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:10:00.178051: Predbat mode is set to Control charge & discharge
2026-08-17 11:10:00.553870: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:10:00.553997: Using load_power data to fill gaps in load_today data
2026-08-17 11:10:01.939057: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:10:01.939292: Zero load period starting at 2026-08-17T10:54:00+0100 (16 minutes) for 189 minutes with base value 215.825
2026-08-17 11:10:01.940752: Processing 721 30-minute periods for power integration
2026-08-17 11:10:02.133021: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:10:02.133217: Car charging hold False, threshold 6.0kWh
2026-08-17 11:10:02.133289: Current data so far today: load 5.67kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:10:02.153367: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:10:02.153921: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:10:02.154824: Standing charge is set to 46.63p
2026-08-17 11:10:02.487050: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.487364: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.488760: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.489041: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.490433: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.491215: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.491479: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.491699: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.491941: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.492173: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.492489: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.492740: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.492953: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.493162: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.493387: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.493598: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.493803: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.494006: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.494210: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:10:02.494299: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:10:02.501879: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:10:02.502212: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:10:02.569610: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:10:02.569787: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:10:02.571071: High export rate found rates in range 99p to -99p
2026-08-17 11:10:02.601647: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:10:02.601771: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:10:02.617257: Battery level now 12.0kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -0.55p, change today 10.39p, rate_forward 6.87p
2026-08-17 11:10:02.617682: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.62kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:10:02.750061: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:10:02.750270: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:10:02.866635: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:10:02.891874: Today's load divergence 100.17%, in-day adjustment 83.16%, damping 0.95x, yesterday 68.37% today 100.16% blend 53.47%
2026-08-17 11:10:02.891976: Today's predicted so far 6.75kWh with 0.0kWh car/iBoost excluded, 4.19kWh import ignored, and 6.75kWh forecast extra.
2026-08-17 11:10:02.892009: Today's actual load so far 6.77kWh with 0.0kWh car/iBoost excluded, and 4.19kWh import ignored.
2026-08-17 11:10:02.931932: Inverter 0: Type SK Sunsynk
2026-08-17 11:10:02.932064: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:10:02.932319: Reserve min: 7%, battery_min: 7%
2026-08-17 11:10:02.932453: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:10:02.932785: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 405W, current battery voltage 51.2V, grid power -57W, load power 467W, PV Power 0W
2026-08-17 11:10:02.944200: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:10:02.944389: Inverter 0 scheduled charge enable is False
2026-08-17 11:10:02.944451: Inverter 0 charge windows currently []
2026-08-17 11:10:02.944504: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:10:02.944706: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:10:02.944770: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:10:02.944836: Inverter 0 scheduled discharge enable is False
2026-08-17 11:10:02.945076: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:10:02.945617: Inverter 0 discharge windows currently []
2026-08-17 11:10:02.945681: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:10:02.945718: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:10:02.945752: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:10:03.051877: Dynamic load last period 0.86kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:10:03.052229: Plan was last updated on 2026-08-17 11:00:00+01:00 and is now 10.0 minutes old
2026-08-17 11:10:03.052662: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:10:03.052862: Best export window [ ]
2026-08-17 11:10:03.054301: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:10:03.059084: Load divergence over 8.0 hours mean 641.44W, min 366.0W, max 1707.6W, std dev 309.74W, divergence 24.14%
2026-08-17 11:10:03.119965: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:10:03.120297: LoadML is_calculating True
2026-08-17 11:10:03.120478: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 11:10:03.215101: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 597.66p, metric_keep 280.29kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 29.32kWh, PV 0.0kWh
2026-08-17 11:10:03.433725: Battery has 15.33 hours left - now at 11.84kWh
2026-08-17 11:10:03.499858: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.04p, metric_keep 282.15kWh, min_soc 1.12kWh @ 08-18 01:55:00, load 30.45kWh, PV 0.0kWh
2026-08-17 11:10:03.660053: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 324.65p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.45kWh, PV 0.0kWh
2026-08-17 11:10:03.780581: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 321.05p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.32kWh, PV 0.0kWh
2026-08-17 11:10:03.780685: Saving plan best values to HA entities
2026-08-17 11:10:04.098303: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:10:04.105201: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:10:04.112490: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.78kWh, house 0.0kWh, export 0.0kWh, metric 321.05p, metric10 324.65p
2026-08-17 11:10:04.199777: Marginal costs baseline metric (no standing charge): 274.4133
2026-08-17 11:10:04.655086: Marginal energy costs matrix computed: min=8.15 max=25.33
2026-08-17 11:10:04.800193: Rate array import [{'start': 670, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 670, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:10:04.801097: - Your estimated bill for today is £1.64 and tomorrow is £1.73
2026-08-17 11:10:04.801143: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:10:04.801166: - The battery is currently at 74% and is in eco mode for the next 12 hours.
2026-08-17 11:10:04.801186: - For the next 48 hours there will be no solar generation.
2026-08-17 11:10:04.801206: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:10:04.801226: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:10:04.801246:
2026-08-17 11:10:04.871891: Plan calculation took 1.82 seconds
2026-08-17 11:10:04.876978: No high rate period found
2026-08-17 11:10:04.999431: Import threshold used for optimisation was 8.0p
2026-08-17 11:10:05.175829: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:10:05.183247: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 74%, target 100%
2026-08-17 11:10:05.183560: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:10:05.183734: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:10:05.184075: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:10:05.184279: No export window planned
2026-08-17 11:10:05.184510: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:10:05.184639: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:10:05.184913: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:10:05.185187: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:10:05.185349: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:10:05.185503: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:10:05.185687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.185824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.185953: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.186079: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.186206: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.186351: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.186551: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.186736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.186869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.186995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.187120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.187237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.187386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.187513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:05.187627: Inverter 0 count register writes 0
2026-08-17 11:10:05.224597: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 11:10:05.224925: Recompute is saving previous plan...
2026-08-17 11:10:05.226274: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 11:10:05.226423: Best export window [ ]
2026-08-17 11:10:05.227880: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:10:05.237136: Load divergence over 8.0 hours mean 641.44W, min 366.0W, max 1707.6W, std dev 309.74W, divergence 24.14%
2026-08-17 11:10:05.293163: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:10:05.293440: LoadML is_calculating True
2026-08-17 11:10:05.293568: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 11:10:05.306475: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 11:10:05.324452: Optimise levels pass started at 2026-08-17 11:10:05
2026-08-17 11:10:05.324690: Optimise all windows, total charge 24 export 1
2026-08-17 11:10:07.710856: >> Region optimisation pass width 960 gives best_metric 335.12p, best_cost 410.58p, best_cycle 46.6kWh, best_import 33.8kWh
2026-08-17 11:10:07.962160: >> Region optimisation pass width 480 gives best_metric 335.12p, best_cost 410.58p, best_cycle 46.6kWh, best_import 33.8kWh
2026-08-17 11:10:08.408410: >> Region optimisation pass width 240 gives best_metric 335.12p, best_cost 410.58p, best_cycle 46.6kWh, best_import 33.8kWh
2026-08-17 11:10:11.535457: >> Region optimisation pass width 120 gives best_metric 334.86p, best_cost 408.6p, best_cycle 46.86kWh, best_import 33.55kWh
2026-08-17 11:10:11.535730: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 11:10:11.535876: Optimise levels pass ended at 2026-08-17 11:10:11, duration 6.2 seconds tried 61 combinations
2026-08-17 11:10:11.536013: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 334.86p, best_keep 0kWh, best_cycle 46.86kWh, best_carbon 0kg, best_import 33.55kWh
2026-08-17 11:10:11.574423: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 11:10:22.351781: Tweak plan optimisation started metric 254.08p, cost 265.87p
2026-08-17 11:10:24.384769: Tweak optimisation finished metric 254.08p, cost 265.87p, metric_keep 0.1kWh, cycle 30.51kWh, carbon 0kg, import 15.71kWh, changed 8 window(s)
2026-08-17 11:10:24.439107: Swap charge optimisation started metric 254.08p, cost 265.87p, min_improvement_swap 0.1p
2026-08-17 11:10:25.653627: Swap charge optimisation finished metric 254.08p, cost 265.87p
2026-08-17 11:10:25.800413: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:10:25.800997: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:10:25.801488: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:10:25.802625: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:10:25.843252: Previous plan best metric is 254.29 (cost 266.13) and new plan best metric is 254.08 (cost 265.87)
2026-08-17 11:10:25.843629: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 11:10:25.843801: Plan valid is now true after recompute was False
2026-08-17 11:10:25.866699: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 596.04p, metric_keep 279.7kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 29.12kWh, PV 0.0kWh
2026-08-17 11:10:26.048526: Battery has 15.33 hours left - now at 11.84kWh
2026-08-17 11:10:26.132358: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 619.34p, metric_keep 281.56kWh, min_soc 1.12kWh @ 08-18 01:55:00, load 30.24kWh, PV 0.0kWh
2026-08-17 11:10:26.246085: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 317.4p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.24kWh, PV 0.0kWh
2026-08-17 11:10:26.361715: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 312.76p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.12kWh, PV 0.0kWh
2026-08-17 11:10:26.361814: Saving plan best values to HA entities
2026-08-17 11:10:26.637869: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:10:26.644767: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:10:26.664669: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.74kWh, house 0.0kWh, export 0.0kWh, metric 312.76p, metric10 317.4p
2026-08-17 11:10:26.753566: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0116 val_mae=0.0039 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0021 kWh ema_combined=0.0036 kWh
2026-08-17 11:10:26.787309: Marginal costs baseline metric (no standing charge): 266.1291
2026-08-17 11:10:27.291747: Marginal energy costs matrix computed: min=8.15 max=25.33
2026-08-17 11:10:27.442029: Rate array import [{'start': 670, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 670, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:10:27.445082: - Your estimated bill for today is £1.64 and tomorrow is £1.73
2026-08-17 11:10:27.445164: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:10:27.445190: - The battery is currently at 74% and is in eco mode for the next 12 hours.
2026-08-17 11:10:27.445211: - For the next 48 hours there will be no solar generation.
2026-08-17 11:10:27.445231: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:10:27.445251: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:10:27.445280:
2026-08-17 11:10:27.514115: Plan calculation took 22.29 seconds
2026-08-17 11:10:27.514391: Inverter 0: Type SK Sunsynk
2026-08-17 11:10:27.514440: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:10:27.514755: Reserve min: 7%, battery_min: 7%
2026-08-17 11:10:27.514955: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:10:27.515351: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 405W, current battery voltage 51.2V, grid power -57W, load power 467W, PV Power 0W
2026-08-17 11:10:27.515926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:10:27.516098: Inverter 0 scheduled charge enable is False
2026-08-17 11:10:27.516178: Inverter 0 charge windows currently []
2026-08-17 11:10:27.516225: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:10:27.516479: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:10:27.516550: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:10:27.516678: Inverter 0 scheduled discharge enable is False
2026-08-17 11:10:27.516906: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:10:27.516987: Inverter 0 discharge windows currently []
2026-08-17 11:10:27.517028: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:10:27.532014: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:10:27.532115: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:10:27.616971: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 74%, target 100%
2026-08-17 11:10:27.617161: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:10:27.617306: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:10:27.617591: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:10:27.617704: No export window planned
2026-08-17 11:10:27.617908: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:10:27.617976: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:10:27.618172: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:10:27.618390: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:10:27.618486: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:10:27.618584: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:10:27.618743: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.618817: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.618860: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.618952: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.618994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619086: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619128: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:10:27.619756: Inverter 0 count register writes 0
2026-08-17 11:10:27.651695: Total inverter register writes now 861
2026-08-17 11:10:27.693395: Info: Completed run status Demand
2026-08-17 11:10:27.706765: Info: record_status Demand
2026-08-17 11:10:27.714026: Saved current settings to /config/predbat_config.json
2026-08-17 11:10:27.714308: Compare, best tariff: current metric 104.68p
2026-08-17 11:10:39.608672: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0101 val_mae=0.0036 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0032 kWh
2026-08-17 11:10:52.801252: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0090 val_mae=0.0036 kWh val_bias=-0.0012 kWh (-1.5%) combined=0.0026 kWh ema_combined=0.0030 kWh
2026-08-17 11:11:03.837843: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:11:03.838238: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:11:03.838284: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:11:03.838417: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:11:03.838954: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:11:03.839016: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:11:03.839041: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:11:04.644152: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0095 val_mae=0.0034 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0031 kWh ema_combined=0.0030 kWh
2026-08-17 11:11:16.338761: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0104 val_mae=0.0034 kWh val_bias=+0.0010 kWh (+1.3%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-17 11:11:28.193767: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0115 val_mae=0.0058 kWh val_bias=-0.0041 kWh (-5.2%) combined=0.0053 kWh ema_combined=0.0036 kWh
2026-08-17 11:11:42.870261: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0090 val_mae=0.0031 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0019 kWh ema_combined=0.0031 kWh
2026-08-17 11:11:42.870493: ML Predictor: Early stopping at epoch 10
2026-08-17 11:11:42.871827: ML Predictor: Restored best weights from epoch with val_mae=0.0038 kWh val_bias=-0.0005 kWh (-0.6%)
2026-08-17 11:11:42.872122: ML Predictor: Training complete, final val_mae=0.0038 kWh val_bias=-0.0005 kWh (-0.6%)
2026-08-17 11:11:43.824069: ML Predictor: AR rollout over holdout: ar_mae=0.0043 kWh ar_bias=+0.0000 kWh (+0.0%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-17 11:11:43.827945: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0038 kWh
2026-08-17 11:11:43.879365: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-17 11:11:43.881546: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 11:11:44.484457: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 11:11:49.867962: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 11:11:49.924186: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0591 std=0.0474) pv(mean=0.0000 std=0.0100) temp(mean=19.6336 std=4.5093) import_rate(mean=16.8254 std=8.3511) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1909 std=0.5265)
2026-08-17 11:11:50.015471: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 11:11:50.030638: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 11:11:50.055588: ML Predictor: Baseline (pre-finetune) val_mae=0.0049 kWh val_bias=+0.0000 kWh
2026-08-17 11:12:01.238834: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0042 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-17 11:12:14.108080: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0097 val_mae=0.0043 kWh val_bias=+0.0016 kWh (+2.8%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-17 11:12:25.899523: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0114 val_mae=0.0038 kWh val_bias=-0.0013 kWh (-2.3%) combined=0.0030 kWh ema_combined=0.0029 kWh
2026-08-17 11:12:38.688349: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0113 val_mae=0.0044 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0031 kWh ema_combined=0.0030 kWh
2026-08-17 11:12:51.789845: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0105 val_mae=0.0034 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0023 kWh ema_combined=0.0028 kWh
2026-08-17 11:13:04.079868: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0115 val_mae=0.0037 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-17 11:13:04.295684: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:13:04.295990: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:13:04.296043: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:13:04.296258: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:13:04.296303: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:13:04.296432: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:13:04.296473: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:13:16.105735: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0114 val_mae=0.0037 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-17 11:13:28.145386: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0105 val_mae=0.0040 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-17 11:13:40.128930: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0106 val_mae=0.0035 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 11:13:54.005963: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0109 val_mae=0.0031 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-17 11:14:06.308456: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0102 val_mae=0.0032 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-17 11:14:18.563758: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0079 val_mae=0.0030 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 11:14:31.893982: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0075 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-17 11:14:44.555829: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0072 val_mae=0.0028 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 11:14:57.836655: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0073 val_mae=0.0031 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-17 11:15:00.596177: --------------- PredBat - update at 2026-08-17 11:15:00+01:00 with clock skew 0 minutes, minutes now 675
2026-08-17 11:15:00.597061: Saved current settings to /config/predbat_config.json
2026-08-17 11:15:00.597179: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 19.7 minutes
2026-08-17 11:15:00.597428: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:15:00.597627: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:15:00.628939: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:15:00.629228: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:15:00.629543: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:15:00.630251: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:15:00.630518: Predbat mode is set to Control charge & discharge
2026-08-17 11:15:00.913420: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:15:00.913537: Using load_power data to fill gaps in load_today data
2026-08-17 11:15:01.874199: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:15:01.874637: Zero load period starting at 2026-08-17T10:54:00+0100 (21 minutes) for 189 minutes with base value 215.8
2026-08-17 11:15:01.875228: Processing 721 30-minute periods for power integration
2026-08-17 11:15:02.194410: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:15:02.195068: Car charging hold False, threshold 6.0kWh
2026-08-17 11:15:02.195139: Current data so far today: load 5.74kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:15:02.250965: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:15:02.251101: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:15:02.252120: Standing charge is set to 46.63p
2026-08-17 11:15:02.484726: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.485046: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.485300: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.485549: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.485807: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.486043: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.486283: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.486512: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.486753: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.486983: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.487205: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.487487: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.487734: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.487985: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.488213: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.488463: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.488708: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.488934: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.489159: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:15:02.489237: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:15:02.524090: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:15:02.524508: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:15:02.641293: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:15:02.641422: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:15:02.643301: High export rate found rates in range 99p to -99p
2026-08-17 11:15:02.692303: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:15:02.692494: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:15:02.705286: Battery level now 11.84kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -1.65p, change today 9.29p, rate_forward 6.87p
2026-08-17 11:15:02.705663: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.65kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:15:02.759813: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:15:02.759984: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:15:02.860253: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:15:02.881671: Today's load divergence 100.26%, in-day adjustment 83.31%, damping 0.95x, yesterday 68.37% today 100.25% blend 53.12%
2026-08-17 11:15:02.881821: Today's predicted so far 6.77kWh with 0.0kWh car/iBoost excluded, 4.17kWh import ignored, and 6.77kWh forecast extra.
2026-08-17 11:15:02.882033: Today's actual load so far 6.82kWh with 0.0kWh car/iBoost excluded, and 4.17kWh import ignored.
2026-08-17 11:15:02.934184: Inverter 0: Type SK Sunsynk
2026-08-17 11:15:02.934253: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:15:02.934469: Reserve min: 7%, battery_min: 7%
2026-08-17 11:15:02.934557: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:15:02.934844: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 422W, current battery voltage 51.2V, grid power -57W, load power 486W, PV Power 0W
2026-08-17 11:15:02.935034: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:15:02.935137: Inverter 0 scheduled charge enable is False
2026-08-17 11:15:02.935202: Inverter 0 charge windows currently []
2026-08-17 11:15:02.935239: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:15:02.935414: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:15:02.935452: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:15:02.935615: Inverter 0 scheduled discharge enable is False
2026-08-17 11:15:02.935833: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:15:02.935871: Inverter 0 discharge windows currently []
2026-08-17 11:15:02.935998: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:15:02.936023: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:15:02.936038: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:15:03.013827: Dynamic load last period 0.86kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:15:03.013938: Plan was last updated on 2026-08-17 11:10:00+01:00 and is now 5.0 minutes old
2026-08-17 11:15:03.014267: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:15:03.014360: Best export window [ ]
2026-08-17 11:15:03.015119: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:15:03.017772: Load divergence over 8.0 hours mean 638.14W, min 350.4W, max 1788.0W, std dev 321.74W, divergence 25.21%
2026-08-17 11:15:03.033737: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:15:03.048042: LoadML is_calculating True
2026-08-17 11:15:03.048160: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 11:15:03.101205: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 596.83p, metric_keep 279.73kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 29.24kWh, PV 0.0kWh
2026-08-17 11:15:03.252276: Battery has 15.33 hours left - now at 11.84kWh
2026-08-17 11:15:03.321364: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 620.13p, metric_keep 281.64kWh, min_soc 1.12kWh @ 08-18 02:00:00, load 30.36kWh, PV 0.0kWh
2026-08-17 11:15:03.427573: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 320.44p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.36kWh, PV 0.0kWh
2026-08-17 11:15:03.520046: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 316.42p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.24kWh, PV 0.0kWh
2026-08-17 11:15:03.520230: Saving plan best values to HA entities
2026-08-17 11:15:03.831018: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:15:03.860221: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:15:03.866698: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.2kWh, house 0.0kWh, export 0.0kWh, metric 316.42p, metric10 320.44p
2026-08-17 11:15:04.004610: Marginal costs baseline metric (no standing charge): 269.7901
2026-08-17 11:15:04.407004: Marginal energy costs matrix computed: min=7.97 max=25.17
2026-08-17 11:15:04.513252: Rate array import [{'start': 675, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 675, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:15:04.514286: - Your estimated bill for today is £1.64 and tomorrow is £1.73
2026-08-17 11:15:04.514337: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:15:04.514365: - The battery is currently at 74% and is in eco mode for the next 12 hours.
2026-08-17 11:15:04.514392: - For the next 48 hours there will be no solar generation.
2026-08-17 11:15:04.514415: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:15:04.514438: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:15:04.514461:
2026-08-17 11:15:04.566405: Plan calculation took 1.55 seconds
2026-08-17 11:15:04.571401: No high rate period found
2026-08-17 11:15:04.669791: Import threshold used for optimisation was 8.0p
2026-08-17 11:15:04.778645: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:15:04.803843: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 74%, target 100%
2026-08-17 11:15:04.804087: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:15:04.804195: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:15:04.804482: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:15:04.804617: No export window planned
2026-08-17 11:15:04.804787: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:15:04.805888: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:15:04.806167: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:15:04.806404: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:15:04.806487: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:15:04.807197: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:15:04.807401: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.807530: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.807659: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.807773: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.807869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.807997: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808056: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808242: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808394: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:15:04.808949: Inverter 0 count register writes 0
2026-08-17 11:15:04.832935: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 11:15:04.840881: Total inverter register writes now 861
2026-08-17 11:15:04.904462: Info: Completed run status Demand
2026-08-17 11:15:04.913213: Info: record_status Demand
2026-08-17 11:15:04.932416: Saved current settings to /config/predbat_config.json
2026-08-17 11:15:04.932683: Compare, best tariff: current metric 104.68p
2026-08-17 11:15:14.159093: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0061 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-17 11:15:29.335794: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0062 val_mae=0.0031 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0021 kWh ema_combined=0.0018 kWh
2026-08-17 11:15:41.671501: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0027 kWh val_bias=-0.0012 kWh (-2.1%) combined=0.0022 kWh ema_combined=0.0019 kWh
2026-08-17 11:15:49.089933: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:15:49.090201: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:15:49.090252: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:15:49.090416: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:15:49.090475: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:15:49.090503: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:15:49.090608: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:15:56.342511: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 11:16:09.907313: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0063 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-1.1%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-17 11:16:21.981808: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0063 val_mae=0.0023 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 11:16:32.890209: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 11:16:43.805084: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0061 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-17 11:16:58.129945: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0049 val_mae=0.0022 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-17 11:17:09.828267: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-17 11:17:21.071963: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0058 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 11:17:33.905548: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-17 11:17:44.720755: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0056 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 11:17:49.472750: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:17:49.473171: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:17:49.473301: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:17:49.473621: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:17:49.473788: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:17:49.474551: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:17:49.474629: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:17:58.385967: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0014 kWh ema_combined=0.0013 kWh
2026-08-17 11:18:09.058381: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-17 11:18:09.063282: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.5%)
2026-08-17 11:18:09.063430: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.5%)
2026-08-17 11:18:09.942998: ML Predictor: AR rollout over holdout: ar_mae=0.0025 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 11:18:09.947399: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0023 kWh
2026-08-17 11:18:09.947617: ML Predictor: Curriculum final pass 5/5: full dataset (58.9 days)
2026-08-17 11:18:09.947729: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 11:18:10.555370: ML Predictor: Creating dataset with 1412 hours of training data, 48 hours validation
2026-08-17 11:18:16.370063: ML Predictor: Created 16666 training samples, 576 validation samples
2026-08-17 11:18:16.420910: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0481) load(mean=0.0591 std=0.0474) pv(mean=0.0000 std=0.0100) temp(mean=19.6342 std=4.5148) import_rate(mean=16.7982 std=8.3649) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1916 std=0.5269)
2026-08-17 11:18:16.499784: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 11:18:16.512343: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 11:18:16.535025: ML Predictor: Baseline (pre-finetune) val_mae=0.0041 kWh val_bias=+0.0001 kWh
2026-08-17 11:18:27.376517: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0102 val_mae=0.0039 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-17 11:18:39.280212: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0136 val_mae=0.0038 kWh val_bias=-0.0015 kWh (-3.9%) combined=0.0030 kWh ema_combined=0.0024 kWh
2026-08-17 11:18:52.348580: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0096 val_mae=0.0037 kWh val_bias=-0.0010 kWh (-2.5%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 11:19:07.814527: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0121 val_mae=0.0034 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-17 11:19:20.944252: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0109 val_mae=0.0036 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-17 11:19:34.478615: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0110 val_mae=0.0034 kWh val_bias=-0.0004 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 11:19:47.519775: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0099 val_mae=0.0032 kWh val_bias=-0.0008 kWh (-2.1%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-17 11:19:59.793151: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0099 val_mae=0.0033 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-17 11:20:00.387729: --------------- PredBat - update at 2026-08-17 11:20:00+01:00 with clock skew 0 minutes, minutes now 680
2026-08-17 11:20:00.388670: Saved current settings to /config/predbat_config.json
2026-08-17 11:20:00.388790: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 24.7 minutes
2026-08-17 11:20:00.388884: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:20:00.389003: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:20:00.418401: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:20:00.418563: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:20:00.418776: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:20:00.419367: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:20:00.419527: Predbat mode is set to Control charge & discharge
2026-08-17 11:20:00.669811: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:20:00.670123: Using load_power data to fill gaps in load_today data
2026-08-17 11:20:02.085250: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:20:02.085594: Zero load period starting at 2026-08-17T10:54:00+0100 (26 minutes) for 189 minutes with base value 215.775
2026-08-17 11:20:02.086133: Processing 721 30-minute periods for power integration
2026-08-17 11:20:02.450122: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:20:02.450266: Car charging hold False, threshold 6.0kWh
2026-08-17 11:20:02.450370: Current data so far today: load 5.75kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:20:02.472814: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:20:02.473481: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:20:02.474183: Standing charge is set to 46.63p
2026-08-17 11:20:02.712345: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.712655: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.712886: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.713112: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.713330: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.713571: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.713795: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.714006: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.714215: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.714441: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.714682: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.714898: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.715105: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.715309: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.715537: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.715745: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.728099: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.728377: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.728612: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:20:02.728689: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:20:02.760446: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:20:02.760872: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:20:02.835076: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:20:02.848034: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:20:02.851486: High export rate found rates in range 99p to -99p
2026-08-17 11:20:02.906915: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:20:02.908008: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:20:02.922378: Battery level now 11.84kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -1.65p, change today 9.29p, rate_forward 6.87p
2026-08-17 11:20:02.922770: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.62kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:20:03.025455: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:20:03.025737: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:20:03.229454: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:20:03.282233: Today's load divergence 99.95%, in-day adjustment 83.28%, damping 0.95x, yesterday 68.37% today 99.95% blend 52.78%
2026-08-17 11:20:03.291121: Today's predicted so far 6.84kWh with 0.0kWh car/iBoost excluded, 4.24kWh import ignored, and 6.84kWh forecast extra.
2026-08-17 11:20:03.291298: Today's actual load so far 6.83kWh with 0.0kWh car/iBoost excluded, and 4.24kWh import ignored.
2026-08-17 11:20:03.364390: Inverter 0: Type SK Sunsynk
2026-08-17 11:20:03.364619: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:20:03.364945: Reserve min: 7%, battery_min: 7%
2026-08-17 11:20:03.365129: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:20:03.365564: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 440W, current battery voltage 51.2V, grid power -53W, load power 455W, PV Power 0W
2026-08-17 11:20:03.365881: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:20:03.366079: Inverter 0 scheduled charge enable is False
2026-08-17 11:20:03.366210: Inverter 0 charge windows currently []
2026-08-17 11:20:03.366333: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:20:03.366587: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:20:03.366717: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:20:03.366865: Inverter 0 scheduled discharge enable is False
2026-08-17 11:20:03.367186: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:20:03.367357: Inverter 0 discharge windows currently []
2026-08-17 11:20:03.367508: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:20:03.367626: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:20:03.367735: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:20:03.545388: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:20:03.545686: Plan was last updated on 2026-08-17 11:10:00+01:00 and is now 10.0 minutes old
2026-08-17 11:20:03.546056: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:20:03.546193: Best export window [ ]
2026-08-17 11:20:03.547580: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:20:03.552501: Load divergence over 8.0 hours mean 635.11W, min 379.8W, max 1896.0W, std dev 329.8W, divergence 25.96%
2026-08-17 11:20:03.594951: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:20:03.608002: LoadML is_calculating True
2026-08-17 11:20:03.608222: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 11:20:03.680758: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 596.66p, metric_keep 279.66kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.26kWh, PV 0.0kWh
2026-08-17 11:20:03.888269: Battery has 15.33 hours left - now at 11.84kWh
2026-08-17 11:20:04.097647: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 619.99p, metric_keep 281.59kWh, min_soc 1.12kWh @ 08-18 02:05:00, load 30.38kWh, PV 0.0kWh
2026-08-17 11:20:04.316934: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 323.27p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.38kWh, PV 0.0kWh
2026-08-17 11:20:04.423365: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 319.89p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.26kWh, PV 0.0kWh
2026-08-17 11:20:04.423611: Saving plan best values to HA entities
2026-08-17 11:20:04.703928: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:20:04.709304: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 11:20:04.714470: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.63kWh, house 0.0kWh, export 0.0kWh, metric 319.89p, metric10 323.27p
2026-08-17 11:20:04.881745: Marginal costs baseline metric (no standing charge): 273.2552
2026-08-17 11:20:05.326305: Marginal energy costs matrix computed: min=7.96 max=24.91
2026-08-17 11:20:05.436440: Rate array import [{'start': 680, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 680, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:20:05.437505: - Your estimated bill for today is £1.64 and tomorrow is £1.72
2026-08-17 11:20:05.437839: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:20:05.437958: - The battery is currently at 74% and is in eco mode for the next 12 hours.
2026-08-17 11:20:05.438111: - For the next 48 hours there will be no solar generation.
2026-08-17 11:20:05.438244: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:20:05.438370: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:20:05.438509:
2026-08-17 11:20:05.502639: Plan calculation took 1.96 seconds
2026-08-17 11:20:05.507472: No high rate period found
2026-08-17 11:20:05.625261: Import threshold used for optimisation was 8.0p
2026-08-17 11:20:05.721133: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:20:05.727723: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 74%, target 100%
2026-08-17 11:20:05.728026: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:20:05.728211: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:20:05.728551: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:20:05.728745: No export window planned
2026-08-17 11:20:05.728988: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:20:05.729121: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:20:05.729411: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:20:05.729710: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:20:05.729862: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:20:05.730028: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:20:05.730224: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.730371: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.730527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.730668: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.730807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.730975: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.731113: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.731301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.731458: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.731599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.731736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.731874: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.732040: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.732184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:05.732308: Inverter 0 count register writes 0
2026-08-17 11:20:05.764071: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 11:20:05.764396: Recompute is saving previous plan...
2026-08-17 11:20:05.765773: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 11:20:05.765924: Best export window [ ]
2026-08-17 11:20:05.767311: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:20:05.772113: Load divergence over 8.0 hours mean 635.11W, min 379.8W, max 1896.0W, std dev 329.8W, divergence 25.96%
2026-08-17 11:20:05.791586: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:20:05.791981: LoadML is_calculating True
2026-08-17 11:20:05.792022: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 11:20:05.799756: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 11:20:05.800143: Optimise levels pass started at 2026-08-17 11:20:05
2026-08-17 11:20:05.800186: Optimise all windows, total charge 24 export 1
2026-08-17 11:20:07.529653: >> Region optimisation pass width 960 gives best_metric 335.06p, best_cost 409.32p, best_cycle 46.5kWh, best_import 33.64kWh
2026-08-17 11:20:07.856283: >> Region optimisation pass width 480 gives best_metric 335.06p, best_cost 409.32p, best_cycle 46.5kWh, best_import 33.64kWh
2026-08-17 11:20:08.218776: >> Region optimisation pass width 240 gives best_metric 335.06p, best_cost 409.32p, best_cycle 46.5kWh, best_import 33.64kWh
2026-08-17 11:20:11.539020: >> Region optimisation pass width 120 gives best_metric 334.8p, best_cost 407.36p, best_cycle 46.75kWh, best_import 33.4kWh
2026-08-17 11:20:11.539218: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 11:20:11.539369: Optimise levels pass ended at 2026-08-17 11:20:11, duration 5.7 seconds tried 61 combinations
2026-08-17 11:20:11.539485: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 334.8p, best_keep 0kWh, best_cycle 46.75kWh, best_carbon 0kg, best_import 33.4kWh
2026-08-17 11:20:11.566981: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 11:20:21.056800: Tweak plan optimisation started metric 252.78p, cost 264.55p
2026-08-17 11:20:23.148660: Tweak optimisation finished metric 252.78p, cost 264.55p, metric_keep 0.11kWh, cycle 30.24kWh, carbon 0kg, import 15.54kWh, changed 8 window(s)
2026-08-17 11:20:23.168757: Swap charge optimisation started metric 252.78p, cost 264.55p, min_improvement_swap 0.1p
2026-08-17 11:20:24.075360: Swap charge optimisation finished metric 252.78p, cost 264.55p
2026-08-17 11:20:24.342127: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:20:24.342869: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:20:24.343417: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:20:24.343652: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:20:24.374114: Previous plan best metric is 253.14 (cost 264.96) and new plan best metric is 252.78 (cost 264.55)
2026-08-17 11:20:24.374403: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 11:20:24.374713: Plan valid is now true after recompute was False
2026-08-17 11:20:24.400397: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 595.04p, metric_keep 279.08kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.06kWh, PV 0.0kWh
2026-08-17 11:20:24.579887: Battery has 15.33 hours left - now at 11.84kWh
2026-08-17 11:20:24.668838: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 618.29p, metric_keep 281.01kWh, min_soc 1.12kWh @ 08-18 02:05:00, load 30.17kWh, PV 0.0kWh
2026-08-17 11:20:24.802269: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 316.01p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-17 11:20:24.941578: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 311.6p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.06kWh, PV 0.0kWh
2026-08-17 11:20:24.941669: Saving plan best values to HA entities
2026-08-17 11:20:25.132782: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:20:25.138565: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 11:20:25.157265: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.6kWh, house 0.0kWh, export 0.0kWh, metric 311.6p, metric10 316.01p
2026-08-17 11:20:25.301493: Marginal costs baseline metric (no standing charge): 264.963
2026-08-17 11:20:25.719038: Marginal energy costs matrix computed: min=7.96 max=24.91
2026-08-17 11:20:25.849668: Rate array import [{'start': 680, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 680, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:20:25.864441: - Your estimated bill for today is £1.64 and tomorrow is £1.72
2026-08-17 11:20:25.864600: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:20:25.864640: - The battery is currently at 74% and is in eco mode for the next 12 hours.
2026-08-17 11:20:25.864668: - For the next 48 hours there will be no solar generation.
2026-08-17 11:20:25.864773: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:20:25.864816: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:20:25.864879:
2026-08-17 11:20:25.933071: Plan calculation took 20.17 seconds
2026-08-17 11:20:25.933369: Inverter 0: Type SK Sunsynk
2026-08-17 11:20:25.933430: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:20:25.933695: Reserve min: 7%, battery_min: 7%
2026-08-17 11:20:25.933808: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:20:25.934151: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 416W, current battery voltage 51.2V, grid power -64W, load power 488W, PV Power 0W
2026-08-17 11:20:25.934405: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:20:25.934576: Inverter 0 scheduled charge enable is False
2026-08-17 11:20:25.934687: Inverter 0 charge windows currently []
2026-08-17 11:20:25.934788: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:20:25.934989: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:20:25.935124: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:20:25.935226: Inverter 0 scheduled discharge enable is False
2026-08-17 11:20:25.935468: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:20:25.935584: Inverter 0 discharge windows currently []
2026-08-17 11:20:25.935678: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:20:25.935767: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:20:25.935843: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:20:26.039012: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 74%, target 100%
2026-08-17 11:20:26.039261: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:20:26.039374: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:20:26.039643: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:20:26.039759: No export window planned
2026-08-17 11:20:26.039965: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:20:26.040085: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:20:26.040313: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:20:26.040544: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:20:26.040679: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:20:26.040814: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:20:26.040967: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041492: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.041924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.042015: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.042112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.042200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.042297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:20:26.042379: Inverter 0 count register writes 0
2026-08-17 11:20:26.076087: Total inverter register writes now 861
2026-08-17 11:20:26.132158: Info: Completed run status Demand
2026-08-17 11:20:26.139691: Info: record_status Demand
2026-08-17 11:20:26.145738: Saved current settings to /config/predbat_config.json
2026-08-17 11:20:26.146010: Compare, best tariff: current metric 104.68p
2026-08-17 11:20:30.310139: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0094 val_mae=0.0030 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-17 11:20:41.929479: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0093 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-2.5%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-17 11:20:53.375040: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0079 val_mae=0.0027 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-17 11:21:04.274261: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:21:04.274549: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:21:04.274737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:21:04.275042: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:21:04.275096: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:21:04.275197: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:21:04.275238: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:21:08.110933: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0077 val_mae=0.0028 kWh val_bias=+0.0004 kWh (+1.1%) combined=0.0022 kWh ema_combined=0.0019 kWh
2026-08-17 11:21:20.935296: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0081 val_mae=0.0032 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-17 11:21:34.553422: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0087 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 11:21:48.020123: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0067 val_mae=0.0030 kWh val_bias=-0.0010 kWh (-2.7%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-17 11:22:00.696018: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0069 val_mae=0.0027 kWh val_bias=+0.0004 kWh (+1.0%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 11:22:14.877430: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0065 val_mae=0.0029 kWh val_bias=+0.0004 kWh (+1.1%) combined=0.0023 kWh ema_combined=0.0020 kWh
2026-08-17 11:22:26.667995: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0072 val_mae=0.0030 kWh val_bias=+0.0008 kWh (+2.2%) combined=0.0028 kWh ema_combined=0.0023 kWh
2026-08-17 11:22:37.976423: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0024 kWh val_bias=-0.0008 kWh (-2.0%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-17 11:22:51.060800: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0061 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-1.7%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 11:23:03.140725: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0060 val_mae=0.0023 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-17 11:23:17.457301: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0061 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 11:23:18.679163: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:23:18.679556: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:23:18.679859: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:23:18.680129: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:23:18.680181: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:23:18.680274: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:23:18.680330: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:23:29.915952: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0051 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-17 11:23:42.583402: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 11:23:54.869293: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0057 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-17 11:24:06.269903: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 11:24:20.485072: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0050 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 11:24:33.859300: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-17 11:24:46.818096: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-17 11:24:59.717584: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-1.0%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-17 11:24:59.718346: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-17 11:24:59.718465: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-17 11:25:00.769241: ML Predictor: AR rollout over holdout: ar_mae=0.0024 kWh ar_bias=-0.0001 kWh (-0.3%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 11:25:00.774136: ML Predictor: Curriculum training complete, final val_mae=0.0022 kWh
2026-08-17 11:25:00.782417: ML Component: Training successful, val_mae=0.0022 kWh
2026-08-17 11:25:00.906204: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 11:25:00.909630: ML Component: Generating predictions load data age 58.0 days, 16955 data points
2026-08-17 11:25:01.033310: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0413 max_dow {0: 0.08525277784036266, 1: 0.09788437481913716, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 11:25:01.358161: --------------- PredBat - update at 2026-08-17 11:25:00+01:00 with clock skew 0 minutes, minutes now 685
2026-08-17 11:25:01.359074: Saved current settings to /config/predbat_config.json
2026-08-17 11:25:01.359208: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 29.7 minutes
2026-08-17 11:25:01.359290: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:25:01.359405: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:25:01.393104: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:25:01.393286: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:25:01.393520: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:25:01.394143: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:25:01.394292: Predbat mode is set to Control charge & discharge
2026-08-17 11:25:01.663727: ML Component: Generated 576 predictions (total 28.79 kWh over 48h)
2026-08-17 11:25:01.770341: ML Component: Prediction cycle completed
2026-08-17 11:25:01.825403: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:25:01.831093: Using load_power data to fill gaps in load_today data
2026-08-17 11:25:02.157254: ML Component: Saved 16955 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 11:25:02.560449: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:25:02.560630: Zero load period starting at 2026-08-17T10:54:00+0100 (31 minutes) for 189 minutes with base value 215.75
2026-08-17 11:25:02.560938: Processing 721 30-minute periods for power integration
2026-08-17 11:25:02.722266: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:25:02.722379: Car charging hold False, threshold 6.0kWh
2026-08-17 11:25:02.722429: Current data so far today: load 5.8kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:25:02.736801: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:25:02.736903: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:25:02.737473: Standing charge is set to 46.63p
2026-08-17 11:25:02.829855: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.830055: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.830196: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.830413: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.830600: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.830761: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.830945: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.831077: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.831230: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.831386: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.831540: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.831675: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.831827: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.832054: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.832196: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.832395: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.832553: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.832726: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.832884: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:25:02.832959: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:25:02.837109: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:25:02.837326: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:25:02.872180: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:25:02.872256: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:25:02.873186: High export rate found rates in range 99p to -99p
2026-08-17 11:25:02.896718: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:25:02.896782: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:25:02.906936: Battery level now 11.84kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -1.65p, change today 9.29p, rate_forward 6.87p
2026-08-17 11:25:02.907275: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.63kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:25:02.950601: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:25:02.950792: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:25:03.035173: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:25:03.059376: Today's load divergence 99.82%, in-day adjustment 83.33%, damping 0.95x, yesterday 68.37% today 99.83% blend 52.43%
2026-08-17 11:25:03.059445: Today's predicted so far 6.9kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 6.9kWh forecast extra.
2026-08-17 11:25:03.059471: Today's actual load so far 6.87kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 11:25:03.086144: Inverter 0: Type SK Sunsynk
2026-08-17 11:25:03.086206: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:25:03.086345: Reserve min: 7%, battery_min: 7%
2026-08-17 11:25:03.086395: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:25:03.086602: Inverter 0 SoC: 11.74kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 394W, current battery voltage 51.2V, grid power -56W, load power 454W, PV Power 0W
2026-08-17 11:25:03.086738: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:25:03.086808: Inverter 0 scheduled charge enable is False
2026-08-17 11:25:03.086831: Inverter 0 charge windows currently []
2026-08-17 11:25:03.086852: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:25:03.086935: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:25:03.086964: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:25:03.086993: Inverter 0 scheduled discharge enable is False
2026-08-17 11:25:03.087090: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:25:03.087120: Inverter 0 discharge windows currently []
2026-08-17 11:25:03.087157: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:25:03.087174: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:25:03.087194: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:25:03.138886: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:25:03.138980: Plan was last updated on 2026-08-17 11:20:00+01:00 and is now 5.0 minutes old
2026-08-17 11:25:03.139193: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:25:03.139233: Best export window [ ]
2026-08-17 11:25:03.140172: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:25:03.143516: Load divergence over 8.0 hours mean 631.93W, min 384.0W, max 2007.0W, std dev 331.76W, divergence 26.25%
2026-08-17 11:25:03.162438: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:25:03.162510: LoadML is_calculating False
2026-08-17 11:25:03.162568: Creating pool of 12 processes to match your CPU count
2026-08-17 11:25:03.303530: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 596.23p, metric_keep 279.46kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.14kWh, PV 0.0kWh
2026-08-17 11:25:03.415486: Battery has 15.25 hours left - now at 11.74kWh
2026-08-17 11:25:03.457449: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 619.54p, metric_keep 281.36kWh, min_soc 1.12kWh @ 08-18 02:05:00, load 30.25kWh, PV 0.0kWh
2026-08-17 11:25:03.529377: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 319.82p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.25kWh, PV 0.0kWh
2026-08-17 11:25:03.595115: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 315.88p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.14kWh, PV 0.0kWh
2026-08-17 11:25:03.595179: Saving plan best values to HA entities
2026-08-17 11:25:03.745474: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:25:03.750305: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:25:03.755001: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.13kWh, house 0kWh, export 0.0kWh, metric 315.88p, metric10 319.82p
2026-08-17 11:25:03.825754: Marginal costs baseline metric (no standing charge): 269.2442
2026-08-17 11:25:04.099734: Marginal energy costs matrix computed: min=8.01 max=25.01
2026-08-17 11:25:04.168248: Rate array import [{'start': 685, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 685, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:25:04.169079: - Your estimated bill for today is £1.64 and tomorrow is £1.72
2026-08-17 11:25:04.169124: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:25:04.169147: - The battery is currently at 73% and is in eco mode for the next 12 hours.
2026-08-17 11:25:04.169166: - For the next 48 hours there will be no solar generation.
2026-08-17 11:25:04.169184: - You will reach a minimum of 12% battery in 36 hours.
2026-08-17 11:25:04.169205: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:25:04.169222:
2026-08-17 11:25:04.221419: Plan calculation took 1.08 seconds
2026-08-17 11:25:04.224822: No high rate period found
2026-08-17 11:25:04.268404: Import threshold used for optimisation was 8.0p
2026-08-17 11:25:04.313211: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:25:04.318560: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:25:04.318695: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:25:04.318813: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:25:04.319123: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:25:04.319221: No export window planned
2026-08-17 11:25:04.319376: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:25:04.319412: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:25:04.319587: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:25:04.319792: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:25:04.319856: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:25:04.319957: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:25:04.320064: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320187: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320216: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320262: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320380: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320462: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320542: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:25:04.320643: Inverter 0 count register writes 0
2026-08-17 11:25:04.335946: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 11:25:04.340773: Total inverter register writes now 861
2026-08-17 11:25:04.368205: Info: Completed run status Demand
2026-08-17 11:25:04.373421: Info: record_status Demand
2026-08-17 11:25:04.379498: Saved current settings to /config/predbat_config.json
2026-08-17 11:25:04.379823: Compare, best tariff: current metric 104.68p
2026-08-17 11:25:34.471330: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:25:34.471556: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:25:34.471659: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:25:34.471969: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:25:34.472060: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:25:34.472084: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:25:34.472103: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:27:48.692955: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:27:48.693182: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:27:48.693216: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:27:48.693371: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:27:48.693515: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:27:48.693552: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:27:48.693570: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:29:48.906806: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:29:48.907031: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:29:48.907099: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:29:48.907244: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:29:48.907289: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:29:48.907310: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:29:48.907328: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:30:00.001908: --------------- PredBat - update at 2026-08-17 11:30:00+01:00 with clock skew 0 minutes, minutes now 690
2026-08-17 11:30:00.002627: Saved current settings to /config/predbat_config.json
2026-08-17 11:30:00.002756: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 34.6 minutes
2026-08-17 11:30:00.002823: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:30:00.002951: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:30:00.031601: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:30:00.031758: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:30:00.032019: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:30:00.032545: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:30:00.032663: Predbat mode is set to Control charge & discharge
2026-08-17 11:30:00.222263: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:30:00.222403: Using load_power data to fill gaps in load_today data
2026-08-17 11:30:01.039674: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:30:01.039846: Zero load period starting at 2026-08-17T10:54:00+0100 (36 minutes) for 189 minutes with base value 215.725
2026-08-17 11:30:01.040236: Processing 721 30-minute periods for power integration
2026-08-17 11:30:01.220998: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:30:01.221105: Car charging hold False, threshold 6.0kWh
2026-08-17 11:30:01.221148: Current data so far today: load 5.85kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:30:01.238148: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:30:01.238231: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:30:01.238931: Standing charge is set to 46.63p
2026-08-17 11:30:01.319129: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.319370: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.319573: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.319758: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.319974: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.320163: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.320346: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.320538: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.320712: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.320887: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.321061: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.321232: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.321401: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.321586: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.321775: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.321942: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.322109: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.322276: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.322457: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:30:01.322510: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:30:01.326606: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:30:01.326870: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:30:01.365703: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:30:01.365817: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:30:01.367065: High export rate found rates in range 99p to -99p
2026-08-17 11:30:01.396453: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:30:01.396541: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:30:01.408594: Battery level now 11.74kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -2.36p, change today 8.58p, rate_forward 6.87p
2026-08-17 11:30:01.408949: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.64kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:30:01.464075: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:30:01.464229: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:30:01.553943: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:30:01.579225: Today's load divergence 100.14%, in-day adjustment 83.59%, damping 0.95x, yesterday 68.37% today 100.13% blend 52.08%
2026-08-17 11:30:01.579309: Today's predicted so far 7.06kWh with 0.0kWh car/iBoost excluded, 4.32kWh import ignored, and 7.06kWh forecast extra.
2026-08-17 11:30:01.579341: Today's actual load so far 7.08kWh with 0.0kWh car/iBoost excluded, and 4.32kWh import ignored.
2026-08-17 11:30:01.610207: Inverter 0: Type SK Sunsynk
2026-08-17 11:30:01.610289: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:30:01.610479: Reserve min: 7%, battery_min: 7%
2026-08-17 11:30:01.610559: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:30:01.610811: Inverter 0 SoC: 11.74kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -53W, load power 453W, PV Power 0W
2026-08-17 11:30:01.610958: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:30:01.611042: Inverter 0 scheduled charge enable is False
2026-08-17 11:30:01.611075: Inverter 0 charge windows currently []
2026-08-17 11:30:01.611101: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:30:01.611253: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:30:01.611297: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:30:01.611362: Inverter 0 scheduled discharge enable is False
2026-08-17 11:30:01.611510: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:30:01.611550: Inverter 0 discharge windows currently []
2026-08-17 11:30:01.611574: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:30:01.611594: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:30:01.611612: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:30:01.665971: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:30:01.666071: Plan was last updated on 2026-08-17 11:20:00+01:00 and is now 10.0 minutes old
2026-08-17 11:30:01.666279: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:30:01.666319: Best export window [ ]
2026-08-17 11:30:01.667152: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:30:01.670379: Load divergence over 8.0 hours mean 628.57W, min 386.4W, max 1983.0W, std dev 323.88W, divergence 25.76%
2026-08-17 11:30:01.688730: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:30:01.688826: LoadML is_calculating False
2026-08-17 11:30:01.688883: Creating pool of 12 processes to match your CPU count
2026-08-17 11:30:01.797372: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 596.5p, metric_keep 279.63kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.25kWh, PV 0.0kWh
2026-08-17 11:30:01.967553: Battery has 15.17 hours left - now at 11.74kWh
2026-08-17 11:30:02.017559: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 619.79p, metric_keep 281.52kWh, min_soc 1.12kWh @ 08-18 02:05:00, load 30.36kWh, PV 0.0kWh
2026-08-17 11:30:02.088480: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 323.07p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.36kWh, PV 0.0kWh
2026-08-17 11:30:02.172416: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 319.74p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.25kWh, PV 0.0kWh
2026-08-17 11:30:02.172517: Saving plan best values to HA entities
2026-08-17 11:30:02.331318: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:30:02.336811: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:30:02.342073: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.61kWh, house 0.0kWh, export 0.0kWh, metric 319.74p, metric10 323.07p
2026-08-17 11:30:02.419149: Marginal costs baseline metric (no standing charge): 273.1053
2026-08-17 11:30:02.700313: Marginal energy costs matrix computed: min=8.0 max=24.85
2026-08-17 11:30:02.773922: Rate array import [{'start': 690, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 690, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:30:02.774675: - Your estimated bill for today is £1.64 and tomorrow is £1.72
2026-08-17 11:30:02.774718: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:30:02.774741: - The battery is currently at 73% and is in eco mode for the next 12 hours.
2026-08-17 11:30:02.774759: - For the next 48 hours there will be no solar generation.
2026-08-17 11:30:02.774776: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:30:02.774810: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:30:02.774833:
2026-08-17 11:30:02.838939: Plan calculation took 1.17 seconds
2026-08-17 11:30:02.842266: No high rate period found
2026-08-17 11:30:02.889167: Import threshold used for optimisation was 8.0p
2026-08-17 11:30:02.936884: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:30:02.943469: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:30:02.943647: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:30:02.943768: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:30:02.944105: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:30:02.944233: No export window planned
2026-08-17 11:30:02.944411: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:30:02.944470: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:30:02.944648: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:30:02.944870: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:30:02.944935: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:30:02.945033: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:30:02.945176: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945240: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945299: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945398: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945467: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945525: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.945945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.946004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:02.946054: Inverter 0 count register writes 0
2026-08-17 11:30:02.964182: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 11:30:02.964341: Recompute is saving previous plan...
2026-08-17 11:30:02.965220: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 11:30:02.965268: Best export window [ ]
2026-08-17 11:30:02.966036: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:30:02.970901: Load divergence over 8.0 hours mean 628.57W, min 386.4W, max 1983.0W, std dev 323.88W, divergence 25.76%
2026-08-17 11:30:02.989523: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:30:02.989619: LoadML is_calculating False
2026-08-17 11:30:02.989679: Creating pool of 12 processes to match your CPU count
2026-08-17 11:30:03.064082: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 11:30:03.064995: Optimise levels pass started at 2026-08-17 11:30:03
2026-08-17 11:30:03.065045: Optimise all windows, total charge 24 export 1
2026-08-17 11:30:03.613110: >> Region optimisation pass width 960 gives best_metric 336.21p, best_cost 409.28p, best_cycle 46.53kWh, best_import 33.63kWh
2026-08-17 11:30:03.979954: >> Region optimisation pass width 480 gives best_metric 327.86p, best_cost 336.69p, best_cycle 44.28kWh, best_import 24.56kWh
2026-08-17 11:30:04.196938: >> Region optimisation pass width 240 gives best_metric 327.86p, best_cost 336.69p, best_cycle 44.28kWh, best_import 24.56kWh
2026-08-17 11:30:05.004220: >> Region optimisation pass width 120 gives best_metric 323.99p, best_cost 335.82p, best_cycle 42.75kWh, best_import 24.45kWh
2026-08-17 11:30:05.004487: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 11:30:05.004590: Optimise levels pass ended at 2026-08-17 11:30:05, duration 1.9 seconds tried 78 combinations
2026-08-17 11:30:05.004697: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 323.99p, best_keep 0kWh, best_cycle 42.75kWh, best_carbon 0kg, best_import 24.45kWh
2026-08-17 11:30:05.023572: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 11:30:09.204940: Tweak plan optimisation started metric 252.72p, cost 264.5p
2026-08-17 11:30:09.519813: Tweak optimisation finished metric 252.72p, cost 264.5p, metric_keep 0.11kWh, cycle 30.09kWh, carbon 0kg, import 15.54kWh, changed 8 window(s)
2026-08-17 11:30:09.539576: Swap charge optimisation started metric 252.72p, cost 264.5p, min_improvement_swap 0.1p
2026-08-17 11:30:10.234613: Swap charge optimisation finished metric 252.72p, cost 264.5p
2026-08-17 11:30:10.363798: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:30:10.364228: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:30:10.364490: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:30:10.364728: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:30:10.401211: Previous plan best metric is 253.08 (cost 264.92) and new plan best metric is 252.72 (cost 264.5)
2026-08-17 11:30:10.401390: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 11:30:10.401546: Plan valid is now true after recompute was False
2026-08-17 11:30:10.431686: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 594.98p, metric_keep 279.04kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.06kWh, PV 0.0kWh
2026-08-17 11:30:10.671400: Battery has 15.17 hours left - now at 11.74kWh
2026-08-17 11:30:10.713709: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 618.2p, metric_keep 280.93kWh, min_soc 1.12kWh @ 08-18 02:05:00, load 30.16kWh, PV 0.0kWh
2026-08-17 11:30:10.786732: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 315.92p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.16kWh, PV 0.0kWh
2026-08-17 11:30:10.858907: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 311.56p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.06kWh, PV 0.0kWh
2026-08-17 11:30:10.858990: Saving plan best values to HA entities
2026-08-17 11:30:11.007406: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:30:11.013205: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:30:11.018627: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.59kWh, house 0.0kWh, export 0.0kWh, metric 311.56p, metric10 315.92p
2026-08-17 11:30:11.091387: Marginal costs baseline metric (no standing charge): 264.9227
2026-08-17 11:30:11.366777: Marginal energy costs matrix computed: min=8.0 max=24.85
2026-08-17 11:30:11.434622: Rate array import [{'start': 690, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 690, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:30:11.435321: - Your estimated bill for today is £1.64 and tomorrow is £1.72
2026-08-17 11:30:11.435391: - Import rates are very expensive (33.8p) for the next 12 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:30:11.435414: - The battery is currently at 73% and is in eco mode for the next 12 hours.
2026-08-17 11:30:11.435432: - For the next 48 hours there will be no solar generation.
2026-08-17 11:30:11.435466: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:30:11.435484: - Your next charge slot will be in 12 hours where import rates will be cheap (8.0p).
2026-08-17 11:30:11.435506:
2026-08-17 11:30:11.497649: Plan calculation took 8.53 seconds
2026-08-17 11:30:11.497937: Inverter 0: Type SK Sunsynk
2026-08-17 11:30:11.497981: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:30:11.498182: Reserve min: 7%, battery_min: 7%
2026-08-17 11:30:11.498258: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:30:11.498564: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 381W, current battery voltage 51.2V, grid power -55W, load power 446W, PV Power 0W
2026-08-17 11:30:11.498788: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:30:11.498885: Inverter 0 scheduled charge enable is False
2026-08-17 11:30:11.498920: Inverter 0 charge windows currently []
2026-08-17 11:30:11.498950: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:30:11.499064: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:30:11.499103: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:30:11.499141: Inverter 0 scheduled discharge enable is False
2026-08-17 11:30:11.499266: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:30:11.499303: Inverter 0 discharge windows currently []
2026-08-17 11:30:11.499325: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:30:11.499347: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:30:11.499371: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:30:11.557883: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:30:11.558042: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:30:11.558109: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:30:11.558285: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:30:11.558364: No export window planned
2026-08-17 11:30:11.558484: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:30:11.558522: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:30:11.558653: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:30:11.558836: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:30:11.558914: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:30:11.558973: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:30:11.559054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559147: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559178: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559251: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559287: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:30:11.559556: Inverter 0 count register writes 0
2026-08-17 11:30:11.579390: Total inverter register writes now 861
2026-08-17 11:30:11.610581: Info: Completed run status Demand
2026-08-17 11:30:11.617091: Info: record_status Demand
2026-08-17 11:30:11.623694: Saved current settings to /config/predbat_config.json
2026-08-17 11:30:11.624074: Compare, best tariff: current metric 104.68p
2026-08-17 11:30:48.729060: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:30:48.729278: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:30:48.729319: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:30:48.729466: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:30:48.729527: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:30:48.729549: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:30:48.729571: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:32:48.933932: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:32:48.934160: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:32:48.934194: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:32:48.934340: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:32:48.934379: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:32:48.934424: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:32:48.934456: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:34:49.147865: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:34:49.148168: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:34:49.148214: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:34:49.148365: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:34:49.148404: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:34:49.148426: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:34:49.148445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:35:00.233189: --------------- PredBat - update at 2026-08-17 11:35:00+01:00 with clock skew 0 minutes, minutes now 695
2026-08-17 11:35:00.233806: Saved current settings to /config/predbat_config.json
2026-08-17 11:35:00.233904: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 39.6 minutes
2026-08-17 11:35:00.233963: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:35:00.234018: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:35:00.248874: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:35:00.248977: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:35:00.249111: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:35:00.249555: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:35:00.249655: Predbat mode is set to Control charge & discharge
2026-08-17 11:35:00.409753: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:35:00.409871: Using load_power data to fill gaps in load_today data
2026-08-17 11:35:01.082974: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:35:01.083137: Zero load period starting at 2026-08-17T10:54:00+0100 (41 minutes) for 189 minutes with base value 215.7
2026-08-17 11:35:01.083425: Processing 721 30-minute periods for power integration
2026-08-17 11:35:01.240237: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:35:01.240366: Car charging hold False, threshold 6.0kWh
2026-08-17 11:35:01.240407: Current data so far today: load 5.9kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:35:01.255606: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:35:01.255714: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:35:01.256406: Standing charge is set to 46.63p
2026-08-17 11:35:01.343248: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.343516: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.343671: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.343816: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.343998: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.344157: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.344302: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.344479: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.344698: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.344896: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.345091: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.345238: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.345429: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.345609: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.345775: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.345908: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.346035: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.346248: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.346497: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:35:01.346568: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:35:01.353451: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:35:01.353803: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:35:01.392576: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:35:01.392677: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:35:01.393764: High export rate found rates in range 99p to -99p
2026-08-17 11:35:01.417694: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:35:01.417796: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:35:01.428819: Battery level now 11.74kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -2.36p, change today 8.58p, rate_forward 6.87p
2026-08-17 11:35:01.429139: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.65kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:35:01.472201: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:35:01.472328: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:35:01.549044: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:35:01.569384: Today's load divergence 99.75%, in-day adjustment 83.52%, damping 0.95x, yesterday 68.37% today 99.76% blend 51.74%
2026-08-17 11:35:01.569470: Today's predicted so far 7.19kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 7.19kWh forecast extra.
2026-08-17 11:35:01.569496: Today's actual load so far 7.15kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 11:35:01.600745: Inverter 0: Type SK Sunsynk
2026-08-17 11:35:01.600814: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:35:01.600958: Reserve min: 7%, battery_min: 7%
2026-08-17 11:35:01.601014: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:35:01.601220: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 393W, current battery voltage 51.2V, grid power -55W, load power 455W, PV Power 0W
2026-08-17 11:35:01.601358: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:35:01.601429: Inverter 0 scheduled charge enable is False
2026-08-17 11:35:01.601452: Inverter 0 charge windows currently []
2026-08-17 11:35:01.601474: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:35:01.601563: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:35:01.601592: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:35:01.601620: Inverter 0 scheduled discharge enable is False
2026-08-17 11:35:01.601723: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:35:01.601754: Inverter 0 discharge windows currently []
2026-08-17 11:35:01.601771: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:35:01.601786: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:35:01.601807: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:35:01.647786: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:35:01.647893: Plan was last updated on 2026-08-17 11:30:00+01:00 and is now 5.0 minutes old
2026-08-17 11:35:01.648141: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:35:01.648180: Best export window [ ]
2026-08-17 11:35:01.648926: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:35:01.651515: Load divergence over 8.0 hours mean 625.61W, min 381.6W, max 1926.0W, std dev 318.62W, divergence 25.46%
2026-08-17 11:35:01.666718: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:35:01.666803: LoadML is_calculating False
2026-08-17 11:35:01.666851: Creating pool of 12 processes to match your CPU count
2026-08-17 11:35:01.767744: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 595.52p, metric_keep 279.25kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.14kWh, PV 0.0kWh
2026-08-17 11:35:01.873414: Battery has 15.08 hours left - now at 11.68kWh
2026-08-17 11:35:01.909740: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 618.73p, metric_keep 281.13kWh, min_soc 1.12kWh @ 08-18 02:10:00, load 30.24kWh, PV 0.0kWh
2026-08-17 11:35:01.991071: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 319.35p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.24kWh, PV 0.0kWh
2026-08-17 11:35:02.070772: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 315.53p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.14kWh, PV 0.0kWh
2026-08-17 11:35:02.070860: Saving plan best values to HA entities
2026-08-17 11:35:02.227667: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:35:02.233000: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 11:35:02.238100: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.09kWh, house 0.0kWh, export 0.0kWh, metric 315.53p, metric10 319.35p
2026-08-17 11:35:02.317408: Marginal costs baseline metric (no standing charge): 268.8985
2026-08-17 11:35:02.597201: Marginal energy costs matrix computed: min=8.0 max=24.76
2026-08-17 11:35:02.669462: Rate array import [{'start': 695, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 695, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:35:02.670077: - Your estimated bill for today is £1.63 and tomorrow is £1.72
2026-08-17 11:35:02.670114: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:35:02.670133: - The battery is currently at 73% and is in eco mode for the next 11 hours.
2026-08-17 11:35:02.670147: - For the next 48 hours there will be no solar generation.
2026-08-17 11:35:02.670161: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:35:02.670179: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 11:35:02.670194:
2026-08-17 11:35:02.722852: Plan calculation took 1.07 seconds
2026-08-17 11:35:02.726462: No high rate period found
2026-08-17 11:35:02.779435: Import threshold used for optimisation was 8.0p
2026-08-17 11:35:02.827930: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:35:02.833049: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:35:02.833166: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:35:02.833252: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:35:02.833469: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:35:02.833545: No export window planned
2026-08-17 11:35:02.833641: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:35:02.833670: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:35:02.833777: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:35:02.833920: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:35:02.833967: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:35:02.834022: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:35:02.834118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834176: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834200: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834266: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834449: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:35:02.834488: Inverter 0 count register writes 0
2026-08-17 11:35:02.849062: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 11:35:02.854449: Total inverter register writes now 861
2026-08-17 11:35:02.885006: Info: Completed run status Demand
2026-08-17 11:35:02.891600: Info: record_status Demand
2026-08-17 11:35:02.898300: Saved current settings to /config/predbat_config.json
2026-08-17 11:35:02.898619: Compare, best tariff: current metric 104.68p
2026-08-17 11:35:33.997111: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:35:33.997346: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:35:33.997459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:35:33.997715: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:35:33.997775: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:35:33.997797: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:35:33.997812: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:37:34.257852: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:37:34.258128: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:37:34.258206: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:37:34.258418: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:37:34.258473: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:37:34.258507: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:37:34.258536: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:39:34.476122: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:39:34.476349: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:39:34.476390: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:39:34.476523: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:39:34.476562: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:39:34.476583: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:39:34.476606: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:40:00.583951: --------------- PredBat - update at 2026-08-17 11:40:00+01:00 with clock skew 0 minutes, minutes now 700
2026-08-17 11:40:00.584711: Saved current settings to /config/predbat_config.json
2026-08-17 11:40:00.584806: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 44.7 minutes
2026-08-17 11:40:00.584891: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:40:00.584980: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:40:00.602041: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:40:00.602143: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:40:00.602277: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:40:00.602696: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:40:00.602795: Predbat mode is set to Control charge & discharge
2026-08-17 11:40:00.764729: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:40:00.764851: Using load_power data to fill gaps in load_today data
2026-08-17 11:40:01.466673: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:40:01.467178: Zero load period starting at 2026-08-17T10:54:00+0100 (46 minutes) for 189 minutes with base value 215.65
2026-08-17 11:40:01.467463: Processing 721 30-minute periods for power integration
2026-08-17 11:40:01.633689: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:40:01.634059: Car charging hold False, threshold 6.0kWh
2026-08-17 11:40:01.634256: Current data so far today: load 5.95kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:40:01.650173: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:40:01.652509: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:40:01.653135: Standing charge is set to 46.63p
2026-08-17 11:40:01.745785: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.746088: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.746344: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.746628: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.747008: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.747992: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.749484: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.749699: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.749932: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.750233: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.750509: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.750661: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.750809: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.750972: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.751126: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.751263: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.751402: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.751539: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.751686: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:40:01.751741: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:40:01.756087: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:40:01.757116: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:40:01.800682: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:40:01.800815: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:40:01.802815: High export rate found rates in range 99p to -99p
2026-08-17 11:40:01.835796: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:40:01.835950: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:40:01.852729: Battery level now 11.68kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -2.75p, change today 8.19p, rate_forward 6.87p
2026-08-17 11:40:01.853205: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.66kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:40:01.909678: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:40:01.909853: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:40:01.988510: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:40:02.014769: Today's load divergence 99.64%, in-day adjustment 83.58%, damping 0.95x, yesterday 68.37% today 99.66% blend 51.39%
2026-08-17 11:40:02.014878: Today's predicted so far 7.24kWh with 0.0kWh car/iBoost excluded, 4.19kWh import ignored, and 7.24kWh forecast extra.
2026-08-17 11:40:02.014932: Today's actual load so far 7.18kWh with 0.0kWh car/iBoost excluded, and 4.19kWh import ignored.
2026-08-17 11:40:02.050841: Inverter 0: Type SK Sunsynk
2026-08-17 11:40:02.050930: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:40:02.051209: Reserve min: 7%, battery_min: 7%
2026-08-17 11:40:02.051298: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:40:02.051615: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 440W, current battery voltage 51.2V, grid power -56W, load power 503W, PV Power 0W
2026-08-17 11:40:02.051797: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:40:02.051963: Inverter 0 scheduled charge enable is False
2026-08-17 11:40:02.052017: Inverter 0 charge windows currently []
2026-08-17 11:40:02.052057: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:40:02.052218: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:40:02.052261: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:40:02.052313: Inverter 0 scheduled discharge enable is False
2026-08-17 11:40:02.052488: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:40:02.052530: Inverter 0 discharge windows currently []
2026-08-17 11:40:02.052558: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:40:02.052600: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:40:02.052647: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:40:02.110486: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:40:02.110585: Plan was last updated on 2026-08-17 11:30:00+01:00 and is now 10.0 minutes old
2026-08-17 11:40:02.110797: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:40:02.110838: Best export window [ ]
2026-08-17 11:40:02.111694: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:40:02.115223: Load divergence over 8.0 hours mean 622.34W, min 366.0W, max 1707.6W, std dev 311.41W, divergence 25.02%
2026-08-17 11:40:02.133551: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:40:02.133636: LoadML is_calculating False
2026-08-17 11:40:02.133692: Creating pool of 12 processes to match your CPU count
2026-08-17 11:40:02.242590: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 595.71p, metric_keep 279.22kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.21kWh, PV 0.0kWh
2026-08-17 11:40:02.363465: Battery has 15.17 hours left - now at 11.68kWh
2026-08-17 11:40:02.400226: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 618.93p, metric_keep 281.1kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.32kWh, PV 0.0kWh
2026-08-17 11:40:02.463393: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 322.22p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.32kWh, PV 0.0kWh
2026-08-17 11:40:02.537093: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 319.04p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.21kWh, PV 0.0kWh
2026-08-17 11:40:02.537180: Saving plan best values to HA entities
2026-08-17 11:40:02.678172: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:40:02.683207: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:40:02.688097: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.52kWh, house 0.0kWh, export 0.0kWh, metric 319.04p, metric10 322.22p
2026-08-17 11:40:02.758797: Marginal costs baseline metric (no standing charge): 272.4022
2026-08-17 11:40:03.034861: Marginal energy costs matrix computed: min=8.0 max=24.55
2026-08-17 11:40:03.105598: Rate array import [{'start': 700, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 700, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:40:03.106405: - Your estimated bill for today is £1.64 and tomorrow is £1.71
2026-08-17 11:40:03.106454: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:40:03.106485: - The battery is currently at 73% and is in eco mode for the next 11 hours.
2026-08-17 11:40:03.106521: - For the next 48 hours there will be no solar generation.
2026-08-17 11:40:03.106555: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:40:03.106575: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 11:40:03.106604:
2026-08-17 11:40:03.158319: Plan calculation took 1.05 seconds
2026-08-17 11:40:03.162186: No high rate period found
2026-08-17 11:40:03.206731: Import threshold used for optimisation was 8.0p
2026-08-17 11:40:03.253341: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:40:03.258478: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:40:03.258649: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:40:03.258785: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:40:03.259113: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:40:03.259264: No export window planned
2026-08-17 11:40:03.259437: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:40:03.259495: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:40:03.259704: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:40:03.259979: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:40:03.260054: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:40:03.260153: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:40:03.260279: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260348: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260413: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260515: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260546: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260602: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.260974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.261034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:03.261083: Inverter 0 count register writes 0
2026-08-17 11:40:03.275509: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 11:40:03.275706: Recompute is saving previous plan...
2026-08-17 11:40:03.276703: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 11:40:03.276778: Best export window [ ]
2026-08-17 11:40:03.277630: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:40:03.280857: Load divergence over 8.0 hours mean 622.34W, min 366.0W, max 1707.6W, std dev 311.41W, divergence 25.02%
2026-08-17 11:40:03.298290: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:40:03.298390: LoadML is_calculating False
2026-08-17 11:40:03.298468: Creating pool of 12 processes to match your CPU count
2026-08-17 11:40:03.372731: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 11:40:03.373508: Optimise levels pass started at 2026-08-17 11:40:03
2026-08-17 11:40:03.373558: Optimise all windows, total charge 24 export 1
2026-08-17 11:40:03.683177: >> Region optimisation pass width 960 gives best_metric 336.68p, best_cost 408.33p, best_cycle 46.45kWh, best_import 33.52kWh
2026-08-17 11:40:03.825294: >> Region optimisation pass width 480 gives best_metric 336.68p, best_cost 408.33p, best_cycle 46.45kWh, best_import 33.52kWh
2026-08-17 11:40:04.066166: >> Region optimisation pass width 240 gives best_metric 336.68p, best_cost 408.33p, best_cycle 46.45kWh, best_import 33.52kWh
2026-08-17 11:40:04.608524: >> Region optimisation pass width 120 gives best_metric 336.68p, best_cost 408.33p, best_cycle 46.45kWh, best_import 33.52kWh
2026-08-17 11:40:04.608694: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 11:40:04.608743: Optimise levels pass ended at 2026-08-17 11:40:04, duration 1.2 seconds tried 58 combinations
2026-08-17 11:40:04.608792: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 336.68p, best_keep 0.1kWh, best_cycle 46.45kWh, best_carbon 0kg, best_import 33.52kWh
2026-08-17 11:40:04.623460: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 11:40:06.947511: Tweak plan optimisation started metric 251.79p, cost 263.62p
2026-08-17 11:40:07.271496: Tweak optimisation finished metric 251.79p, cost 263.62p, metric_keep 0.1kWh, cycle 29.82kWh, carbon 0kg, import 15.43kWh, changed 8 window(s)
2026-08-17 11:40:07.288550: Swap charge optimisation started metric 251.79p, cost 263.62p, min_improvement_swap 0.1p
2026-08-17 11:40:08.032571: Swap charge optimisation finished metric 251.79p, cost 263.62p
2026-08-17 11:40:08.164705: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:40:08.165157: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:40:08.165461: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:40:08.165714: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:40:08.202842: Previous plan best metric is 252.22 (cost 264.12) and new plan best metric is 251.79 (cost 263.62)
2026-08-17 11:40:08.203082: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 11:40:08.203303: Plan valid is now true after recompute was False
2026-08-17 11:40:08.233832: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 594.09p, metric_keep 278.63kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.01kWh, PV 0.0kWh
2026-08-17 11:40:08.323737: Battery has 15.17 hours left - now at 11.68kWh
2026-08-17 11:40:08.367631: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 617.24p, metric_keep 280.51kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.1kWh, PV 0.0kWh
2026-08-17 11:40:08.430379: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 314.97p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.1kWh, PV 0.0kWh
2026-08-17 11:40:08.493059: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 310.75p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.01kWh, PV 0.0kWh
2026-08-17 11:40:08.493148: Saving plan best values to HA entities
2026-08-17 11:40:08.609453: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:40:08.614184: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:40:08.618952: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.49kWh, house 0.0kWh, export 0.0kWh, metric 310.75p, metric10 314.97p
2026-08-17 11:40:08.685755: Marginal costs baseline metric (no standing charge): 264.1179
2026-08-17 11:40:08.935626: Marginal energy costs matrix computed: min=8.0 max=24.55
2026-08-17 11:40:08.995035: Rate array import [{'start': 700, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 700, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:40:08.995617: - Your estimated bill for today is £1.64 and tomorrow is £1.71
2026-08-17 11:40:08.995653: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:40:08.995671: - The battery is currently at 73% and is in eco mode for the next 11 hours.
2026-08-17 11:40:08.995686: - For the next 48 hours there will be no solar generation.
2026-08-17 11:40:08.995701: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:40:08.995719: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 11:40:08.995734:
2026-08-17 11:40:09.043675: Plan calculation took 5.77 seconds
2026-08-17 11:40:09.044064: Inverter 0: Type SK Sunsynk
2026-08-17 11:40:09.044125: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:40:09.044371: Reserve min: 7%, battery_min: 7%
2026-08-17 11:40:09.044447: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:40:09.044711: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 440W, current battery voltage 51.2V, grid power -56W, load power 503W, PV Power 0W
2026-08-17 11:40:09.044919: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:40:09.045019: Inverter 0 scheduled charge enable is False
2026-08-17 11:40:09.045043: Inverter 0 charge windows currently []
2026-08-17 11:40:09.045067: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:40:09.045156: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:40:09.045188: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:40:09.045220: Inverter 0 scheduled discharge enable is False
2026-08-17 11:40:09.045328: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:40:09.045358: Inverter 0 discharge windows currently []
2026-08-17 11:40:09.045377: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:40:09.045392: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:40:09.045405: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:40:09.089466: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:40:09.089586: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:40:09.089641: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:40:09.089790: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:40:09.089856: No export window planned
2026-08-17 11:40:09.089958: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:40:09.089989: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:40:09.090101: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:40:09.090234: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:40:09.090275: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:40:09.090323: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:40:09.090396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090473: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090514: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090553: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090741: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:40:09.090824: Inverter 0 count register writes 0
2026-08-17 11:40:09.109592: Total inverter register writes now 861
2026-08-17 11:40:09.140111: Info: Completed run status Demand
2026-08-17 11:40:09.146114: Info: record_status Demand
2026-08-17 11:40:09.151698: Saved current settings to /config/predbat_config.json
2026-08-17 11:40:09.151954: Compare, best tariff: current metric 104.68p
2026-08-17 11:40:49.253912: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:40:49.254221: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:40:49.254277: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:40:49.254478: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:40:49.254529: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:40:49.254563: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:40:49.254591: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:42:49.461892: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:42:49.462121: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:42:49.462186: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:42:49.462318: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:42:49.462356: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:42:49.462377: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:42:49.462395: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:45:00.673947: --------------- PredBat - update at 2026-08-17 11:45:00+01:00 with clock skew 0 minutes, minutes now 705
2026-08-17 11:45:00.674807: Saved current settings to /config/predbat_config.json
2026-08-17 11:45:00.675003: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 49.7 minutes
2026-08-17 11:45:00.675164: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:45:00.675290: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:45:00.691410: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:45:00.691552: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:45:00.691770: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:45:00.692365: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:45:00.692536: Predbat mode is set to Control charge & discharge
2026-08-17 11:45:00.887601: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:45:00.888032: Using load_power data to fill gaps in load_today data
2026-08-17 11:45:01.757345: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:45:01.757569: Zero load period starting at 2026-08-17T10:54:00+0100 (51 minutes) for 189 minutes with base value 215.6
2026-08-17 11:45:01.757920: Processing 721 30-minute periods for power integration
2026-08-17 11:45:01.953515: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:45:01.953852: Car charging hold False, threshold 6.0kWh
2026-08-17 11:45:01.953909: Current data so far today: load 6.0kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:45:01.973136: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:45:01.973241: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:45:01.973945: Standing charge is set to 46.63p
2026-08-17 11:45:02.058606: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.058901: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.059161: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.059368: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.059603: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.059805: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.060072: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.060287: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.060475: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.060642: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.060826: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.060990: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.061149: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.061306: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.061475: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.061635: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.061787: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.061940: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.062091: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:45:02.062149: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:45:02.067464: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:45:02.068061: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:45:02.111876: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:45:02.112002: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:45:02.113325: High export rate found rates in range 99p to -99p
2026-08-17 11:45:02.143521: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:45:02.143611: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:45:02.156019: Battery level now 11.68kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -2.75p, change today 8.19p, rate_forward 6.87p
2026-08-17 11:45:02.156469: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.67kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:45:02.207195: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:45:02.207374: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:45:02.290801: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:45:02.317520: Today's load divergence 99.6%, in-day adjustment 83.67%, damping 0.95x, yesterday 68.37% today 99.62% blend 51.04%
2026-08-17 11:45:02.317593: Today's predicted so far 7.28kWh with 0.0kWh car/iBoost excluded, 4.17kWh import ignored, and 7.28kWh forecast extra.
2026-08-17 11:45:02.317625: Today's actual load so far 7.22kWh with 0.0kWh car/iBoost excluded, and 4.17kWh import ignored.
2026-08-17 11:45:02.348506: Inverter 0: Type SK Sunsynk
2026-08-17 11:45:02.348584: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:45:02.348751: Reserve min: 7%, battery_min: 7%
2026-08-17 11:45:02.348819: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:45:02.349100: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 422W, current battery voltage 51.2V, grid power -54W, load power 483W, PV Power 0W
2026-08-17 11:45:02.349269: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:45:02.349463: Inverter 0 scheduled charge enable is False
2026-08-17 11:45:02.349523: Inverter 0 charge windows currently []
2026-08-17 11:45:02.349573: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:45:02.349733: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:45:02.349778: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:45:02.349828: Inverter 0 scheduled discharge enable is False
2026-08-17 11:45:02.349993: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:45:02.350057: Inverter 0 discharge windows currently []
2026-08-17 11:45:02.350102: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:45:02.350143: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:45:02.350173: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:45:02.407136: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:45:02.407262: Plan was last updated on 2026-08-17 11:40:00+01:00 and is now 5.0 minutes old
2026-08-17 11:45:02.407484: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:45:02.407526: Best export window [ ]
2026-08-17 11:45:02.408380: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:45:02.411609: Load divergence over 8.0 hours mean 619.21W, min 350.4W, max 1788.0W, std dev 323.06W, divergence 26.09%
2026-08-17 11:45:02.430347: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:45:02.430451: LoadML is_calculating False
2026-08-17 11:45:02.430511: Creating pool of 12 processes to match your CPU count
2026-08-17 11:45:02.538714: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 594.72p, metric_keep 278.55kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.09kWh, PV 0.0kWh
2026-08-17 11:45:02.647808: Battery has 15.17 hours left - now at 11.68kWh
2026-08-17 11:45:02.690351: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 617.86p, metric_keep 280.48kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.19kWh, PV 0.0kWh
2026-08-17 11:45:02.760816: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 317.85p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.19kWh, PV 0.0kWh
2026-08-17 11:45:02.852727: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 314.31p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.09kWh, PV 0.0kWh
2026-08-17 11:45:02.852813: Saving plan best values to HA entities
2026-08-17 11:45:02.994361: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:45:02.999638: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 11:45:03.004913: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.93kWh, house 0.0kWh, export 0.0kWh, metric 314.31p, metric10 317.85p
2026-08-17 11:45:03.078010: Marginal costs baseline metric (no standing charge): 267.6794
2026-08-17 11:45:03.352406: Marginal energy costs matrix computed: min=8.0 max=24.33
2026-08-17 11:45:03.427524: Rate array import [{'start': 705, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 705, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:45:03.428298: - Your estimated bill for today is £1.64 and tomorrow is £1.71
2026-08-17 11:45:03.428346: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:45:03.428368: - The battery is currently at 73% and is in eco mode for the next 11 hours.
2026-08-17 11:45:03.428387: - For the next 48 hours there will be no solar generation.
2026-08-17 11:45:03.428409: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:45:03.428444: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 11:45:03.428462:
2026-08-17 11:45:03.481177: Plan calculation took 1.07 seconds
2026-08-17 11:45:03.484114: No high rate period found
2026-08-17 11:45:03.525500: Import threshold used for optimisation was 8.0p
2026-08-17 11:45:03.574664: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:45:03.579372: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:45:03.579517: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:45:03.579604: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:45:03.579878: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:45:03.580038: No export window planned
2026-08-17 11:45:03.580156: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:45:03.580187: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:45:03.580301: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:45:03.580505: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:45:03.580556: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:45:03.580613: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:45:03.580683: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580715: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580740: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580806: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580897: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580968: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.580987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.581008: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.581027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:45:03.581043: Inverter 0 count register writes 0
2026-08-17 11:45:03.594965: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 11:45:03.599711: Total inverter register writes now 861
2026-08-17 11:45:03.628832: Info: Completed run status Demand
2026-08-17 11:45:03.634047: Info: record_status Demand
2026-08-17 11:45:03.639856: Saved current settings to /config/predbat_config.json
2026-08-17 11:45:03.640234: Compare, best tariff: current metric 104.68p
2026-08-17 11:45:33.745682: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:45:33.746052: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:45:33.746120: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:45:33.746406: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:45:33.746470: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:45:33.746494: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:45:33.746513: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:47:33.955776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:47:33.956024: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:47:33.956070: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:47:33.956235: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:47:33.956277: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:47:33.956299: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:47:33.956317: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:49:34.177389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:49:34.177634: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:49:34.177669: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:49:34.177817: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:49:34.177875: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:49:34.177906: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:49:34.177924: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:50:00.275199: --------------- PredBat - update at 2026-08-17 11:50:00+01:00 with clock skew 0 minutes, minutes now 710
2026-08-17 11:50:00.276003: Saved current settings to /config/predbat_config.json
2026-08-17 11:50:00.276142: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 54.6 minutes
2026-08-17 11:50:00.276213: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:50:00.276306: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:50:00.298782: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:50:00.298936: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:50:00.299097: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:50:00.299580: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:50:00.299695: Predbat mode is set to Control charge & discharge
2026-08-17 11:50:00.470466: Found 21602 load_today datapoints going back 28 days
2026-08-17 11:50:00.470593: Using load_power data to fill gaps in load_today data
2026-08-17 11:50:01.268638: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:50:01.268885: Zero load period starting at 2026-08-17T10:54:00+0100 (56 minutes) for 189 minutes with base value 215.575
2026-08-17 11:50:01.269280: Processing 721 30-minute periods for power integration
2026-08-17 11:50:01.459077: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:50:01.459451: Car charging hold False, threshold 6.0kWh
2026-08-17 11:50:01.459507: Current data so far today: load 5.9kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:50:01.477961: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:50:01.478068: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:50:01.478807: Standing charge is set to 46.63p
2026-08-17 11:50:01.557040: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.557281: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.557502: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.557709: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.557928: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.558143: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.558347: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.558542: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.558768: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.559016: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.559286: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.559505: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.559748: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.560030: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.560260: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.560485: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.560710: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.560925: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.561290: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:50:01.561348: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:50:01.565740: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:50:01.566126: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:50:01.601416: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:50:01.601515: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:50:01.602693: High export rate found rates in range 99p to -99p
2026-08-17 11:50:01.626548: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:50:01.626663: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:50:01.637973: Battery level now 11.68kWh, -1hr ago 12.08kWh, at midnight 10.49kWh, battery value change in the last hour -2.75p, change today 8.19p, rate_forward 6.87p
2026-08-17 11:50:01.638493: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.53kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:50:01.686223: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:50:01.686335: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:50:01.754725: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:50:01.775326: Today's load divergence 98.69%, in-day adjustment 83.35%, damping 0.95x, yesterday 68.37% today 98.76% blend 50.69%
2026-08-17 11:50:01.775391: Today's predicted so far 7.34kWh with 0.0kWh car/iBoost excluded, 4.24kWh import ignored, and 7.34kWh forecast extra.
2026-08-17 11:50:01.775416: Today's actual load so far 7.13kWh with 0.0kWh car/iBoost excluded, and 4.24kWh import ignored.
2026-08-17 11:50:01.801616: Inverter 0: Type SK Sunsynk
2026-08-17 11:50:01.801686: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:50:01.801885: Reserve min: 7%, battery_min: 7%
2026-08-17 11:50:01.802011: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:50:01.802262: Inverter 0 SoC: 11.66kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 686W, current battery voltage 51.2V, grid power -55W, load power 757W, PV Power 0W
2026-08-17 11:50:01.802411: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:50:01.802514: Inverter 0 scheduled charge enable is False
2026-08-17 11:50:01.802548: Inverter 0 charge windows currently []
2026-08-17 11:50:01.802581: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:50:01.802712: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:50:01.802759: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:50:01.802825: Inverter 0 scheduled discharge enable is False
2026-08-17 11:50:01.802971: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:50:01.803007: Inverter 0 discharge windows currently []
2026-08-17 11:50:01.803031: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:50:01.803066: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:50:01.803084: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:50:01.853197: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:50:01.853299: Plan was last updated on 2026-08-17 11:40:00+01:00 and is now 10.0 minutes old
2026-08-17 11:50:01.853527: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:50:01.853577: Best export window [ ]
2026-08-17 11:50:01.854462: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:50:01.857800: Load divergence over 8.0 hours mean 614.79W, min 379.8W, max 1896.0W, std dev 331.84W, divergence 26.99%
2026-08-17 11:50:01.873615: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:50:01.873718: LoadML is_calculating False
2026-08-17 11:50:01.873769: Creating pool of 12 processes to match your CPU count
2026-08-17 11:50:01.981985: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 594.6p, metric_keep 278.47kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 28.98kWh, PV 0.0kWh
2026-08-17 11:50:02.139326: Battery has 15.25 hours left - now at 11.66kWh
2026-08-17 11:50:02.179091: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 617.76p, metric_keep 280.42kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.08kWh, PV 0.0kWh
2026-08-17 11:50:02.246127: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 320.7p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.08kWh, PV 0.0kWh
2026-08-17 11:50:02.313950: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 317.8p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.98kWh, PV 0.0kWh
2026-08-17 11:50:02.314029: Saving plan best values to HA entities
2026-08-17 11:50:02.446208: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:50:02.450709: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:50:02.457044: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.37kWh, house 0.0kWh, export 0.0kWh, metric 317.8p, metric10 320.7p
2026-08-17 11:50:02.526466: Marginal costs baseline metric (no standing charge): 271.1667
2026-08-17 11:50:02.747981: Marginal energy costs matrix computed: min=8.0 max=24.08
2026-08-17 11:50:02.812615: Rate array import [{'start': 710, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 710, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:50:02.813250: - Your estimated bill for today is £1.64 and tomorrow is £1.70
2026-08-17 11:50:02.813291: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:50:02.813310: - The battery is currently at 73% and is in eco mode for the next 11 hours.
2026-08-17 11:50:02.813325: - For the next 48 hours there will be no solar generation.
2026-08-17 11:50:02.813339: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:50:02.813360: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 11:50:02.813374:
2026-08-17 11:50:02.864050: Plan calculation took 1.01 seconds
2026-08-17 11:50:02.868011: No high rate period found
2026-08-17 11:50:02.909526: Import threshold used for optimisation was 8.0p
2026-08-17 11:50:02.951120: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:50:02.955950: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 73%, target 100%
2026-08-17 11:50:02.956057: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:50:02.956169: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:50:02.956414: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:50:02.956517: No export window planned
2026-08-17 11:50:02.956669: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:50:02.956704: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:50:02.956862: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:50:02.957044: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:50:02.957102: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:50:02.957184: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:50:02.957298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957384: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957453: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957481: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957506: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:02.957873: Inverter 0 count register writes 0
2026-08-17 11:50:02.971329: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 11:50:02.971463: Recompute is saving previous plan...
2026-08-17 11:50:02.972226: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 11:50:02.972268: Best export window [ ]
2026-08-17 11:50:02.972911: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:50:02.975357: Load divergence over 8.0 hours mean 614.79W, min 379.8W, max 1896.0W, std dev 331.84W, divergence 26.99%
2026-08-17 11:50:02.990134: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:50:02.990235: LoadML is_calculating False
2026-08-17 11:50:02.990294: Creating pool of 12 processes to match your CPU count
2026-08-17 11:50:03.062186: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 11:50:03.063262: Optimise levels pass started at 2026-08-17 11:50:03
2026-08-17 11:50:03.063341: Optimise all windows, total charge 24 export 1
2026-08-17 11:50:03.394335: >> Region optimisation pass width 960 gives best_metric 336.54p, best_cost 406.94p, best_cycle 46.31kWh, best_import 33.34kWh
2026-08-17 11:50:03.526233: >> Region optimisation pass width 480 gives best_metric 336.54p, best_cost 406.94p, best_cycle 46.31kWh, best_import 33.34kWh
2026-08-17 11:50:03.735671: >> Region optimisation pass width 240 gives best_metric 336.54p, best_cost 406.94p, best_cycle 46.31kWh, best_import 33.34kWh
2026-08-17 11:50:04.199846: >> Region optimisation pass width 120 gives best_metric 336.54p, best_cost 406.94p, best_cycle 46.31kWh, best_import 33.34kWh
2026-08-17 11:50:04.200066: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 11:50:04.200194: Optimise levels pass ended at 2026-08-17 11:50:04, duration 1.1 seconds tried 58 combinations
2026-08-17 11:50:04.200302: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 336.54p, best_keep 0.11kWh, best_cycle 46.31kWh, best_carbon 0kg, best_import 33.34kWh
2026-08-17 11:50:04.215404: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 11:50:06.563394: Tweak plan optimisation started metric 250.37p, cost 262.16p
2026-08-17 11:50:06.889542: Tweak optimisation finished metric 250.37p, cost 262.16p, metric_keep 0.11kWh, cycle 29.5kWh, carbon 0kg, import 15.24kWh, changed 8 window(s)
2026-08-17 11:50:06.912060: Swap charge optimisation started metric 250.37p, cost 262.16p, min_improvement_swap 0.1p
2026-08-17 11:50:07.740589: Swap charge optimisation finished metric 250.37p, cost 262.16p
2026-08-17 11:50:07.857087: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:50:07.857384: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:50:07.857578: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:50:07.857752: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 11:50:07.889322: Previous plan best metric is 250.98 (cost 262.87) and new plan best metric is 250.37 (cost 262.16)
2026-08-17 11:50:07.889491: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 11:50:07.889606: Plan valid is now true after recompute was False
2026-08-17 11:50:07.912810: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 592.97p, metric_keep 277.88kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 28.78kWh, PV 0.0kWh
2026-08-17 11:50:08.010427: Battery has 15.25 hours left - now at 11.66kWh
2026-08-17 11:50:08.052531: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 616.05p, metric_keep 279.83kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 29.87kWh, PV 0.0kWh
2026-08-17 11:50:08.121216: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 313.44p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.87kWh, PV 0.0kWh
2026-08-17 11:50:08.190377: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 309.51p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.78kWh, PV 0.0kWh
2026-08-17 11:50:08.190541: Saving plan best values to HA entities
2026-08-17 11:50:08.332248: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:50:08.337089: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 11:50:08.341957: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.33kWh, house 0.0kWh, export 0.0kWh, metric 309.51p, metric10 313.44p
2026-08-17 11:50:08.409267: Marginal costs baseline metric (no standing charge): 262.8744
2026-08-17 11:50:08.649877: Marginal energy costs matrix computed: min=8.0 max=24.08
2026-08-17 11:50:08.716708: Rate array import [{'start': 710, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 710, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:50:08.717476: - Your estimated bill for today is £1.64 and tomorrow is £1.70
2026-08-17 11:50:08.717514: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:50:08.717532: - The battery is currently at 73% and is in eco mode for the next 11 hours.
2026-08-17 11:50:08.717547: - For the next 48 hours there will be no solar generation.
2026-08-17 11:50:08.717561: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:50:08.717575: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 11:50:08.717588:
2026-08-17 11:50:08.768197: Plan calculation took 5.80 seconds
2026-08-17 11:50:08.768472: Inverter 0: Type SK Sunsynk
2026-08-17 11:50:08.768515: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:50:08.768711: Reserve min: 7%, battery_min: 7%
2026-08-17 11:50:08.768798: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:50:08.769109: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 686W, current battery voltage 51.2V, grid power -52W, load power 757W, PV Power 0W
2026-08-17 11:50:08.769322: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:50:08.769421: Inverter 0 scheduled charge enable is False
2026-08-17 11:50:08.769481: Inverter 0 charge windows currently []
2026-08-17 11:50:08.769512: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:50:08.769650: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:50:08.769689: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:50:08.769727: Inverter 0 scheduled discharge enable is False
2026-08-17 11:50:08.769895: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:50:08.769930: Inverter 0 discharge windows currently []
2026-08-17 11:50:08.769950: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:50:08.769973: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:50:08.770001: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:50:08.817391: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 72%, target 100%
2026-08-17 11:50:08.817532: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:50:08.817597: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:50:08.817783: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:50:08.817868: No export window planned
2026-08-17 11:50:08.817971: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:50:08.818009: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:50:08.818142: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:50:08.818299: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:50:08.818351: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:50:08.818400: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:50:08.818488: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818528: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818556: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818609: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818640: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818757: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818860: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:50:08.818960: Inverter 0 count register writes 0
2026-08-17 11:50:08.838666: Total inverter register writes now 861
2026-08-17 11:50:08.869085: Info: Completed run status Demand
2026-08-17 11:50:08.875409: Info: record_status Demand
2026-08-17 11:50:08.882198: Saved current settings to /config/predbat_config.json
2026-08-17 11:50:08.882540: Compare, best tariff: current metric 104.68p
2026-08-17 11:50:48.989088: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:50:48.989323: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:50:48.989360: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:50:48.989551: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:50:48.989595: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:50:48.989617: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:50:48.989635: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:52:49.201738: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:52:49.201956: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:52:49.201993: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:52:49.202159: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:52:49.202199: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:52:49.202220: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:52:49.202238: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:54:03.754962: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 11:54:04.648617: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:54:04.648794: Zero load period starting at 2026-08-17T10:54:00+0100 (56 minutes) for 189 minutes with base value 412.975
2026-08-17 11:54:04.649076: Processing 1345 30-minute periods for power integration
2026-08-17 11:54:04.735031: ML Component: Car charging hold False, car energy reported load False
2026-08-17 11:54:04.818759: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:54:04.898769: ML Temperature data points: 49691
2026-08-17 11:54:05.150982: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 11:54:05.188386: ML Component: Data fetch completed, load data age 58.0 days, 16966 data points
2026-08-17 11:54:05.188511: ML Component: No training needed, model age is 0.42 hours
2026-08-17 11:54:05.188586: ML Component: Generating predictions load data age 58.0 days, 16966 data points
2026-08-17 11:54:05.341836: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0306 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 11:54:05.801081: ML Component: Generated 576 predictions (total 24.93 kWh over 48h)
2026-08-17 11:54:05.837311: ML Component: Prediction cycle completed
2026-08-17 11:54:05.951805: ML Component: Saved 16966 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 11:54:33.617434: Info: HAHistory: Pruning history data started.
2026-08-17 11:54:33.619427: Info: HAHistory: Pruning history data completed.
2026-08-17 11:54:34.437450: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 11:54:34.603833: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 11:54:49.406435: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:54:49.406766: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:54:49.406826: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:54:49.407016: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:54:49.407061: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:54:49.407084: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:54:49.407113: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:55:00.487343: --------------- PredBat - update at 2026-08-17 11:55:00+01:00 with clock skew 0 minutes, minutes now 715
2026-08-17 11:55:00.488420: Saved current settings to /config/predbat_config.json
2026-08-17 11:55:00.488531: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 59.7 minutes
2026-08-17 11:55:00.488663: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 11:55:00.488759: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 11:55:00.510542: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 11:55:00.510657: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 11:55:00.510819: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 11:55:00.511325: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 11:55:00.511444: Predbat mode is set to Control charge & discharge
2026-08-17 11:55:00.686560: Found 21602 load_today datapoints going back 27 days
2026-08-17 11:55:00.686698: Using load_power data to fill gaps in load_today data
2026-08-17 11:55:01.521937: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 11:55:01.522177: Zero load period starting at 2026-08-17T10:54:00+0100 (61 minutes) for 189 minutes with base value 215.55
2026-08-17 11:55:01.522566: Processing 721 30-minute periods for power integration
2026-08-17 11:55:01.726695: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 11:55:01.726994: Car charging hold False, threshold 6.0kWh
2026-08-17 11:55:01.727053: Current data so far today: load 5.9kWh, import 7.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 11:55:01.745530: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 11:55:01.745634: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 11:55:01.746287: Standing charge is set to 46.63p
2026-08-17 11:55:01.826082: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.826344: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.826524: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.826698: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.826866: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.827059: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.827249: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.827412: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.827571: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.827728: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.827885: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.828095: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.828279: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.828438: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.828595: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.828749: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.828904: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.829057: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.829230: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 11:55:01.829289: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 11:55:01.834325: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 11:55:01.834611: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 11:55:01.878965: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 11:55:01.879080: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 11:55:01.880296: High export rate found rates in range 99p to -99p
2026-08-17 11:55:01.909312: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 11:55:01.909423: Car 0 on Octopus Intelligent, no active plan
2026-08-17 11:55:01.920419: Battery level now 11.66kWh, -1hr ago 0.0kWh, at midnight 10.49kWh, battery value change in the last hour 80.11p, change today 8.03p, rate_forward 6.87p
2026-08-17 11:55:01.920771: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 1.5kWh, net cost 37.13p, import 37.13p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 11:55:01.970921: Today's energy total net 7.6kWh, import 7.6kWh, export 0.0kWh, cost 140.2p, import 93.57p, export 0.0p, carbon 0.0kg
2026-08-17 11:55:01.971051: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 11:55:02.054820: Using weighted-bucket historical load forecast over 14 days
2026-08-17 11:55:02.079894: Today's load divergence 98.38%, in-day adjustment 83.31%, damping 0.95x, yesterday 68.37% today 98.46% blend 50.35%
2026-08-17 11:55:02.080024: Today's predicted so far 7.38kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 7.38kWh forecast extra.
2026-08-17 11:55:02.080056: Today's actual load so far 7.13kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 11:55:02.111410: Inverter 0: Type SK Sunsynk
2026-08-17 11:55:02.111487: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 11:55:02.111692: Reserve min: 7%, battery_min: 7%
2026-08-17 11:55:02.111763: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 11:55:02.112043: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 696W, current battery voltage 51.2V, grid power -55W, load power 753W, PV Power 0W
2026-08-17 11:55:02.112212: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:55:02.112296: Inverter 0 scheduled charge enable is False
2026-08-17 11:55:02.112324: Inverter 0 charge windows currently []
2026-08-17 11:55:02.112349: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 11:55:02.112448: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:55:02.112482: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:55:02.112516: Inverter 0 scheduled discharge enable is False
2026-08-17 11:55:02.112632: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:55:02.112668: Inverter 0 discharge windows currently []
2026-08-17 11:55:02.112690: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:55:02.112712: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:55:02.112730: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:55:02.170341: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 11:55:02.170438: Plan was last updated on 2026-08-17 11:50:00+01:00 and is now 5.0 minutes old
2026-08-17 11:55:02.170638: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 11:55:02.170678: Best export window [ ]
2026-08-17 11:55:02.171482: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 11:55:02.174646: Load divergence over 8.0 hours mean 610.24W, min 384.0W, max 2007.0W, std dev 334.62W, divergence 27.42%
2026-08-17 11:55:02.193133: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 11:55:02.193234: LoadML is_calculating False
2026-08-17 11:55:02.193295: Creating pool of 12 processes to match your CPU count
2026-08-17 11:55:02.306414: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 594.46p, metric_keep 278.44kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 28.82kWh, PV 0.0kWh
2026-08-17 11:55:02.420339: Battery has 15.08 hours left - now at 11.52kWh
2026-08-17 11:55:02.463126: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 617.61p, metric_keep 280.36kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 29.91kWh, PV 0.0kWh
2026-08-17 11:55:02.536428: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 317.59p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.91kWh, PV 0.0kWh
2026-08-17 11:55:02.612755: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 314.14p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.82kWh, PV 0.0kWh
2026-08-17 11:55:02.612849: Saving plan best values to HA entities
2026-08-17 11:55:02.776970: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 11:55:02.782358: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 11:55:02.787580: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.91kWh, house 0kWh, export 0.0kWh, metric 314.14p, metric10 317.59p
2026-08-17 11:55:02.858584: Marginal costs baseline metric (no standing charge): 267.5016
2026-08-17 11:55:03.143981: Marginal energy costs matrix computed: min=8.0 max=24.29
2026-08-17 11:55:03.207568: Rate array import [{'start': 715, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 715, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 11:55:03.208284: - Your estimated bill for today is £1.64 and tomorrow is £1.71
2026-08-17 11:55:03.208327: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 11:55:03.208347: - The battery is currently at 72% and is in eco mode for the next 11 hours.
2026-08-17 11:55:03.208365: - For the next 48 hours there will be no solar generation.
2026-08-17 11:55:03.208391: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 11:55:03.208419: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 11:55:03.208448:
2026-08-17 11:55:03.282301: Plan calculation took 1.11 seconds
2026-08-17 11:55:03.286975: No high rate period found
2026-08-17 11:55:03.358974: Import threshold used for optimisation was 8.0p
2026-08-17 11:55:03.405013: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 11:55:03.412365: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 72%, target 100%
2026-08-17 11:55:03.412505: Inverter 0 disabled charge window while waiting for schedule (now 08-17 11:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 11:55:03.412611: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:55:03.412927: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:55:03.413030: No export window planned
2026-08-17 11:55:03.413169: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 11:55:03.413206: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 11:55:03.413339: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 11:55:03.413516: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 11:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 11:55:03.413598: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 11:55:03.413661: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 11:55:03.413746: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.413787: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.413818: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.413849: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.413874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.413904: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.413929: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.413994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.414023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.414056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.414097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.414165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.414194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.414225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 11:55:03.414246: Inverter 0 count register writes 0
2026-08-17 11:55:03.429037: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 11:55:03.434083: Total inverter register writes now 861
2026-08-17 11:55:03.463219: Info: Completed run status Demand
2026-08-17 11:55:03.469800: Info: record_status Demand
2026-08-17 11:55:03.476081: Saved current settings to /config/predbat_config.json
2026-08-17 11:55:03.476395: Compare, best tariff: current metric 104.68p
2026-08-17 11:55:34.571302: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:55:34.571573: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:55:34.571615: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:55:34.571766: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:55:34.571809: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:55:34.571831: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:55:34.571849: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:57:48.804693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:57:48.804949: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:57:48.805010: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:57:48.805179: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:57:48.805223: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:57:48.805269: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:57:48.805289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 11:59:49.020409: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 11:59:49.020752: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 11:59:49.020814: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 11:59:49.020990: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 11:59:49.021034: Note: Inverter does not support discharge freeze - disabled
2026-08-17 11:59:49.021057: Note: Inverter does not support charge freeze - disabled
2026-08-17 11:59:49.021075: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:00:00.120215: --------------- PredBat - update at 2026-08-17 12:00:00+01:00 with clock skew 0 minutes, minutes now 720
2026-08-17 12:00:00.121051: Saved current settings to /config/predbat_config.json
2026-08-17 12:00:00.121198: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 64.6 minutes
2026-08-17 12:00:00.121328: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:00:00.121454: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:00:00.141143: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:00:00.141289: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:00:00.141469: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:00:00.142029: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:00:00.142151: Predbat mode is set to Control charge & discharge
2026-08-17 12:00:00.325861: Found 21602 load_today datapoints going back 27 days
2026-08-17 12:00:00.326016: Using load_power data to fill gaps in load_today data
2026-08-17 12:00:01.088486: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:00:01.088664: Zero load period starting at 2026-08-17T10:54:00+0100 (66 minutes) for 189 minutes with base value 215.525
2026-08-17 12:00:01.088955: Processing 721 30-minute periods for power integration
2026-08-17 12:00:01.252778: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:00:01.252899: Car charging hold False, threshold 6.0kWh
2026-08-17 12:00:01.252938: Current data so far today: load 6.03kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:00:01.270014: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:00:01.270111: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:00:01.270765: Standing charge is set to 46.63p
2026-08-17 12:00:01.379470: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.379682: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.379834: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.380011: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.380178: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.380323: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.380484: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.380620: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.380754: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.380890: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381022: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381158: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381292: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381440: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381573: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381702: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381835: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.381962: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.382089: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:00:01.382136: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:00:01.386313: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:00:01.386704: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 12:00:01.422634: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:00:01.422745: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 12:00:01.423845: High export rate found rates in range 99p to -99p
2026-08-17 12:00:01.447609: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 12:00:01.447710: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:00:01.458003: Battery level now 11.52kWh, -1hr ago 12.0kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today 7.09p, rate_forward 6.87p
2026-08-17 12:00:01.458314: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.26p, import 3.26p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:00:01.536950: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:00:01.537146: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:00:01.621155: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:00:01.647497: Today's load divergence 98.27%, in-day adjustment 83.36%, damping 0.95x, yesterday 68.37% today 98.35% blend 50.0%
2026-08-17 12:00:01.647608: Today's predicted so far 7.54kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 7.54kWh forecast extra.
2026-08-17 12:00:01.647658: Today's actual load so far 7.27kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 12:00:01.681432: Inverter 0: Type SK Sunsynk
2026-08-17 12:00:01.681524: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:00:01.681737: Reserve min: 7%, battery_min: 7%
2026-08-17 12:00:01.681827: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:00:01.682077: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 698W, current battery voltage 51.2V, grid power -52W, load power 754W, PV Power 0W
2026-08-17 12:00:01.682208: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:00:01.682278: Inverter 0 scheduled charge enable is False
2026-08-17 12:00:01.682302: Inverter 0 charge windows currently []
2026-08-17 12:00:01.682322: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:00:01.682426: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:00:01.682458: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:00:01.682488: Inverter 0 scheduled discharge enable is False
2026-08-17 12:00:01.682587: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:00:01.682617: Inverter 0 discharge windows currently []
2026-08-17 12:00:01.682635: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:00:01.682651: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:00:01.682668: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:00:01.745155: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:00:01.745245: Plan was last updated on 2026-08-17 11:50:00+01:00 and is now 10.0 minutes old
2026-08-17 12:00:01.745441: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:00:01.745476: Best export window [ ]
2026-08-17 12:00:01.746342: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:00:01.749330: Load divergence over 8.0 hours mean 606.04W, min 359.4W, max 1983.0W, std dev 327.89W, divergence 27.05%
2026-08-17 12:00:01.765048: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:00:01.765149: LoadML is_calculating False
2026-08-17 12:00:01.765201: Creating pool of 12 processes to match your CPU count
2026-08-17 12:00:01.868465: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 597.94p, metric_keep 278.52kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 28.98kWh, PV 0.0kWh
2026-08-17 12:00:01.997956: Battery has 15.08 hours left - now at 11.52kWh
2026-08-17 12:00:02.062531: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.07p, metric_keep 280.42kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.07kWh, PV 0.0kWh
2026-08-17 12:00:02.161376: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 324.03p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.07kWh, PV 0.0kWh
2026-08-17 12:00:02.258181: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 321.19p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.98kWh, PV 0.0kWh
2026-08-17 12:00:02.258255: Saving plan best values to HA entities
2026-08-17 12:00:02.468509: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:00:02.474292: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:00:02.481465: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.37kWh, house 0.0kWh, export 0.0kWh, metric 321.19p, metric10 324.03p
2026-08-17 12:00:02.562006: Marginal costs baseline metric (no standing charge): 274.5562
2026-08-17 12:00:02.800619: Marginal energy costs matrix computed: min=8.0 max=24.08
2026-08-17 12:00:02.872661: Rate array import [{'start': 720, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 720, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:00:02.873268: - Your estimated bill for today is £1.67 and tomorrow is £1.70
2026-08-17 12:00:02.873304: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:00:02.873322: - The battery is currently at 72% and is in eco mode for the next 11 hours.
2026-08-17 12:00:02.873337: - For the next 48 hours there will be no solar generation.
2026-08-17 12:00:02.873351: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:00:02.873366: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:00:02.873383:
2026-08-17 12:00:02.927570: Plan calculation took 1.18 seconds
2026-08-17 12:00:02.930601: No high rate period found
2026-08-17 12:00:02.972371: Import threshold used for optimisation was 8.0p
2026-08-17 12:00:03.016530: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 12:00:03.022445: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 72%, target 100%
2026-08-17 12:00:03.022555: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:00:03.022634: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:00:03.022837: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:00:03.022912: No export window planned
2026-08-17 12:00:03.023014: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:00:03.023043: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:00:03.023170: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:00:03.023319: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:00:03.023368: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:00:03.023434: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:00:03.023507: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023540: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023565: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023605: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:03.023889: Inverter 0 count register writes 0
2026-08-17 12:00:03.038353: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 12:00:03.038546: Recompute is saving previous plan...
2026-08-17 12:00:03.039769: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 12:00:03.039823: Best export window [ ]
2026-08-17 12:00:03.040615: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:00:03.043161: Load divergence over 8.0 hours mean 606.04W, min 359.4W, max 1983.0W, std dev 327.89W, divergence 27.05%
2026-08-17 12:00:03.060736: Calculating data from yesterday for savings calculation
2026-08-17 12:00:03.072923: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 12:00:03.117200: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 12:00:03.132309: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 12:00:03.151134: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 12:00:03.184247: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 12:00:03.259956: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 12:00:03.260085: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 12:00:03.271941: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:00:03.272042: LoadML is_calculating False
2026-08-17 12:00:03.272096: Creating pool of 12 processes to match your CPU count
2026-08-17 12:00:03.347513: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 12:00:03.348533: Optimise levels pass started at 2026-08-17 12:00:03
2026-08-17 12:00:03.348600: Optimise all windows, total charge 24 export 1
2026-08-17 12:00:03.969023: >> Region optimisation pass width 960 gives best_metric 341.09p, best_cost 410.43p, best_cycle 46.34kWh, best_import 33.36kWh
2026-08-17 12:00:04.473257: >> Region optimisation pass width 480 gives best_metric 335.08p, best_cost 342.15p, best_cycle 44.06kWh, best_import 24.82kWh
2026-08-17 12:00:05.263475: >> Region optimisation pass width 240 gives best_metric 330.39p, best_cost 342.31p, best_cycle 44.34kWh, best_import 24.84kWh
2026-08-17 12:00:05.877194: >> Region optimisation pass width 120 gives best_metric 330.39p, best_cost 342.31p, best_cycle 44.34kWh, best_import 24.84kWh
2026-08-17 12:00:05.877616: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 12:00:05.877695: Optimise levels pass ended at 2026-08-17 12:00:05, duration 2.5 seconds tried 96 combinations
2026-08-17 12:00:05.877753: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 330.39p, best_keep 0kWh, best_cycle 44.34kWh, best_carbon 0kg, best_import 24.84kWh
2026-08-17 12:00:05.898220: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 12:00:09.093642: Tweak plan optimisation started metric 253.8p, cost 265.65p
2026-08-17 12:00:09.496726: Tweak optimisation finished metric 253.8p, cost 265.65p, metric_keep 0.11kWh, cycle 29.37kWh, carbon 0kg, import 15.26kWh, changed 8 window(s)
2026-08-17 12:00:09.520272: Swap charge optimisation started metric 253.8p, cost 265.65p, min_improvement_swap 0.1p
2026-08-17 12:00:10.119472: Swap charge optimisation finished metric 253.8p, cost 265.65p
2026-08-17 12:00:10.230336: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 44%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 44%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 44%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 44%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 44%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 44%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 53%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 66%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:00:10.230808: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 03:30:00 @ 8.0p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 53%, 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:00:10.231173: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 03:30:00 @ 8.0p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 53%, 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:00:10.231366: Filtered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 03:30:00 @ 8.0p 44%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 53%, 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:00:10.263010: Previous plan best metric is 254.46 (cost 266.37) and new plan best metric is 253.8 (cost 265.65)
2026-08-17 12:00:10.263427: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 12:00:10.263669: Plan valid is now true after recompute was False
2026-08-17 12:00:10.287889: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 596.43p, metric_keep 277.93kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 28.79kWh, PV 0.0kWh
2026-08-17 12:00:10.401759: Battery has 15.08 hours left - now at 11.52kWh
2026-08-17 12:00:10.458923: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 619.48p, metric_keep 279.83kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 29.87kWh, PV 0.0kWh
2026-08-17 12:00:10.549791: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 316.88p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.87kWh, PV 0.0kWh
2026-08-17 12:00:10.745591: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 313.01p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.79kWh, PV 0.0kWh
2026-08-17 12:00:10.745700: Saving plan best values to HA entities
2026-08-17 12:00:10.956150: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:00:10.962163: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:00:10.968735: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.35kWh, house 0.0kWh, export 0.0kWh, metric 313.01p, metric10 316.88p
2026-08-17 12:00:11.045145: Marginal costs baseline metric (no standing charge): 266.3735
2026-08-17 12:00:11.294499: Marginal energy costs matrix computed: min=8.0 max=24.08
2026-08-17 12:00:11.367423: Rate array import [{'start': 720, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 720, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:00:11.368138: - Your estimated bill for today is £1.67 and tomorrow is £1.70
2026-08-17 12:00:11.368189: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:00:11.368213: - The battery is currently at 72% and is in eco mode for the next 11 hours.
2026-08-17 12:00:11.368232: - For the next 48 hours there will be no solar generation.
2026-08-17 12:00:11.368250: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:00:11.368267: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:00:11.368301:
2026-08-17 12:00:11.426297: Plan calculation took 8.39 seconds
2026-08-17 12:00:11.426628: Inverter 0: Type SK Sunsynk
2026-08-17 12:00:11.426679: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:00:11.426878: Reserve min: 7%, battery_min: 7%
2026-08-17 12:00:11.426955: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:00:11.427272: Inverter 0 SoC: 11.5kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 702W, current battery voltage 51.2V, grid power -57W, load power 763W, PV Power 0W
2026-08-17 12:00:11.427546: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:00:11.427649: Inverter 0 scheduled charge enable is False
2026-08-17 12:00:11.427685: Inverter 0 charge windows currently []
2026-08-17 12:00:11.427716: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:00:11.427835: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:00:11.427874: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:00:11.427976: Inverter 0 scheduled discharge enable is False
2026-08-17 12:00:11.428204: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:00:11.428250: Inverter 0 discharge windows currently []
2026-08-17 12:00:11.428296: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:00:11.428339: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:00:11.428363: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:00:11.488315: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 72%, target 100%
2026-08-17 12:00:11.488477: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:00:11.488547: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:00:11.488727: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:00:11.488829: No export window planned
2026-08-17 12:00:11.488945: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:00:11.488980: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:00:11.489113: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:00:11.489269: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:00:11.489320: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:00:11.489394: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:00:11.489480: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489520: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489552: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489602: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489632: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489657: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:00:11.489916: Inverter 0 count register writes 0
2026-08-17 12:00:11.510040: Total inverter register writes now 861
2026-08-17 12:00:11.541781: Info: Completed run status Demand
2026-08-17 12:00:11.548578: Info: record_status Demand
2026-08-17 12:00:11.556341: Saved current settings to /config/predbat_config.json
2026-08-17 12:00:11.556631: Compare, best tariff: current metric 104.68p
2026-08-17 12:00:48.668616: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:00:48.668813: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:00:48.668841: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:00:48.668988: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:00:48.669020: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:00:48.669038: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:00:48.669053: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:02:48.865703: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:02:48.865913: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:02:48.865942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:02:48.866052: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:02:48.866084: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:02:48.866102: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:02:48.866117: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:04:49.069744: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:04:49.070003: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:04:49.070044: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:04:49.070175: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:04:49.070212: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:04:49.070251: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:04:49.070277: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:05:00.154643: --------------- PredBat - update at 2026-08-17 12:05:00+01:00 with clock skew 0 minutes, minutes now 725
2026-08-17 12:05:00.155623: Saved current settings to /config/predbat_config.json
2026-08-17 12:05:00.155800: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 69.6 minutes
2026-08-17 12:05:00.155965: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:05:00.156089: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:05:00.179284: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:05:00.179453: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:05:00.179730: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:05:00.180601: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:05:00.180817: Predbat mode is set to Control charge & discharge
2026-08-17 12:05:00.382330: Found 21602 load_today datapoints going back 27 days
2026-08-17 12:05:00.382838: Using load_power data to fill gaps in load_today data
2026-08-17 12:05:01.072541: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:05:01.072704: Zero load period starting at 2026-08-17T10:54:00+0100 (71 minutes) for 189 minutes with base value 215.5
2026-08-17 12:05:01.073001: Processing 721 30-minute periods for power integration
2026-08-17 12:05:01.248092: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:05:01.248197: Car charging hold False, threshold 6.0kWh
2026-08-17 12:05:01.248233: Current data so far today: load 6.05kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:05:01.262690: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:05:01.262816: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:05:01.263431: Standing charge is set to 46.63p
2026-08-17 12:05:01.374234: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.374491: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.374703: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.374915: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.375181: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.375384: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.375565: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.375737: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.375962: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.376137: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.376302: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.376469: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.376888: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.377065: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.377276: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.377449: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.377612: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.377793: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.377975: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:05:01.378037: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:05:01.384746: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:05:01.385038: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 12:05:01.435580: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:05:01.435684: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 12:05:01.436762: High export rate found rates in range 99p to -99p
2026-08-17 12:05:01.460628: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 12:05:01.460719: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:05:01.472668: Battery level now 11.52kWh, -1hr ago 12.0kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today 7.09p, rate_forward 6.87p
2026-08-17 12:05:01.473138: Last hour: net energy 0.09kWh, import 0.09kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 2.96p, import 2.96p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:05:01.528744: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:05:01.528901: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:05:01.615965: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:05:01.644145: Today's load divergence 97.73%, in-day adjustment 83.21%, damping 0.95x, yesterday 68.37% today 97.84% blend 49.65%
2026-08-17 12:05:01.644244: Today's predicted so far 7.67kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 7.67kWh forecast extra.
2026-08-17 12:05:01.644277: Today's actual load so far 7.31kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 12:05:01.677717: Inverter 0: Type SK Sunsynk
2026-08-17 12:05:01.677809: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:05:01.678009: Reserve min: 7%, battery_min: 7%
2026-08-17 12:05:01.678083: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:05:01.678327: Inverter 0 SoC: 11.5kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 691W, current battery voltage 51.2V, grid power -53W, load power 746W, PV Power 0W
2026-08-17 12:05:01.678472: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:05:01.678557: Inverter 0 scheduled charge enable is False
2026-08-17 12:05:01.678591: Inverter 0 charge windows currently []
2026-08-17 12:05:01.678618: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:05:01.678721: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:05:01.678757: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:05:01.678816: Inverter 0 scheduled discharge enable is False
2026-08-17 12:05:01.678982: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:05:01.679025: Inverter 0 discharge windows currently []
2026-08-17 12:05:01.679048: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:05:01.679070: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:05:01.679088: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:05:01.734539: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:05:01.734639: Plan was last updated on 2026-08-17 12:00:00+01:00 and is now 5.0 minutes old
2026-08-17 12:05:01.734860: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:05:01.734902: Best export window [ ]
2026-08-17 12:05:01.735641: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:05:01.738866: Load divergence over 8.0 hours mean 601.96W, min 334.8W, max 1926.0W, std dev 323.73W, divergence 26.89%
2026-08-17 12:05:01.757362: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:05:01.757459: LoadML is_calculating False
2026-08-17 12:05:01.757508: Creating pool of 12 processes to match your CPU count
2026-08-17 12:05:01.865944: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 596.65p, metric_keep 277.95kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 28.84kWh, PV 0.0kWh
2026-08-17 12:05:01.984684: Battery has 15.08 hours left - now at 11.5kWh
2026-08-17 12:05:02.029422: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 619.67p, metric_keep 279.85kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 29.92kWh, PV 0.0kWh
2026-08-17 12:05:02.106561: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 319.92p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.92kWh, PV 0.0kWh
2026-08-17 12:05:02.209662: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 316.69p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.84kWh, PV 0.0kWh
2026-08-17 12:05:02.210636: Saving plan best values to HA entities
2026-08-17 12:05:02.409519: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:05:02.415053: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:05:02.420526: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.81kWh, house 0.0kWh, export 0.0kWh, metric 316.69p, metric10 319.92p
2026-08-17 12:05:02.496198: Marginal costs baseline metric (no standing charge): 270.0586
2026-08-17 12:05:02.740690: Marginal energy costs matrix computed: min=8.0 max=23.86
2026-08-17 12:05:02.812190: Rate array import [{'start': 725, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 725, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:05:02.812959: - Your estimated bill for today is £1.67 and tomorrow is £1.70
2026-08-17 12:05:02.813003: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:05:02.813026: - The battery is currently at 72% and is in eco mode for the next 11 hours.
2026-08-17 12:05:02.813045: - For the next 48 hours there will be no solar generation.
2026-08-17 12:05:02.813063: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:05:02.813080: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:05:02.813102:
2026-08-17 12:05:02.872206: Plan calculation took 1.14 seconds
2026-08-17 12:05:02.875986: No high rate period found
2026-08-17 12:05:02.921472: Import threshold used for optimisation was 8.0p
2026-08-17 12:05:02.973494: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 12:05:02.980259: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 72%, target 100%
2026-08-17 12:05:02.980394: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:05:02.980482: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:05:02.980759: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:05:02.980896: No export window planned
2026-08-17 12:05:02.981069: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:05:02.981111: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:05:02.981275: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:05:02.981456: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:05:02.981516: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:05:02.981581: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:05:02.981665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981733: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981759: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981809: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981838: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981863: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981930: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.981990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.982021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.982046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.982070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.982101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:05:02.982127: Inverter 0 count register writes 0
2026-08-17 12:05:02.998934: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 12:05:03.005045: Total inverter register writes now 861
2026-08-17 12:05:03.037813: Info: Completed run status Demand
2026-08-17 12:05:03.043395: Info: record_status Demand
2026-08-17 12:05:03.049974: Saved current settings to /config/predbat_config.json
2026-08-17 12:05:03.050288: Compare, best tariff: current metric 104.68p
2026-08-17 12:05:34.147336: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:05:34.147561: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:05:34.147608: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:05:34.147776: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:05:34.147819: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:05:34.147841: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:05:34.147884: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:07:34.354091: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:07:34.354397: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:07:34.354481: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:07:34.354691: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:07:34.354765: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:07:34.354797: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:07:34.354830: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:09:34.568418: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:09:34.568757: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:09:34.568826: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:09:34.569011: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:09:34.569064: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:09:34.569089: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:09:34.569112: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:10:00.668534: --------------- PredBat - update at 2026-08-17 12:10:00+01:00 with clock skew 0 minutes, minutes now 730
2026-08-17 12:10:00.669290: Saved current settings to /config/predbat_config.json
2026-08-17 12:10:00.669415: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 74.7 minutes
2026-08-17 12:10:00.669503: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:10:00.669581: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:10:00.688037: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:10:00.688215: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:10:00.688403: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:10:00.688919: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:10:00.689036: Predbat mode is set to Control charge & discharge
2026-08-17 12:10:00.862686: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:10:00.862845: Using load_power data to fill gaps in load_today data
2026-08-17 12:10:01.621523: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:10:01.621698: Zero load period starting at 2026-08-17T10:54:00+0100 (76 minutes) for 189 minutes with base value 215.475
2026-08-17 12:10:01.622058: Processing 721 30-minute periods for power integration
2026-08-17 12:10:01.812815: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:10:01.812935: Car charging hold False, threshold 6.0kWh
2026-08-17 12:10:01.812978: Current data so far today: load 6.3kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:10:01.831392: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:10:01.831494: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:10:01.832271: Standing charge is set to 46.63p
2026-08-17 12:10:01.905912: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.906171: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.906381: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.906574: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.906753: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.906930: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.907106: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.907281: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.907583: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.907799: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.908013: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.908189: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.908374: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.908543: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.908705: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.908864: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.909018: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.909177: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.909338: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:10:01.909463: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:10:01.913829: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:10:01.914155: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 12:10:01.949196: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:10:01.949293: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 12:10:01.950576: High export rate found rates in range 99p to -99p
2026-08-17 12:10:01.974436: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 12:10:01.974549: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:10:01.984715: Battery level now 11.5kWh, -1hr ago 11.84kWh, at midnight 10.49kWh, battery value change in the last hour -2.31p, change today 6.98p, rate_forward 6.87p
2026-08-17 12:10:01.985018: Last hour: net energy 0.08kWh, import 0.08kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 2.66p, import 2.66p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:10:02.030769: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:10:02.030881: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:10:02.106069: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:10:02.126421: Today's load divergence 98.88%, in-day adjustment 83.86%, damping 0.95x, yesterday 68.37% today 98.93% blend 49.31%
2026-08-17 12:10:02.126495: Today's predicted so far 7.69kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 7.69kWh forecast extra.
2026-08-17 12:10:02.126520: Today's actual load so far 7.51kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 12:10:02.160814: Inverter 0: Type SK Sunsynk
2026-08-17 12:10:02.160908: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:10:02.161128: Reserve min: 7%, battery_min: 7%
2026-08-17 12:10:02.161220: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:10:02.161545: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 714W, current battery voltage 51.2V, grid power -55W, load power 772W, PV Power 0W
2026-08-17 12:10:02.161711: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:10:02.161802: Inverter 0 scheduled charge enable is False
2026-08-17 12:10:02.161838: Inverter 0 charge windows currently []
2026-08-17 12:10:02.161867: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:10:02.161979: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:10:02.162016: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:10:02.162054: Inverter 0 scheduled discharge enable is False
2026-08-17 12:10:02.162190: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:10:02.162230: Inverter 0 discharge windows currently []
2026-08-17 12:10:02.162256: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:10:02.162283: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:10:02.162304: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:10:02.211129: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:10:02.211216: Plan was last updated on 2026-08-17 12:00:00+01:00 and is now 10.0 minutes old
2026-08-17 12:10:02.211408: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:10:02.211444: Best export window [ ]
2026-08-17 12:10:02.212104: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:10:02.214681: Load divergence over 8.0 hours mean 599.16W, min 336.6W, max 1707.6W, std dev 316.59W, divergence 26.42%
2026-08-17 12:10:02.231732: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:10:02.231838: LoadML is_calculating False
2026-08-17 12:10:02.231887: Creating pool of 12 processes to match your CPU count
2026-08-17 12:10:02.336601: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 598.46p, metric_keep 278.86kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.18kWh, PV 0.0kWh
2026-08-17 12:10:02.443771: Battery has 14.75 hours left - now at 11.36kWh
2026-08-17 12:10:02.480343: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.55p, metric_keep 280.7kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.27kWh, PV 0.0kWh
2026-08-17 12:10:02.548715: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 324.71p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.27kWh, PV 0.0kWh
2026-08-17 12:10:02.612439: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 321.85p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.18kWh, PV 0.0kWh
2026-08-17 12:10:02.612522: Saving plan best values to HA entities
2026-08-17 12:10:02.748958: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:10:02.754089: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:10:02.759440: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.45kWh, house 0.0kWh, export 0.0kWh, metric 321.85p, metric10 324.71p
2026-08-17 12:10:02.842517: Marginal costs baseline metric (no standing charge): 275.2142
2026-08-17 12:10:03.105970: Marginal energy costs matrix computed: min=8.0 max=24.28
2026-08-17 12:10:03.189679: Rate array import [{'start': 730, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 730, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:10:03.190450: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:10:03.190496: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:10:03.190525: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-17 12:10:03.190560: - For the next 48 hours there will be no solar generation.
2026-08-17 12:10:03.190605: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:10:03.190629: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:10:03.190653:
2026-08-17 12:10:03.240325: Plan calculation took 1.03 seconds
2026-08-17 12:10:03.243836: No high rate period found
2026-08-17 12:10:03.286220: Import threshold used for optimisation was 8.0p
2026-08-17 12:10:03.327751: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 12:10:03.332748: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-17 12:10:03.332889: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:10:03.332991: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:10:03.333241: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:10:03.333345: No export window planned
2026-08-17 12:10:03.333504: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:10:03.333551: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:10:03.333714: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:10:03.333912: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:10:03.333979: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:10:03.334055: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:10:03.334152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334247: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334272: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334639: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:03.334743: Inverter 0 count register writes 0
2026-08-17 12:10:03.347513: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 12:10:03.347645: Recompute is saving previous plan...
2026-08-17 12:10:03.348493: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 12:10:03.348556: Best export window [ ]
2026-08-17 12:10:03.349238: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:10:03.351802: Load divergence over 8.0 hours mean 599.16W, min 336.6W, max 1707.6W, std dev 316.59W, divergence 26.42%
2026-08-17 12:10:03.366600: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:10:03.366702: LoadML is_calculating False
2026-08-17 12:10:03.366765: Creating pool of 12 processes to match your CPU count
2026-08-17 12:10:03.433452: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 12:10:03.434142: Optimise levels pass started at 2026-08-17 12:10:03
2026-08-17 12:10:03.434186: Optimise all windows, total charge 24 export 1
2026-08-17 12:10:03.735220: >> Region optimisation pass width 960 gives best_metric 342.87p, best_cost 410.98p, best_cycle 46.47kWh, best_import 33.43kWh
2026-08-17 12:10:03.861795: >> Region optimisation pass width 480 gives best_metric 342.87p, best_cost 410.98p, best_cycle 46.47kWh, best_import 33.43kWh
2026-08-17 12:10:04.492718: >> Region optimisation pass width 240 gives best_metric 332.62p, best_cost 346.92p, best_cycle 44.4kWh, best_import 25.42kWh
2026-08-17 12:10:05.010054: >> Region optimisation pass width 120 gives best_metric 332.62p, best_cost 346.92p, best_cycle 44.4kWh, best_import 25.42kWh
2026-08-17 12:10:05.010220: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 12:10:05.010277: Optimise levels pass ended at 2026-08-17 12:10:05, duration 1.6 seconds tried 81 combinations
2026-08-17 12:10:05.010337: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 332.62p, best_keep 0.13kWh, best_cycle 44.4kWh, best_carbon 0kg, best_import 25.42kWh
2026-08-17 12:10:05.027113: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 12:10:07.359859: Tweak plan optimisation started metric 254.43p, cost 266.27p
2026-08-17 12:10:07.673230: Tweak optimisation finished metric 254.43p, cost 266.27p, metric_keep 0.1kWh, cycle 29.34kWh, carbon 0kg, import 15.34kWh, changed 8 window(s)
2026-08-17 12:10:07.692756: Swap charge optimisation started metric 254.43p, cost 266.27p, min_improvement_swap 0.1p
2026-08-17 12:10:08.461062: Swap charge optimisation finished metric 254.43p, cost 266.27p
2026-08-17 12:10:08.599535: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:10:08.600943: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:10:08.601198: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:10:08.601395: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:10:08.639367: Previous plan best metric is 254.98 (cost 266.93) and new plan best metric is 254.43 (cost 266.27)
2026-08-17 12:10:08.639577: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 12:10:08.639713: Plan valid is now true after recompute was False
2026-08-17 12:10:08.669923: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 596.84p, metric_keep 278.27kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 28.98kWh, PV 0.0kWh
2026-08-17 12:10:08.769417: Battery has 14.75 hours left - now at 11.36kWh
2026-08-17 12:10:08.806310: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 619.85p, metric_keep 280.11kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.06kWh, PV 0.0kWh
2026-08-17 12:10:08.872389: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 317.46p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.06kWh, PV 0.0kWh
2026-08-17 12:10:08.947842: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 313.56p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.98kWh, PV 0.0kWh
2026-08-17 12:10:08.947944: Saving plan best values to HA entities
2026-08-17 12:10:09.075439: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:10:09.080204: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:10:09.085100: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.42kWh, house 0.0kWh, export 0.0kWh, metric 313.56p, metric10 317.46p
2026-08-17 12:10:09.144883: Marginal costs baseline metric (no standing charge): 266.9299
2026-08-17 12:10:09.372857: Marginal energy costs matrix computed: min=8.0 max=24.28
2026-08-17 12:10:09.430137: Rate array import [{'start': 730, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 730, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:10:09.430741: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:10:09.430777: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:10:09.430811: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-17 12:10:09.430828: - For the next 48 hours there will be no solar generation.
2026-08-17 12:10:09.430843: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:10:09.430856: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:10:09.430870:
2026-08-17 12:10:09.479575: Plan calculation took 6.13 seconds
2026-08-17 12:10:09.479892: Inverter 0: Type SK Sunsynk
2026-08-17 12:10:09.479993: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:10:09.480238: Reserve min: 7%, battery_min: 7%
2026-08-17 12:10:09.480352: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:10:09.480752: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 714W, current battery voltage 51.2V, grid power -55W, load power 772W, PV Power 0W
2026-08-17 12:10:09.480983: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:10:09.481081: Inverter 0 scheduled charge enable is False
2026-08-17 12:10:09.481117: Inverter 0 charge windows currently []
2026-08-17 12:10:09.481147: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:10:09.481294: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:10:09.481342: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:10:09.481397: Inverter 0 scheduled discharge enable is False
2026-08-17 12:10:09.481541: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:10:09.481578: Inverter 0 discharge windows currently []
2026-08-17 12:10:09.481601: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:10:09.481620: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:10:09.481637: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:10:09.531955: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-17 12:10:09.532154: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:10:09.532263: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:10:09.532557: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:10:09.532664: No export window planned
2026-08-17 12:10:09.532830: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:10:09.532873: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:10:09.533071: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:10:09.533290: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:10:09.533358: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:10:09.533460: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:10:09.533593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.533658: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.533705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.533789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.533837: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.533874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.533926: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534159: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:10:09.534354: Inverter 0 count register writes 0
2026-08-17 12:10:09.553211: Total inverter register writes now 861
2026-08-17 12:10:09.582664: Info: Completed run status Demand
2026-08-17 12:10:09.588498: Info: record_status Demand
2026-08-17 12:10:09.595087: Saved current settings to /config/predbat_config.json
2026-08-17 12:10:09.595436: Compare, best tariff: current metric 104.68p
2026-08-17 12:10:48.706423: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:10:48.706688: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:10:48.706749: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:10:48.706948: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:10:48.707013: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:10:48.707034: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:10:48.707052: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:12:48.915796: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:12:48.916326: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:12:48.916384: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:12:48.916582: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:12:48.916630: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:12:48.916653: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:12:48.916672: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:14:49.126334: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:14:49.126562: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:14:49.126596: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:14:49.126761: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:14:49.126796: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:14:49.126835: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:14:49.126876: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:15:00.208078: --------------- PredBat - update at 2026-08-17 12:15:00+01:00 with clock skew 0 minutes, minutes now 735
2026-08-17 12:15:00.208817: Saved current settings to /config/predbat_config.json
2026-08-17 12:15:00.208936: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 79.6 minutes
2026-08-17 12:15:00.209030: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:15:00.209109: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:15:00.226380: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:15:00.226483: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:15:00.226617: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:15:00.227012: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:15:00.227109: Predbat mode is set to Control charge & discharge
2026-08-17 12:15:00.389858: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:15:00.389977: Using load_power data to fill gaps in load_today data
2026-08-17 12:15:01.078704: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:15:01.078852: Zero load period starting at 2026-08-17T10:54:00+0100 (81 minutes) for 189 minutes with base value 215.45
2026-08-17 12:15:01.079159: Processing 721 30-minute periods for power integration
2026-08-17 12:15:01.228081: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:15:01.228212: Car charging hold False, threshold 6.0kWh
2026-08-17 12:15:01.228257: Current data so far today: load 6.4kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:15:01.242979: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:15:01.243064: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:15:01.243653: Standing charge is set to 46.63p
2026-08-17 12:15:01.334364: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.334630: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.334841: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.335060: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.335293: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.335575: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.335795: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.336018: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.336234: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.336396: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.336553: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.336711: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.336899: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.337060: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.337232: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.337393: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.337547: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.337703: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.337861: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:15:01.337918: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:15:01.343140: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:15:01.343496: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 12:15:01.387111: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:15:01.387249: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 12:15:01.388626: High export rate found rates in range 99p to -99p
2026-08-17 12:15:01.418928: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 12:15:01.419045: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:15:01.431068: Battery level now 11.36kWh, -1hr ago 11.84kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today 5.99p, rate_forward 6.87p
2026-08-17 12:15:01.431456: Last hour: net energy 0.07kWh, import 0.07kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 2.37p, import 2.37p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:15:01.478678: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:15:01.478843: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:15:01.562930: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:15:01.588897: Today's load divergence 99.31%, in-day adjustment 84.18%, damping 0.95x, yesterday 68.37% today 99.34% blend 48.96%
2026-08-17 12:15:01.588995: Today's predicted so far 7.71kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 7.71kWh forecast extra.
2026-08-17 12:15:01.589049: Today's actual load so far 7.6kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 12:15:01.618579: Inverter 0: Type SK Sunsynk
2026-08-17 12:15:01.618646: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:15:01.618802: Reserve min: 7%, battery_min: 7%
2026-08-17 12:15:01.618860: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:15:01.619065: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 760W, current battery voltage 51.2V, grid power -56W, load power 824W, PV Power 0W
2026-08-17 12:15:01.619199: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:15:01.619271: Inverter 0 scheduled charge enable is False
2026-08-17 12:15:01.619294: Inverter 0 charge windows currently []
2026-08-17 12:15:01.619316: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:15:01.619408: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:15:01.619437: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:15:01.619466: Inverter 0 scheduled discharge enable is False
2026-08-17 12:15:01.619568: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:15:01.619597: Inverter 0 discharge windows currently []
2026-08-17 12:15:01.619615: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:15:01.619629: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:15:01.619647: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:15:01.675360: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:15:01.675485: Plan was last updated on 2026-08-17 12:10:00+01:00 and is now 5.0 minutes old
2026-08-17 12:15:01.675777: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:15:01.675833: Best export window [ ]
2026-08-17 12:15:01.676807: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:15:01.680180: Load divergence over 8.0 hours mean 596.49W, min 339.0W, max 1788.0W, std dev 328.11W, divergence 27.5%
2026-08-17 12:15:01.699259: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:15:01.699372: LoadML is_calculating False
2026-08-17 12:15:01.699429: Creating pool of 12 processes to match your CPU count
2026-08-17 12:15:01.802058: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 597.83p, metric_keep 278.38kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.16kWh, PV 0.0kWh
2026-08-17 12:15:01.914301: Battery has 14.75 hours left - now at 11.36kWh
2026-08-17 12:15:01.952862: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 620.83p, metric_keep 280.25kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.24kWh, PV 0.0kWh
2026-08-17 12:15:02.033260: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 320.74p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.24kWh, PV 0.0kWh
2026-08-17 12:15:02.105042: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 317.35p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.16kWh, PV 0.0kWh
2026-08-17 12:15:02.105134: Saving plan best values to HA entities
2026-08-17 12:15:02.247471: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:15:02.252431: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:15:02.257568: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.89kWh, house 0.0kWh, export 0.0kWh, metric 317.35p, metric10 320.74p
2026-08-17 12:15:02.324382: Marginal costs baseline metric (no standing charge): 270.7177
2026-08-17 12:15:02.549178: Marginal energy costs matrix computed: min=8.0 max=24.21
2026-08-17 12:15:02.620482: Rate array import [{'start': 735, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 735, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:15:02.621187: - Your estimated bill for today is £1.67 and tomorrow is £1.70
2026-08-17 12:15:02.621230: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:15:02.621253: - The battery is currently at 71% and is in eco mode for the next 11 hours.
2026-08-17 12:15:02.621271: - For the next 48 hours there will be no solar generation.
2026-08-17 12:15:02.621292: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:15:02.621309: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:15:02.621337:
2026-08-17 12:15:02.675806: Plan calculation took 1.00 seconds
2026-08-17 12:15:02.678602: No high rate period found
2026-08-17 12:15:02.727383: Import threshold used for optimisation was 8.0p
2026-08-17 12:15:02.778946: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 12:15:02.784398: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 71%, target 100%
2026-08-17 12:15:02.784545: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:15:02.784640: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:15:02.784884: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:15:02.785014: No export window planned
2026-08-17 12:15:02.785249: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:15:02.785295: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:15:02.785508: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:15:02.785747: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:15:02.785829: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:15:02.785923: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:15:02.786058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786138: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786274: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786327: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786411: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786558: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786654: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:15:02.786865: Inverter 0 count register writes 0
2026-08-17 12:15:02.801996: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 12:15:02.806806: Total inverter register writes now 861
2026-08-17 12:15:02.836543: Info: Completed run status Demand
2026-08-17 12:15:02.842117: Info: record_status Demand
2026-08-17 12:15:02.848345: Saved current settings to /config/predbat_config.json
2026-08-17 12:15:02.848626: Compare, best tariff: current metric 104.68p
2026-08-17 12:15:33.953903: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:15:33.954231: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:15:33.954301: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:15:33.954536: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:15:33.954600: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:15:33.954637: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:15:33.954671: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:17:34.166362: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:17:34.166598: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:17:34.166640: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:17:34.166774: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:17:34.166813: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:17:34.166834: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:17:34.166852: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:19:34.369578: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:19:34.369813: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:19:34.369856: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:19:34.370069: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:19:34.370109: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:19:34.370131: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:19:34.370148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:20:00.476404: --------------- PredBat - update at 2026-08-17 12:20:00+01:00 with clock skew 0 minutes, minutes now 740
2026-08-17 12:20:00.477190: Saved current settings to /config/predbat_config.json
2026-08-17 12:20:00.477300: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 84.7 minutes
2026-08-17 12:20:00.477373: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:20:00.477463: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:20:00.495121: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:20:00.495242: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:20:00.495485: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:20:00.496170: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:20:00.496329: Predbat mode is set to Control charge & discharge
2026-08-17 12:20:00.670080: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:20:00.670214: Using load_power data to fill gaps in load_today data
2026-08-17 12:20:01.432186: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:20:01.432360: Zero load period starting at 2026-08-17T10:54:00+0100 (86 minutes) for 189 minutes with base value 215.425
2026-08-17 12:20:01.432728: Processing 721 30-minute periods for power integration
2026-08-17 12:20:01.617303: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:20:01.617541: Car charging hold False, threshold 6.0kWh
2026-08-17 12:20:01.617640: Current data so far today: load 6.35kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:20:01.636404: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:20:01.636769: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:20:01.637499: Standing charge is set to 46.63p
2026-08-17 12:20:01.717461: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.717712: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.717894: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.718069: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.718240: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.718408: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.718601: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.718860: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.719078: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.719305: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.719495: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.719668: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.719832: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.720052: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.720222: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.720381: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.720558: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.720718: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.720873: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:20:01.720929: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:20:01.726368: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:20:01.726796: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 12:20:01.770194: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:20:01.770308: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 12:20:01.771553: High export rate found rates in range 99p to -99p
2026-08-17 12:20:01.799860: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 12:20:01.799979: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:20:01.814333: Battery level now 11.36kWh, -1hr ago 11.84kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today 5.99p, rate_forward 6.87p
2026-08-17 12:20:01.814720: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 2.07p, import 2.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:20:01.867513: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:20:01.867675: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:20:01.954791: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:20:01.980295: Today's load divergence 98.82%, in-day adjustment 84.05%, damping 0.95x, yesterday 68.37% today 98.88% blend 48.61%
2026-08-17 12:20:01.980387: Today's predicted so far 7.74kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 7.74kWh forecast extra.
2026-08-17 12:20:01.980418: Today's actual load so far 7.55kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 12:20:02.018886: Inverter 0: Type SK Sunsynk
2026-08-17 12:20:02.018971: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:20:02.019149: Reserve min: 7%, battery_min: 7%
2026-08-17 12:20:02.019225: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:20:02.019513: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 716W, current battery voltage 51.2V, grid power -54W, load power 775W, PV Power 0W
2026-08-17 12:20:02.019666: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:20:02.019749: Inverter 0 scheduled charge enable is False
2026-08-17 12:20:02.019778: Inverter 0 charge windows currently []
2026-08-17 12:20:02.019804: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:20:02.019958: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:20:02.020010: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:20:02.020056: Inverter 0 scheduled discharge enable is False
2026-08-17 12:20:02.020187: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:20:02.020224: Inverter 0 discharge windows currently []
2026-08-17 12:20:02.020247: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:20:02.020266: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:20:02.020298: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:20:02.077679: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:20:02.077779: Plan was last updated on 2026-08-17 12:10:00+01:00 and is now 10.0 minutes old
2026-08-17 12:20:02.077985: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:20:02.078026: Best export window [ ]
2026-08-17 12:20:02.078941: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:20:02.082127: Load divergence over 8.0 hours mean 593.7W, min 370.8W, max 1896.0W, std dev 331.33W, divergence 27.9%
2026-08-17 12:20:02.100744: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:20:02.100856: LoadML is_calculating False
2026-08-17 12:20:02.100915: Creating pool of 12 processes to match your CPU count
2026-08-17 12:20:02.206064: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 599.02p, metric_keep 279.08kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.14kWh, PV 0.0kWh
2026-08-17 12:20:02.318678: Battery has 14.5 hours left - now at 11.2kWh
2026-08-17 12:20:02.354939: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 622.08p, metric_keep 280.92kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.22kWh, PV 0.0kWh
2026-08-17 12:20:02.444816: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 325.15p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.22kWh, PV 0.0kWh
2026-08-17 12:20:02.527566: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 322.24p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.14kWh, PV 0.0kWh
2026-08-17 12:20:02.527675: Saving plan best values to HA entities
2026-08-17 12:20:02.676413: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:20:02.681398: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:20:02.686353: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.5kWh, house 0.0kWh, export 0.0kWh, metric 322.24p, metric10 325.15p
2026-08-17 12:20:02.757460: Marginal costs baseline metric (no standing charge): 275.6028
2026-08-17 12:20:03.033822: Marginal energy costs matrix computed: min=8.0 max=24.49
2026-08-17 12:20:03.107784: Rate array import [{'start': 740, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 740, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:20:03.108556: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:20:03.108607: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:20:03.108630: - The battery is currently at 70% and is in eco mode for the next 11 hours.
2026-08-17 12:20:03.108649: - For the next 48 hours there will be no solar generation.
2026-08-17 12:20:03.108675: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:20:03.108693: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:20:03.108711:
2026-08-17 12:20:03.162869: Plan calculation took 1.08 seconds
2026-08-17 12:20:03.166530: No high rate period found
2026-08-17 12:20:03.212811: Import threshold used for optimisation was 8.0p
2026-08-17 12:20:03.258823: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 12:20:03.264693: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-17 12:20:03.264824: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:20:03.264927: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:20:03.265203: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:20:03.265315: No export window planned
2026-08-17 12:20:03.265544: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:20:03.265606: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:20:03.265784: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:20:03.265974: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:20:03.266062: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:20:03.266130: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:20:03.266218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266281: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266337: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266361: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266622: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:03.266691: Inverter 0 count register writes 0
2026-08-17 12:20:03.281997: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 12:20:03.282140: Recompute is saving previous plan...
2026-08-17 12:20:03.282871: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 12:20:03.282910: Best export window [ ]
2026-08-17 12:20:03.283558: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:20:03.286064: Load divergence over 8.0 hours mean 593.7W, min 370.8W, max 1896.0W, std dev 331.33W, divergence 27.9%
2026-08-17 12:20:03.304923: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:20:03.305025: LoadML is_calculating False
2026-08-17 12:20:03.305096: Creating pool of 12 processes to match your CPU count
2026-08-17 12:20:03.380351: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 12:20:03.381302: Optimise levels pass started at 2026-08-17 12:20:03
2026-08-17 12:20:03.381355: Optimise all windows, total charge 24 export 1
2026-08-17 12:20:03.719988: >> Region optimisation pass width 960 gives best_metric 344.23p, best_cost 411.51p, best_cycle 46.58kWh, best_import 33.49kWh
2026-08-17 12:20:03.890060: >> Region optimisation pass width 480 gives best_metric 344.23p, best_cost 411.51p, best_cycle 46.58kWh, best_import 33.49kWh
2026-08-17 12:20:04.182686: >> Region optimisation pass width 240 gives best_metric 344.23p, best_cost 411.51p, best_cycle 46.58kWh, best_import 33.49kWh
2026-08-17 12:20:04.650844: >> Region optimisation pass width 120 gives best_metric 344.23p, best_cost 411.51p, best_cycle 46.58kWh, best_import 33.49kWh
2026-08-17 12:20:04.651168: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 12:20:04.651324: Optimise levels pass ended at 2026-08-17 12:20:04, duration 1.3 seconds tried 72 combinations
2026-08-17 12:20:04.651462: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 344.23p, best_keep 0.11kWh, best_cycle 46.58kWh, best_carbon 0kg, best_import 33.49kWh
2026-08-17 12:20:04.669574: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 12:20:07.020893: Tweak plan optimisation started metric 254.93p, cost 266.74p
2026-08-17 12:20:07.336268: Tweak optimisation finished metric 254.93p, cost 266.74p, metric_keep 0.11kWh, cycle 29.33kWh, carbon 0kg, import 15.4kWh, changed 8 window(s)
2026-08-17 12:20:07.353862: Swap charge optimisation started metric 254.93p, cost 266.74p, min_improvement_swap 0.1p
2026-08-17 12:20:07.953793: Swap charge optimisation finished metric 254.93p, cost 266.74p
2026-08-17 12:20:08.058077: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:20:08.058519: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:20:08.058726: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:20:08.058887: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 12:20:08.090435: Previous plan best metric is 255.42 (cost 267.31) and new plan best metric is 254.93 (cost 266.74)
2026-08-17 12:20:08.090611: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 12:20:08.090715: Plan valid is now true after recompute was False
2026-08-17 12:20:08.120407: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.4p, metric_keep 278.5kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 28.93kWh, PV 0.0kWh
2026-08-17 12:20:08.208509: Battery has 14.5 hours left - now at 11.2kWh
2026-08-17 12:20:08.245000: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 620.37p, metric_keep 280.33kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.01kWh, PV 0.0kWh
2026-08-17 12:20:08.305703: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 317.9p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.01kWh, PV 0.0kWh
2026-08-17 12:20:08.368000: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 313.94p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.93kWh, PV 0.0kWh
2026-08-17 12:20:08.368091: Saving plan best values to HA entities
2026-08-17 12:20:08.488164: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:20:08.492860: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:20:08.497853: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.47kWh, house 0.0kWh, export 0.0kWh, metric 313.94p, metric10 317.9p
2026-08-17 12:20:08.567979: Marginal costs baseline metric (no standing charge): 267.3106
2026-08-17 12:20:08.818023: Marginal energy costs matrix computed: min=8.0 max=24.49
2026-08-17 12:20:08.884467: Rate array import [{'start': 740, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 740, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:20:08.885054: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:20:08.885088: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:20:08.885108: - The battery is currently at 70% and is in eco mode for the next 11 hours.
2026-08-17 12:20:08.885123: - For the next 48 hours there will be no solar generation.
2026-08-17 12:20:08.885137: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:20:08.885151: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:20:08.885164:
2026-08-17 12:20:08.954421: Plan calculation took 5.67 seconds
2026-08-17 12:20:08.954713: Inverter 0: Type SK Sunsynk
2026-08-17 12:20:08.954767: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:20:08.954973: Reserve min: 7%, battery_min: 7%
2026-08-17 12:20:08.955092: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:20:08.955481: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 716W, current battery voltage 51.2V, grid power -54W, load power 775W, PV Power 0W
2026-08-17 12:20:08.956488: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:20:08.956603: Inverter 0 scheduled charge enable is False
2026-08-17 12:20:08.956678: Inverter 0 charge windows currently []
2026-08-17 12:20:08.958290: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:20:08.958492: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:20:08.958573: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:20:08.958703: Inverter 0 scheduled discharge enable is False
2026-08-17 12:20:08.958928: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:20:08.958998: Inverter 0 discharge windows currently []
2026-08-17 12:20:08.959047: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:20:08.959089: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:20:08.959130: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:20:09.019063: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-17 12:20:09.019215: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:20:09.019305: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:20:09.019522: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:20:09.019621: No export window planned
2026-08-17 12:20:09.019764: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:20:09.019805: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:20:09.020008: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:20:09.020218: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:20:09.020280: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:20:09.020357: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:20:09.020484: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020537: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020627: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020707: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.020944: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.021009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.021061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.021109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:20:09.021150: Inverter 0 count register writes 0
2026-08-17 12:20:09.037553: Total inverter register writes now 861
2026-08-17 12:20:09.063560: Info: Completed run status Demand
2026-08-17 12:20:09.068786: Info: record_status Demand
2026-08-17 12:20:09.074778: Saved current settings to /config/predbat_config.json
2026-08-17 12:20:09.074980: Compare, best tariff: current metric 104.68p
2026-08-17 12:20:49.176113: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:20:49.176335: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:20:49.176377: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:20:49.176532: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:20:49.176580: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:20:49.176616: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:20:49.176651: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:22:49.386075: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:22:49.386271: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:22:49.386304: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:22:49.386472: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:22:49.386503: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:22:49.386520: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:22:49.386552: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:24:07.569228: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 12:24:08.617470: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:24:08.617729: Zero load period starting at 2026-08-17T10:54:00+0100 (86 minutes) for 189 minutes with base value 412.75
2026-08-17 12:24:08.618115: Processing 1345 30-minute periods for power integration
2026-08-17 12:24:08.731059: ML Component: Car charging hold False, car energy reported load False
2026-08-17 12:24:08.831068: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:24:08.935110: ML Temperature data points: 49661
2026-08-17 12:24:09.212703: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 12:24:09.248656: ML Component: Data fetch completed, load data age 58.0 days, 16972 data points
2026-08-17 12:24:09.248850: ML Component: No training needed, model age is 0.92 hours
2026-08-17 12:24:09.248976: ML Component: Generating predictions load data age 58.0 days, 16972 data points
2026-08-17 12:24:09.395074: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0637 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 12:24:09.786606: ML Component: Generated 576 predictions (total 24.60 kWh over 48h)
2026-08-17 12:24:09.823576: ML Component: Prediction cycle completed
2026-08-17 12:24:09.940495: ML Component: Saved 16972 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 12:25:00.326820: --------------- PredBat - update at 2026-08-17 12:25:00+01:00 with clock skew 0 minutes, minutes now 745
2026-08-17 12:25:00.327535: Saved current settings to /config/predbat_config.json
2026-08-17 12:25:00.327662: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 89.6 minutes
2026-08-17 12:25:00.327725: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:25:00.327790: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:25:00.344594: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:25:00.344713: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:25:00.344875: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:25:00.345357: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:25:00.345475: Predbat mode is set to Control charge & discharge
2026-08-17 12:25:00.509353: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:25:00.509471: Using load_power data to fill gaps in load_today data
2026-08-17 12:25:01.255965: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:25:01.256202: Zero load period starting at 2026-08-17T10:54:00+0100 (91 minutes) for 189 minutes with base value 215.4
2026-08-17 12:25:01.256488: Processing 721 30-minute periods for power integration
2026-08-17 12:25:01.408960: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:25:01.409086: Car charging hold False, threshold 6.0kWh
2026-08-17 12:25:01.409146: Current data so far today: load 6.4kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:25:01.423571: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:25:01.423650: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:25:01.424266: Standing charge is set to 46.63p
2026-08-17 12:25:01.494523: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.494745: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.494893: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.495046: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.495184: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.495318: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.495453: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.495600: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.495735: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.495889: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.496103: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.496244: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.496374: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.496501: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.496647: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.496777: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.496904: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.497031: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.497154: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:25:01.497200: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:25:01.501395: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:25:01.501661: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 12:25:01.537252: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:25:01.537352: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 12:25:01.538438: High export rate found rates in range 99p to -99p
2026-08-17 12:25:01.561721: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 12:25:01.561834: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:25:01.573245: Battery level now 11.2kWh, -1hr ago 11.74kWh, at midnight 10.49kWh, battery value change in the last hour -3.68p, change today 4.89p, rate_forward 6.87p
2026-08-17 12:25:01.573691: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.78p, import 1.78p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:25:01.619066: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:25:01.619198: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:25:01.697445: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:25:01.718133: Today's load divergence 98.86%, in-day adjustment 84.17%, damping 0.95x, yesterday 68.37% today 98.92% blend 48.26%
2026-08-17 12:25:01.718215: Today's predicted so far 7.77kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 7.77kWh forecast extra.
2026-08-17 12:25:01.718241: Today's actual load so far 7.59kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 12:25:01.751525: Inverter 0: Type SK Sunsynk
2026-08-17 12:25:01.751620: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:25:01.751788: Reserve min: 7%, battery_min: 7%
2026-08-17 12:25:01.751857: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:25:01.752169: Inverter 0 SoC: 11.2kW 70%, current charge rate 5000W, current discharge rate 5250W, current battery power 719W, current battery voltage 51.2V, grid power -52W, load power 776W, PV Power 0W
2026-08-17 12:25:01.752321: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:25:01.752403: Inverter 0 scheduled charge enable is False
2026-08-17 12:25:01.752432: Inverter 0 charge windows currently []
2026-08-17 12:25:01.752463: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:25:01.752591: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:25:01.752628: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:25:01.752687: Inverter 0 scheduled discharge enable is False
2026-08-17 12:25:01.752899: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:25:01.752944: Inverter 0 discharge windows currently []
2026-08-17 12:25:01.752980: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:25:01.753023: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:25:01.753046: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:25:01.809858: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:25:01.809957: Plan was last updated on 2026-08-17 12:20:00+01:00 and is now 5.0 minutes old
2026-08-17 12:25:01.810213: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:25:01.810267: Best export window [ ]
2026-08-17 12:25:01.811197: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:25:01.814470: Load divergence over 8.0 hours mean 589.21W, min 384.0W, max 2007.0W, std dev 326.49W, divergence 27.71%
2026-08-17 12:25:01.833221: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:25:01.833325: LoadML is_calculating False
2026-08-17 12:25:01.833383: Creating pool of 12 processes to match your CPU count
2026-08-17 12:25:01.937413: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.06p, metric_keep 278.57kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.05kWh, PV 0.0kWh
2026-08-17 12:25:02.054224: Battery has 14.5 hours left - now at 11.2kWh
2026-08-17 12:25:02.096574: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.11p, metric_keep 280.42kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.13kWh, PV 0.0kWh
2026-08-17 12:25:02.165611: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 321.1p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.13kWh, PV 0.0kWh
2026-08-17 12:25:02.238406: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 317.69p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.05kWh, PV 0.0kWh
2026-08-17 12:25:02.238492: Saving plan best values to HA entities
2026-08-17 12:25:02.381300: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:25:02.386577: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:25:02.393030: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.93kWh, house 0.0kWh, export 0.0kWh, metric 317.69p, metric10 321.1p
2026-08-17 12:25:02.504540: Marginal costs baseline metric (no standing charge): 271.0555
2026-08-17 12:25:02.730904: Marginal energy costs matrix computed: min=8.0 max=24.37
2026-08-17 12:25:02.798444: Rate array import [{'start': 745, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 745, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:25:02.799053: - Your estimated bill for today is £1.68 and tomorrow is £1.71
2026-08-17 12:25:02.799089: - Import rates are very expensive (33.8p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:25:02.799107: - The battery is currently at 70% and is in eco mode for the next 11 hours.
2026-08-17 12:25:02.799122: - For the next 48 hours there will be no solar generation.
2026-08-17 12:25:02.799136: - You will reach a minimum of 12% battery in 35 hours.
2026-08-17 12:25:02.799150: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:25:02.799168:
2026-08-17 12:25:02.846884: Plan calculation took 1.04 seconds
2026-08-17 12:25:02.850536: No high rate period found
2026-08-17 12:25:02.894645: Import threshold used for optimisation was 8.0p
2026-08-17 12:25:02.939480: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 12:25:02.945158: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 70%, target 100%
2026-08-17 12:25:02.945299: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:25:02.945403: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:25:02.945673: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:25:02.945762: No export window planned
2026-08-17 12:25:02.945889: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:25:02.945925: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:25:02.946061: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:25:02.946240: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:25:02.946302: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:25:02.946365: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:25:02.946456: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946496: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946530: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946578: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946637: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946670: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946703: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946905: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946929: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:25:02.946955: Inverter 0 count register writes 0
2026-08-17 12:25:02.962854: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 12:25:02.968259: Total inverter register writes now 861
2026-08-17 12:25:02.998831: Info: Completed run status Demand
2026-08-17 12:25:03.004235: Info: record_status Demand
2026-08-17 12:25:03.009892: Saved current settings to /config/predbat_config.json
2026-08-17 12:25:03.010202: Compare, best tariff: current metric 104.68p
2026-08-17 12:25:34.102965: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:25:34.103203: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:25:34.103269: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:25:34.103466: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:25:34.103509: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:25:34.103532: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:25:34.103550: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:27:34.313355: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:27:34.313609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:27:34.313654: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:27:34.313812: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:27:34.313850: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:27:34.313871: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:27:34.313889: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:29:34.521785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:29:34.522026: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:29:34.522060: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:29:34.522190: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:29:34.522228: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:29:34.522271: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:29:34.522290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:30:00.626742: --------------- PredBat - update at 2026-08-17 12:30:00+01:00 with clock skew 0 minutes, minutes now 750
2026-08-17 12:30:00.627653: Saved current settings to /config/predbat_config.json
2026-08-17 12:30:00.627794: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 94.7 minutes
2026-08-17 12:30:00.627938: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:30:00.628033: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:30:00.647126: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:30:00.647289: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:30:00.647504: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:30:00.648124: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:30:00.648282: Predbat mode is set to Control charge & discharge
2026-08-17 12:30:00.848916: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:30:00.849049: Using load_power data to fill gaps in load_today data
2026-08-17 12:30:01.678636: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:30:01.678861: Zero load period starting at 2026-08-17T10:54:00+0100 (96 minutes) for 189 minutes with base value 215.375
2026-08-17 12:30:01.679301: Processing 721 30-minute periods for power integration
2026-08-17 12:30:01.868480: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:30:01.869043: Car charging hold False, threshold 6.0kWh
2026-08-17 12:30:01.869119: Current data so far today: load 6.45kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:30:01.887411: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:30:01.887522: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:30:01.888297: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 12:30:01.888371: Standing charge is set to 46.63p
2026-08-17 12:30:01.975412: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.975677: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.975866: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.976137: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.976328: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.976504: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.976698: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.976895: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.977062: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.977226: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.977391: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.977576: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.977743: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.977905: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.978065: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.978221: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.978377: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.978547: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.978708: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:30:01.978765: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:30:01.978866: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 12:30:01.984207: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:30:01.984554: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 12:30:02.028559: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:30:02.028684: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 12:30:02.029914: High export rate found rates in range 99p to -99p
2026-08-17 12:30:02.121675: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 12:30:02.121795: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:30:02.133255: Battery level now 11.2kWh, -1hr ago 11.74kWh, at midnight 10.49kWh, battery value change in the last hour -3.68p, change today 4.89p, rate_forward 6.87p
2026-08-17 12:30:02.133729: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.48p, import 1.48p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:30:02.190137: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:30:02.190289: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:30:02.274587: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:30:02.300868: Today's load divergence 98.43%, in-day adjustment 84.07%, damping 0.95x, yesterday 68.37% today 98.51% blend 47.92%
2026-08-17 12:30:02.300972: Today's predicted so far 7.92kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 7.92kWh forecast extra.
2026-08-17 12:30:02.301025: Today's actual load so far 7.68kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 12:30:02.336615: Octopus saving slots changed from [] to [{'start': '2026-08-17T18:00:00+01:00', 'end': '2026-08-17T19:00:00+01:00', 'rate': 12.625, 'state': False}]
2026-08-17 12:30:02.337045: Sensor changes require a replan, will recompute the plan
2026-08-17 12:30:02.337171: Inverter 0: Type SK Sunsynk
2026-08-17 12:30:02.337204: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:30:02.337346: Reserve min: 7%, battery_min: 7%
2026-08-17 12:30:02.337408: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:30:02.337631: Inverter 0 SoC: 11.07kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 624W, current battery voltage 51.2V, grid power -54W, load power 677W, PV Power 0W
2026-08-17 12:30:02.337757: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:30:02.337826: Inverter 0 scheduled charge enable is False
2026-08-17 12:30:02.337851: Inverter 0 charge windows currently []
2026-08-17 12:30:02.337882: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:30:02.337987: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:30:02.338019: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:30:02.338048: Inverter 0 scheduled discharge enable is False
2026-08-17 12:30:02.338145: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:30:02.338175: Inverter 0 discharge windows currently []
2026-08-17 12:30:02.338194: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:30:02.338209: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:30:02.338224: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:30:02.394563: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:30:02.394641: Will recompute the plan as it is invalid
2026-08-17 12:30:02.394736: Recompute is saving previous plan...
2026-08-17 12:30:02.397794: Best charge window [ 17-08 12:30:00 - 17-08 13:00:00 @ 33.75p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0% ]
2026-08-17 12:30:02.397868: Best export window [ ]
2026-08-17 12:30:02.398704: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:30:02.401820: Load divergence over 8.0 hours mean 576.5W, min 359.4W, max 1983.0W, std dev 307.76W, divergence 26.69%
2026-08-17 12:30:02.420434: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:30:02.420550: LoadML is_calculating False
2026-08-17 12:30:02.420610: Creating pool of 12 processes to match your CPU count
2026-08-17 12:30:02.495385: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 12:30:02.497598: Optimise levels pass started at 2026-08-17 12:30:02
2026-08-17 12:30:02.497671: Optimise all windows, total charge 94 export 1
2026-08-17 12:30:03.103426: >> Region optimisation pass width 960 gives best_metric 345.33p, best_cost 411.71p, best_cycle 46.61kWh, best_import 33.52kWh
2026-08-17 12:30:03.264369: >> Region optimisation pass width 480 gives best_metric 344.83p, best_cost 405.23p, best_cycle 47.45kWh, best_import 32.71kWh
2026-08-17 12:30:03.819638: >> Region optimisation pass width 240 gives best_metric 335.63p, best_cost 346.29p, best_cycle 45.11kWh, best_import 25.34kWh
2026-08-17 12:30:04.779987: >> Region optimisation pass width 120 gives best_metric 335.15p, best_cost 345.81p, best_cycle 44.27kWh, best_import 25.28kWh
2026-08-17 12:30:04.780248: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 68
2026-08-17 12:30:04.780316: Optimise levels pass ended at 2026-08-17 12:30:04, duration 2.3 seconds tried 113 combinations
2026-08-17 12:30:04.780382: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 335.15p, best_keep 0.25kWh, best_cycle 44.27kWh, best_carbon 0kg, best_import 25.28kWh
2026-08-17 12:30:04.801218: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 12:30:11.224411: Tweak plan optimisation started metric 255.1p, cost 266.93p
2026-08-17 12:30:11.575025: Tweak optimisation finished metric 255.1p, cost 266.93p, metric_keep 0.11kWh, cycle 29.22kWh, carbon 0kg, import 15.42kWh, changed 8 window(s)
2026-08-17 12:30:11.591067: Swap charge optimisation started metric 255.1p, cost 266.93p, min_improvement_swap 0.1p
2026-08-17 12:30:17.361242: Swap charge optimisation finished metric 255.1p, cost 266.93p
2026-08-17 12:30:17.472023: Raw charge windows [ 17-08 12:30:00 - 17-08 13:00:00 @ 33.75p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:30:17.472462: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 12:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:30:17.472658: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 12:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:30:17.472777: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 12:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:30:17.503475: Previous plan best metric is 255.59 (cost 267.51) and new plan best metric is 255.1 (cost 266.93)
2026-08-17 12:30:17.503699: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 12:30:17.503823: Plan valid is now true after recompute was False
2026-08-17 12:30:17.526929: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.54p, metric_keep 278.58kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 28.94kWh, PV 0.0kWh
2026-08-17 12:30:17.630263: Battery has 14.33 hours left - now at 11.07kWh
2026-08-17 12:30:17.666542: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 620.49p, metric_keep 280.37kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.01kWh, PV 0.0kWh
2026-08-17 12:30:17.732400: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 318.04p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.01kWh, PV 0.0kWh
2026-08-17 12:30:17.802507: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 314.14p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.94kWh, PV 0.0kWh
2026-08-17 12:30:17.802608: Saving plan best values to HA entities
2026-08-17 12:30:17.952725: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:30:17.957335: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 12:30:17.961675: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.49kWh, house 0.0kWh, export 0.0kWh, metric 314.14p, metric10 318.04p
2026-08-17 12:30:18.026534: Marginal costs baseline metric (no standing charge): 267.5051
2026-08-17 12:30:18.254245: Marginal energy costs matrix computed: min=8.0 max=27.52
2026-08-17 12:30:18.322999: Rate array import [{'start': 750, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 750, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:30:18.323595: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:30:18.323746: - Import rates are very expensive (33.8p - 46.4p) for the next 11 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:30:18.324133: - The battery is currently at 69% and is in eco mode for the next 11 hours.
2026-08-17 12:30:18.324176: - For the next 48 hours there will be no solar generation.
2026-08-17 12:30:18.324193: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:30:18.324208: - Your next charge slot will be in 11 hours where import rates will be cheap (8.0p).
2026-08-17 12:30:18.324223:
2026-08-17 12:30:18.376345: Plan calculation took 15.98 seconds
2026-08-17 12:30:18.380404: Saved plan to storage
2026-08-17 12:30:18.383116: No high rate period found
2026-08-17 12:30:18.426597: Import threshold used for optimisation was 8.0p
2026-08-17 12:30:18.475234: Low import rate windows [0: 08-17 12:30:00 - 08-17 13:00:00 @ 33.75, 1: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 2: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 3: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 4: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 5: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 6: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 7: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 8: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 9: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 10: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 11: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 12: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 13: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 14: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 15: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 16: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 17: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 18: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 19: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 20: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 21: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 22: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 23: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 24: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 25: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 26: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 27: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 28: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 29: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 30: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 31: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 32: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 33: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 34: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 35: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 36: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 37: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 38: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 39: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 40: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 41: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 42: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 43: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 44: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 45: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 46: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 47: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 48: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 49: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 50: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 51: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 52: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 53: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 54: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 55: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 56: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 57: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 58: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 59: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 60: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 61: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 62: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 63: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 64: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 65: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 66: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 67: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 68: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 69: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 70: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 71: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 72: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 73: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 74: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 75: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 76: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 77: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 78: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 79: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 80: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 81: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 82: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 83: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 84: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 85: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 86: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 87: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 88: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 89: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 90: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 91: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 92: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 93: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75]
2026-08-17 12:30:18.481501: Inverter 0: Type SK Sunsynk
2026-08-17 12:30:18.481616: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:30:18.481886: Reserve min: 7%, battery_min: 7%
2026-08-17 12:30:18.481959: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:30:18.482316: Inverter 0 SoC: 11.07kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 624W, current battery voltage 51.2V, grid power -54W, load power 677W, PV Power 0W
2026-08-17 12:30:18.482555: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:30:18.482644: Inverter 0 scheduled charge enable is False
2026-08-17 12:30:18.482669: Inverter 0 charge windows currently []
2026-08-17 12:30:18.482693: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:30:18.482790: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:30:18.482822: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:30:18.482853: Inverter 0 scheduled discharge enable is False
2026-08-17 12:30:18.482956: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:30:18.482986: Inverter 0 discharge windows currently []
2026-08-17 12:30:18.483004: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:30:18.483019: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:30:18.483036: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:30:18.526686: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-17 12:30:18.526853: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:30:18.526923: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:30:18.527073: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:30:18.527141: No export window planned
2026-08-17 12:30:18.527234: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:30:18.527263: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:30:18.527369: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:30:18.527498: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:30:18.527577: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:30:18.527657: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:30:18.527769: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.527808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.527832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.527856: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.527877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.527941: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.527993: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:30:18.528210: Inverter 0 count register writes 0
2026-08-17 12:30:18.545827: Total inverter register writes now 861
2026-08-17 12:30:18.572720: Info: Completed run status Demand
2026-08-17 12:30:18.578195: Info: record_status Demand
2026-08-17 12:30:18.584797: Saved current settings to /config/predbat_config.json
2026-08-17 12:30:18.585077: Compare, best tariff: current metric 104.68p
2026-08-17 12:30:48.679830: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:30:48.680105: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:30:48.680144: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:30:48.680282: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:30:48.680327: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:30:48.680345: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:30:48.680361: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:32:48.878008: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:32:48.878238: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:32:48.878295: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:32:48.878455: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:32:48.878510: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:32:48.878533: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:32:48.878555: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:34:49.092605: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:34:49.092834: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:34:49.092868: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:34:49.093046: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:34:49.093097: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:34:49.093139: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:34:49.093163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:35:00.179516: --------------- PredBat - update at 2026-08-17 12:35:00+01:00 with clock skew 0 minutes, minutes now 755
2026-08-17 12:35:00.180355: Saved current settings to /config/predbat_config.json
2026-08-17 12:35:00.180513: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 99.6 minutes
2026-08-17 12:35:00.180605: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:35:00.180706: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:35:00.201953: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:35:00.202071: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:35:00.202231: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:35:00.202724: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:35:00.202842: Predbat mode is set to Control charge & discharge
2026-08-17 12:35:00.376165: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:35:00.376282: Using load_power data to fill gaps in load_today data
2026-08-17 12:35:01.160947: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:35:01.161304: Zero load period starting at 2026-08-17T10:54:00+0100 (101 minutes) for 189 minutes with base value 215.35
2026-08-17 12:35:01.161738: Processing 721 30-minute periods for power integration
2026-08-17 12:35:01.331452: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:35:01.331576: Car charging hold False, threshold 6.0kWh
2026-08-17 12:35:01.331634: Current data so far today: load 6.5kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:35:01.348443: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:35:01.348558: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:35:01.349184: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 12:35:01.349243: Standing charge is set to 46.63p
2026-08-17 12:35:01.434273: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.434500: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.434642: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.434785: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.434922: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.435056: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.435193: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.435325: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.435467: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.435603: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.435732: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.435862: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436043: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436200: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436330: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436480: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436613: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436742: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436870: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:35:01.436917: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:35:01.436999: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 12:35:01.442078: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:35:01.442411: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 12:35:01.482775: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:35:01.482890: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 12:35:01.484215: High export rate found rates in range 99p to -99p
2026-08-17 12:35:01.569916: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 12:35:01.570033: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:35:01.581512: Battery level now 11.07kWh, -1hr ago 11.68kWh, at midnight 10.49kWh, battery value change in the last hour -4.18p, change today 4.01p, rate_forward 6.87p
2026-08-17 12:35:01.581837: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.18p, import 1.18p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:35:01.636796: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:35:01.636939: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:35:01.722616: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:35:01.748805: Today's load divergence 98.09%, in-day adjustment 84.0%, damping 0.95x, yesterday 68.37% today 98.18% blend 47.57%
2026-08-17 12:35:01.748906: Today's predicted so far 8.04kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 8.04kWh forecast extra.
2026-08-17 12:35:01.748949: Today's actual load so far 7.74kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 12:35:01.781689: Inverter 0: Type SK Sunsynk
2026-08-17 12:35:01.781759: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:35:01.781898: Reserve min: 7%, battery_min: 7%
2026-08-17 12:35:01.781954: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:35:01.782157: Inverter 0 SoC: 11.07kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 917W, current battery voltage 51.2V, grid power -55W, load power 979W, PV Power 0W
2026-08-17 12:35:01.782279: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:35:01.782349: Inverter 0 scheduled charge enable is False
2026-08-17 12:35:01.782373: Inverter 0 charge windows currently []
2026-08-17 12:35:01.782394: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:35:01.782498: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:35:01.782528: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:35:01.782557: Inverter 0 scheduled discharge enable is False
2026-08-17 12:35:01.782662: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:35:01.782692: Inverter 0 discharge windows currently []
2026-08-17 12:35:01.782710: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:35:01.782725: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:35:01.782742: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:35:01.834632: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:35:01.834720: Plan was last updated on 2026-08-17 12:30:00+01:00 and is now 5.0 minutes old
2026-08-17 12:35:01.834885: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:35:01.834919: Best export window [ ]
2026-08-17 12:35:01.836030: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:35:01.840509: Load divergence over 8.0 hours mean 564.13W, min 334.8W, max 1926.0W, std dev 287.5W, divergence 25.48%
2026-08-17 12:35:01.859239: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:35:01.859349: LoadML is_calculating False
2026-08-17 12:35:01.859408: Creating pool of 12 processes to match your CPU count
2026-08-17 12:35:01.972296: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 597.78p, metric_keep 278.62kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.03kWh, PV 0.0kWh
2026-08-17 12:35:02.090436: Battery has 14.33 hours left - now at 11.07kWh
2026-08-17 12:35:02.133088: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 620.71p, metric_keep 280.4kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.1kWh, PV 0.0kWh
2026-08-17 12:35:02.208263: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 321.12p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.1kWh, PV 0.0kWh
2026-08-17 12:35:02.288076: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 317.84p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.03kWh, PV 0.0kWh
2026-08-17 12:35:02.288169: Saving plan best values to HA entities
2026-08-17 12:35:02.441169: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:35:02.445911: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:35:02.450588: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.95kWh, house 0.0kWh, export 0.0kWh, metric 317.84p, metric10 321.12p
2026-08-17 12:35:02.515959: Marginal costs baseline metric (no standing charge): 271.2048
2026-08-17 12:35:02.736955: Marginal energy costs matrix computed: min=7.95 max=26.77
2026-08-17 12:35:02.805695: Rate array import [{'start': 755, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 755, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:35:02.806467: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:35:02.806512: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:35:02.806535: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-17 12:35:02.806554: - For the next 48 hours there will be no solar generation.
2026-08-17 12:35:02.806572: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:35:02.806590: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 12:35:02.806607:
2026-08-17 12:35:02.860884: Plan calculation took 1.03 seconds
2026-08-17 12:35:02.864591: No high rate period found
2026-08-17 12:35:02.910193: Import threshold used for optimisation was 8.0p
2026-08-17 12:35:02.958056: Low import rate windows [0: 08-17 12:30:00 - 08-17 13:00:00 @ 33.75, 1: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 2: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 3: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 4: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 5: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 6: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 7: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 8: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 9: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 10: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 11: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 12: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 13: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 14: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 15: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 16: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 17: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 18: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 19: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 20: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 21: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 22: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 23: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 24: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 25: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 26: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 27: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 28: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 29: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 30: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 31: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 32: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 33: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 34: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 35: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 36: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 37: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 38: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 39: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 40: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 41: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 42: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 43: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 44: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 45: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 46: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 47: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 48: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 49: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 50: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 51: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 52: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 53: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 54: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 55: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 56: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 57: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 58: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 59: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 60: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 61: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 62: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 63: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 64: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 65: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 66: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 67: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 68: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 69: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 70: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 71: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 72: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 73: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 74: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 75: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 76: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 77: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 78: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 79: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 80: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 81: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 82: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 83: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 84: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 85: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 86: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 87: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 88: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 89: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 90: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 91: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 92: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 93: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 94: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75]
2026-08-17 12:35:02.965400: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-17 12:35:02.965555: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:35:02.965657: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:35:02.965907: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:35:02.965996: No export window planned
2026-08-17 12:35:02.966132: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:35:02.966168: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:35:02.966299: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:35:02.966483: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:35:02.966544: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:35:02.966607: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:35:02.966700: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.966739: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.966770: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.966800: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.966826: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.966874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.966950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967174: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967280: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:35:02.967436: Inverter 0 count register writes 0
2026-08-17 12:35:02.983538: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 12:35:02.988704: Total inverter register writes now 861
2026-08-17 12:35:03.018440: Info: Completed run status Demand
2026-08-17 12:35:03.025051: Info: record_status Demand
2026-08-17 12:35:03.033142: Saved current settings to /config/predbat_config.json
2026-08-17 12:35:03.033504: Compare, best tariff: current metric 104.68p
2026-08-17 12:35:34.129935: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:35:34.130159: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:35:34.130199: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:35:34.130425: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:35:34.130470: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:35:34.130493: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:35:34.130511: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:37:34.335394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:37:34.335638: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:37:34.335672: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:37:34.335859: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:37:34.335896: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:37:34.335955: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:37:34.335975: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:39:34.539048: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:39:34.539386: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:39:34.539443: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:39:34.539634: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:39:34.539679: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:39:34.539702: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:39:34.539731: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:40:00.647233: --------------- PredBat - update at 2026-08-17 12:40:00+01:00 with clock skew 0 minutes, minutes now 760
2026-08-17 12:40:00.647841: Saved current settings to /config/predbat_config.json
2026-08-17 12:40:00.647955: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 104.7 minutes
2026-08-17 12:40:00.648019: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:40:00.648090: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:40:00.663258: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:40:00.663364: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:40:00.663494: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:40:00.663940: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:40:00.664062: Predbat mode is set to Control charge & discharge
2026-08-17 12:40:00.842845: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:40:00.842992: Using load_power data to fill gaps in load_today data
2026-08-17 12:40:01.654345: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:40:01.654537: Zero load period starting at 2026-08-17T10:54:00+0100 (106 minutes) for 189 minutes with base value 215.325
2026-08-17 12:40:01.654898: Processing 721 30-minute periods for power integration
2026-08-17 12:40:01.806471: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:40:01.806583: Car charging hold False, threshold 6.0kWh
2026-08-17 12:40:01.806620: Current data so far today: load 6.7kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:40:01.821190: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:40:01.821292: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:40:01.821997: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 12:40:01.822073: Standing charge is set to 46.63p
2026-08-17 12:40:01.898775: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.899000: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.899169: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.899316: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.899454: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.899587: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.899731: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.899865: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.900092: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.900227: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.900361: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.900494: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.900626: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.900757: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.900886: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.901015: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.901158: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.901289: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.901416: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:40:01.901464: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:40:01.901539: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 12:40:01.905859: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:40:01.906189: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 12:40:01.940635: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:40:01.940719: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 12:40:01.942278: High export rate found rates in range 99p to -99p
2026-08-17 12:40:02.026912: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 12:40:02.027034: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:40:02.038324: Battery level now 11.07kWh, -1hr ago 11.68kWh, at midnight 10.49kWh, battery value change in the last hour -4.18p, change today 4.01p, rate_forward 6.87p
2026-08-17 12:40:02.038733: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.78kWh, net cost 0.89p, import 0.89p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:40:02.091248: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:40:02.091379: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:40:02.177227: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:40:02.204452: Today's load divergence 98.95%, in-day adjustment 84.54%, damping 0.95x, yesterday 68.37% today 99.0% blend 47.22%
2026-08-17 12:40:02.204550: Today's predicted so far 8.06kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 8.06kWh forecast extra.
2026-08-17 12:40:02.204582: Today's actual load so far 7.9kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 12:40:02.236986: Inverter 0: Type SK Sunsynk
2026-08-17 12:40:02.237084: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:40:02.237269: Reserve min: 7%, battery_min: 7%
2026-08-17 12:40:02.237362: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:40:02.237638: Inverter 0 SoC: 11.04kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 926W, current battery voltage 51.2V, grid power -56W, load power 990W, PV Power 0W
2026-08-17 12:40:02.237808: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:40:02.237927: Inverter 0 scheduled charge enable is False
2026-08-17 12:40:02.237961: Inverter 0 charge windows currently []
2026-08-17 12:40:02.237988: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:40:02.238136: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:40:02.238174: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:40:02.238209: Inverter 0 scheduled discharge enable is False
2026-08-17 12:40:02.238330: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:40:02.238366: Inverter 0 discharge windows currently []
2026-08-17 12:40:02.238388: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:40:02.238410: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:40:02.238427: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:40:02.292955: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:40:02.293052: Plan was last updated on 2026-08-17 12:30:00+01:00 and is now 10.0 minutes old
2026-08-17 12:40:02.293248: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:40:02.293307: Best export window [ ]
2026-08-17 12:40:02.293937: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:40:02.296456: Load divergence over 8.0 hours mean 553.94W, min 336.6W, max 1525.2W, std dev 262.2W, divergence 23.67%
2026-08-17 12:40:02.311848: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:40:02.312029: LoadML is_calculating False
2026-08-17 12:40:02.312100: Creating pool of 12 processes to match your CPU count
2026-08-17 12:40:02.405849: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 598.66p, metric_keep 278.97kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.31kWh, PV 0.0kWh
2026-08-17 12:40:02.526251: Battery has 14.25 hours left - now at 11.04kWh
2026-08-17 12:40:02.573926: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.63p, metric_keep 280.74kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.39kWh, PV 0.0kWh
2026-08-17 12:40:02.642775: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 324.81p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.39kWh, PV 0.0kWh
2026-08-17 12:40:02.714121: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 321.99p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.31kWh, PV 0.0kWh
2026-08-17 12:40:02.714206: Saving plan best values to HA entities
2026-08-17 12:40:02.866746: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:40:02.872097: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:40:02.877731: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.47kWh, house 0.0kWh, export 0.0kWh, metric 321.99p, metric10 324.81p
2026-08-17 12:40:02.945422: Marginal costs baseline metric (no standing charge): 275.3584
2026-08-17 12:40:03.179932: Marginal energy costs matrix computed: min=8.0 max=26.31
2026-08-17 12:40:03.251505: Rate array import [{'start': 760, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 760, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:40:03.252276: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:40:03.252323: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:40:03.252346: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-17 12:40:03.252364: - For the next 48 hours there will be no solar generation.
2026-08-17 12:40:03.252381: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:40:03.252398: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 12:40:03.252419:
2026-08-17 12:40:03.303169: Plan calculation took 1.01 seconds
2026-08-17 12:40:03.306658: No high rate period found
2026-08-17 12:40:03.351486: Import threshold used for optimisation was 8.0p
2026-08-17 12:40:03.398925: Low import rate windows [0: 08-17 12:30:00 - 08-17 13:00:00 @ 33.75, 1: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 2: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 3: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 4: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 5: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 6: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 7: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 8: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 9: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 10: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 11: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 12: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 13: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 14: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 15: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 16: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 17: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 18: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 19: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 20: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 21: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 22: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 23: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 24: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 25: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 26: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 27: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 28: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 29: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 30: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 31: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 32: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 33: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 34: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 35: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 36: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 37: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 38: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 39: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 40: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 41: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 42: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 43: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 44: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 45: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 46: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 47: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 48: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 49: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 50: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 51: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 52: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 53: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 54: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 55: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 56: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 57: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 58: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 59: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 60: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 61: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 62: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 63: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 64: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 65: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 66: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 67: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 68: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 69: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 70: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 71: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 72: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 73: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 74: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 75: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 76: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 77: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 78: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 79: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 80: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 81: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 82: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 83: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 84: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 85: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 86: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 87: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 88: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 89: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 90: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 91: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 92: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 93: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 94: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75]
2026-08-17 12:40:03.404536: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-17 12:40:03.404682: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:40:03.404788: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:40:03.404994: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:40:03.405083: No export window planned
2026-08-17 12:40:03.405182: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:40:03.405211: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:40:03.405317: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:40:03.405459: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:40:03.405523: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:40:03.405581: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:40:03.405654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405686: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405710: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405749: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405774: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405795: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405954: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:03.405989: Inverter 0 count register writes 0
2026-08-17 12:40:03.418635: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 12:40:03.418775: Recompute is saving previous plan...
2026-08-17 12:40:03.421297: Best charge window [ 17-08 12:30:00 - 17-08 13:00:00 @ 33.75p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0% ]
2026-08-17 12:40:03.421362: Best export window [ ]
2026-08-17 12:40:03.421996: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:40:03.424575: Load divergence over 8.0 hours mean 553.94W, min 336.6W, max 1525.2W, std dev 262.2W, divergence 23.67%
2026-08-17 12:40:03.439072: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:40:03.439166: LoadML is_calculating False
2026-08-17 12:40:03.439216: Creating pool of 12 processes to match your CPU count
2026-08-17 12:40:03.508366: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 12:40:03.510346: Optimise levels pass started at 2026-08-17 12:40:03
2026-08-17 12:40:03.510399: Optimise all windows, total charge 94 export 1
2026-08-17 12:40:03.901632: >> Region optimisation pass width 960 gives best_metric 345.96p, best_cost 411.2p, best_cycle 46.61kWh, best_import 33.45kWh
2026-08-17 12:40:04.135325: >> Region optimisation pass width 480 gives best_metric 345.96p, best_cost 411.2p, best_cycle 46.61kWh, best_import 33.45kWh
2026-08-17 12:40:04.853469: >> Region optimisation pass width 240 gives best_metric 336.13p, best_cost 347.34p, best_cycle 45.06kWh, best_import 25.47kWh
2026-08-17 12:40:06.214727: >> Region optimisation pass width 120 gives best_metric 336.1p, best_cost 347.43p, best_cycle 45.05kWh, best_import 25.48kWh
2026-08-17 12:40:06.215116: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 68
2026-08-17 12:40:06.215185: Optimise levels pass ended at 2026-08-17 12:40:06, duration 2.7 seconds tried 279 combinations
2026-08-17 12:40:06.215244: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 336.1p, best_keep 0.1kWh, best_cycle 45.05kWh, best_carbon 0kg, best_import 25.48kWh
2026-08-17 12:40:06.231707: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.5, 15.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 12:40:10.795191: Tweak plan optimisation started metric 255.23p, cost 268.81p
2026-08-17 12:40:11.076973: Tweak optimisation finished metric 255.23p, cost 268.81p, metric_keep 0kWh, cycle 29.85kWh, carbon 0kg, import 15.65kWh, changed 8 window(s)
2026-08-17 12:40:11.097450: Swap charge optimisation started metric 255.23p, cost 268.81p, min_improvement_swap 0.1p
2026-08-17 12:40:16.030587: Swap charge optimisation finished metric 255.23p, cost 268.81p
2026-08-17 12:40:16.164526: Raw charge windows [ 17-08 12:30:00 - 17-08 13:00:00 @ 33.75p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:40:16.165237: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:40:16.165626: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:40:16.165813: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:40:16.203772: Previous plan best metric is 255.12 (cost 267.07) and new plan best metric is 255.23 (cost 268.81)
2026-08-17 12:40:16.203998: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 12:40:16.205323: Plan valid is now true after recompute was False
2026-08-17 12:40:16.230551: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.04p, metric_keep 278.38kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.11kWh, PV 0.0kWh
2026-08-17 12:40:16.321368: Battery has 14.25 hours left - now at 11.04kWh
2026-08-17 12:40:16.356073: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 619.94p, metric_keep 280.16kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.17kWh, PV 0.0kWh
2026-08-17 12:40:16.425306: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 317.56p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-17 12:40:16.499224: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 313.71p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.11kWh, PV 0.0kWh
2026-08-17 12:40:16.499312: Saving plan best values to HA entities
2026-08-17 12:40:16.639357: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:40:16.644296: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:40:16.651357: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.44kWh, house 0.0kWh, export 0.0kWh, metric 313.71p, metric10 317.56p
2026-08-17 12:40:16.720530: Marginal costs baseline metric (no standing charge): 267.0741
2026-08-17 12:40:16.993838: Marginal energy costs matrix computed: min=8.0 max=26.31
2026-08-17 12:40:17.060768: Rate array import [{'start': 760, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 760, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:40:17.061467: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:40:17.061512: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:40:17.061535: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-17 12:40:17.061554: - For the next 48 hours there will be no solar generation.
2026-08-17 12:40:17.061572: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:40:17.061590: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 12:40:17.061609:
2026-08-17 12:40:17.115876: Plan calculation took 13.70 seconds
2026-08-17 12:40:17.116230: Inverter 0: Type SK Sunsynk
2026-08-17 12:40:17.116275: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:40:17.116554: Reserve min: 7%, battery_min: 7%
2026-08-17 12:40:17.116653: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:40:17.116980: Inverter 0 SoC: 10.97kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 935W, current battery voltage 51.2V, grid power -52W, load power 998W, PV Power 0W
2026-08-17 12:40:17.117220: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:40:17.117318: Inverter 0 scheduled charge enable is False
2026-08-17 12:40:17.117353: Inverter 0 charge windows currently []
2026-08-17 12:40:17.117384: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:40:17.117498: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:40:17.117536: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:40:17.117575: Inverter 0 scheduled discharge enable is False
2026-08-17 12:40:17.117700: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:40:17.117737: Inverter 0 discharge windows currently []
2026-08-17 12:40:17.117759: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:40:17.117778: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:40:17.117802: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:40:17.177040: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-17 12:40:17.177205: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:40:17.177284: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:40:17.177459: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:40:17.177541: No export window planned
2026-08-17 12:40:17.177643: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:40:17.177678: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:40:17.177808: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:40:17.177961: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:40:17.178013: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:40:17.178109: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:40:17.178216: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178255: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178283: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178314: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:40:17.178630: Inverter 0 count register writes 0
2026-08-17 12:40:17.198383: Total inverter register writes now 861
2026-08-17 12:40:17.234552: Info: Completed run status Demand
2026-08-17 12:40:17.239946: Info: record_status Demand
2026-08-17 12:40:17.246011: Saved current settings to /config/predbat_config.json
2026-08-17 12:40:17.246310: Compare, best tariff: current metric 104.68p
2026-08-17 12:40:49.345837: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:40:49.346188: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:40:49.346271: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:40:49.346431: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:40:49.346473: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:40:49.346495: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:40:49.346512: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:42:49.559537: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:42:49.559765: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:42:49.559799: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:42:49.559980: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:42:49.560023: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:42:49.560045: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:42:49.560063: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:45:00.781421: --------------- PredBat - update at 2026-08-17 12:45:00+01:00 with clock skew 0 minutes, minutes now 765
2026-08-17 12:45:00.782250: Saved current settings to /config/predbat_config.json
2026-08-17 12:45:00.782435: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 109.7 minutes
2026-08-17 12:45:00.782548: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:45:00.782647: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:45:00.798350: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:45:00.798443: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:45:00.798576: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:45:00.799047: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:45:00.799141: Predbat mode is set to Control charge & discharge
2026-08-17 12:45:00.957759: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:45:00.957880: Using load_power data to fill gaps in load_today data
2026-08-17 12:45:01.698321: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:45:01.698513: Zero load period starting at 2026-08-17T10:54:00+0100 (111 minutes) for 189 minutes with base value 215.3
2026-08-17 12:45:01.698963: Processing 721 30-minute periods for power integration
2026-08-17 12:45:01.875136: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:45:01.875230: Car charging hold False, threshold 6.0kWh
2026-08-17 12:45:01.875266: Current data so far today: load 6.8kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:45:01.890593: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:45:01.890688: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:45:01.891274: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 12:45:01.891332: Standing charge is set to 46.63p
2026-08-17 12:45:01.973967: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.974440: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.974665: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.974847: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.974983: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.975121: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.975254: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.975390: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.975511: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.975644: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.975789: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.975957: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.976114: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.976280: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.976415: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.976583: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.976769: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.976906: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.977036: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:45:01.977082: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:45:01.977154: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 12:45:01.981821: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:45:01.982151: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 12:45:02.018216: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:45:02.018325: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 12:45:02.019593: High export rate found rates in range 99p to -99p
2026-08-17 12:45:02.097123: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 12:45:02.097222: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:45:02.108049: Battery level now 11.04kWh, -1hr ago 11.68kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today 3.79p, rate_forward 6.87p
2026-08-17 12:45:02.108403: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.85kWh, net cost 0.59p, import 0.59p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:45:02.149849: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:45:02.149971: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:45:02.223525: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:45:02.247135: Today's load divergence 99.16%, in-day adjustment 84.75%, damping 0.95x, yesterday 68.37% today 99.2% blend 46.88%
2026-08-17 12:45:02.247208: Today's predicted so far 8.11kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 8.11kWh forecast extra.
2026-08-17 12:45:02.247234: Today's actual load so far 7.98kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 12:45:02.278188: Inverter 0: Type SK Sunsynk
2026-08-17 12:45:02.278256: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:45:02.278392: Reserve min: 7%, battery_min: 7%
2026-08-17 12:45:02.278441: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:45:02.278659: Inverter 0 SoC: 10.97kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power 944W, current battery voltage 51.2V, grid power -55W, load power 984W, PV Power 0W
2026-08-17 12:45:02.278793: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:45:02.278857: Inverter 0 scheduled charge enable is False
2026-08-17 12:45:02.278886: Inverter 0 charge windows currently []
2026-08-17 12:45:02.278908: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:45:02.279022: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:45:02.279060: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:45:02.279089: Inverter 0 scheduled discharge enable is False
2026-08-17 12:45:02.279191: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:45:02.279242: Inverter 0 discharge windows currently []
2026-08-17 12:45:02.279260: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:45:02.279275: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:45:02.279289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:45:02.327758: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:45:02.327861: Plan was last updated on 2026-08-17 12:40:00+01:00 and is now 5.0 minutes old
2026-08-17 12:45:02.328097: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:45:02.328143: Best export window [ ]
2026-08-17 12:45:02.328980: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:45:02.332183: Load divergence over 8.0 hours mean 541.64W, min 339.0W, max 1421.4W, std dev 254.29W, divergence 23.47%
2026-08-17 12:45:02.350579: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:45:02.350678: LoadML is_calculating False
2026-08-17 12:45:02.350754: Creating pool of 12 processes to match your CPU count
2026-08-17 12:45:02.453362: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.24p, metric_keep 278.62kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.24kWh, PV 0.0kWh
2026-08-17 12:45:02.562367: Battery has 14.17 hours left - now at 10.97kWh
2026-08-17 12:45:02.609081: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.13p, metric_keep 280.41kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.31kWh, PV 0.0kWh
2026-08-17 12:45:02.686669: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 321.08p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-17 12:45:02.765432: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 317.75p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.24kWh, PV 0.0kWh
2026-08-17 12:45:02.765516: Saving plan best values to HA entities
2026-08-17 12:45:02.925446: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:45:02.930355: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:45:02.935233: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.94kWh, house 0.0kWh, export 0.0kWh, metric 317.75p, metric10 321.08p
2026-08-17 12:45:03.007056: Marginal costs baseline metric (no standing charge): 271.1171
2026-08-17 12:45:03.274597: Marginal energy costs matrix computed: min=8.0 max=25.82
2026-08-17 12:45:03.345918: Rate array import [{'start': 765, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 765, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:45:03.346646: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:45:03.346689: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:45:03.346711: - The battery is currently at 69% and is in eco mode for the next 10 hours.
2026-08-17 12:45:03.346746: - For the next 48 hours there will be no solar generation.
2026-08-17 12:45:03.346769: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:45:03.346808: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 12:45:03.346826:
2026-08-17 12:45:03.400104: Plan calculation took 1.07 seconds
2026-08-17 12:45:03.402922: No high rate period found
2026-08-17 12:45:03.447888: Import threshold used for optimisation was 8.0p
2026-08-17 12:45:03.497599: Low import rate windows [0: 08-17 12:30:00 - 08-17 13:00:00 @ 33.75, 1: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 2: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 3: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 4: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 5: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 6: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 7: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 8: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 9: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 10: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 11: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 12: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 13: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 14: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 15: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 16: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 17: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 18: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 19: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 20: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 21: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 22: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 23: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 24: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 25: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 26: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 27: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 28: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 29: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 30: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 31: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 32: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 33: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 34: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 35: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 36: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 37: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 38: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 39: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 40: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 41: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 42: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 43: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 44: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 45: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 46: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 47: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 48: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 49: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 50: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 51: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 52: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 53: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 54: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 55: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 56: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 57: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 58: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 59: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 60: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 61: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 62: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 63: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 64: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 65: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 66: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 67: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 68: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 69: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 70: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 71: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 72: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 73: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 74: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 75: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 76: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 77: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 78: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 79: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 80: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 81: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 82: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 83: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 84: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 85: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 86: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 87: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 88: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 89: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 90: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 91: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 92: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 93: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 94: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75]
2026-08-17 12:45:03.503489: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 69%, target 100%
2026-08-17 12:45:03.503614: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:45:03.503732: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:45:03.504026: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:45:03.504119: No export window planned
2026-08-17 12:45:03.504235: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:45:03.504270: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:45:03.504403: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:45:03.504572: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:45:03.504631: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:45:03.504711: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:45:03.504839: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.504879: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.504908: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.504939: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.504965: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.504989: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505019: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505254: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505281: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:45:03.505306: Inverter 0 count register writes 0
2026-08-17 12:45:03.519649: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 12:45:03.524367: Total inverter register writes now 861
2026-08-17 12:45:03.554520: Info: Completed run status Demand
2026-08-17 12:45:03.559927: Info: record_status Demand
2026-08-17 12:45:03.565832: Saved current settings to /config/predbat_config.json
2026-08-17 12:45:03.566132: Compare, best tariff: current metric 104.68p
2026-08-17 12:45:33.664945: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:45:33.665190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:45:33.665237: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:45:33.665380: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:45:33.665422: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:45:33.665443: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:45:33.665461: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:47:33.874533: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:47:33.874775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:47:33.874810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:47:33.874938: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:47:33.874977: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:47:33.874998: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:47:33.875037: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:49:34.099941: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:49:34.100171: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:49:34.100204: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:49:34.100311: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:49:34.100343: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:49:34.100360: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:49:34.100383: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:50:00.201757: --------------- PredBat - update at 2026-08-17 12:50:00+01:00 with clock skew 0 minutes, minutes now 770
2026-08-17 12:50:00.202530: Saved current settings to /config/predbat_config.json
2026-08-17 12:50:00.202659: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 114.6 minutes
2026-08-17 12:50:00.202743: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:50:00.202868: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:50:00.222255: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:50:00.222412: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:50:00.222599: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:50:00.223081: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:50:00.223196: Predbat mode is set to Control charge & discharge
2026-08-17 12:50:00.422781: Found 21602 load_today datapoints going back 28 days
2026-08-17 12:50:00.422922: Using load_power data to fill gaps in load_today data
2026-08-17 12:50:01.279655: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:50:01.279858: Zero load period starting at 2026-08-17T10:54:00+0100 (116 minutes) for 189 minutes with base value 215.275
2026-08-17 12:50:01.280404: Processing 721 30-minute periods for power integration
2026-08-17 12:50:01.485359: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:50:01.485496: Car charging hold False, threshold 6.0kWh
2026-08-17 12:50:01.485552: Current data so far today: load 6.75kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:50:01.506614: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:50:01.506729: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:50:01.507514: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 12:50:01.507591: Standing charge is set to 46.63p
2026-08-17 12:50:01.598649: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.600116: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.600327: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.600536: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.600740: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.600910: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.601080: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.601247: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.601413: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.601597: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.601757: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.601920: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.602078: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.602233: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.602387: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.602563: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.602719: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.602891: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.603047: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:50:01.603105: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:50:01.603196: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 12:50:01.608260: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:50:01.608621: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 12:50:01.644266: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:50:01.644359: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 12:50:01.645469: High export rate found rates in range 99p to -99p
2026-08-17 12:50:01.744317: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 12:50:01.744473: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:50:01.756172: Battery level now 10.97kWh, -1hr ago 11.66kWh, at midnight 10.49kWh, battery value change in the last hour -4.73p, change today 3.3p, rate_forward 6.87p
2026-08-17 12:50:01.756562: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.78kWh, net cost 0.3p, import 0.3p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:50:01.808621: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:50:01.808751: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:50:01.894314: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:50:01.919806: Today's load divergence 98.59%, in-day adjustment 84.56%, damping 0.95x, yesterday 68.37% today 98.66% blend 46.53%
2026-08-17 12:50:01.920027: Today's predicted so far 8.16kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 8.16kWh forecast extra.
2026-08-17 12:50:01.920076: Today's actual load so far 7.94kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 12:50:01.956198: Inverter 0: Type SK Sunsynk
2026-08-17 12:50:01.956284: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:50:01.956479: Reserve min: 7%, battery_min: 7%
2026-08-17 12:50:01.956558: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:50:01.956809: Inverter 0 SoC: 10.88kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 955W, current battery voltage 51.2V, grid power -55W, load power 1020W, PV Power 0W
2026-08-17 12:50:01.956957: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:50:01.957042: Inverter 0 scheduled charge enable is False
2026-08-17 12:50:01.957079: Inverter 0 charge windows currently []
2026-08-17 12:50:01.957105: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:50:01.957208: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:50:01.957244: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:50:01.957279: Inverter 0 scheduled discharge enable is False
2026-08-17 12:50:01.957397: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:50:01.957447: Inverter 0 discharge windows currently []
2026-08-17 12:50:01.957471: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:50:01.957489: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:50:01.957511: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:50:02.017462: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:50:02.017565: Plan was last updated on 2026-08-17 12:40:00+01:00 and is now 10.0 minutes old
2026-08-17 12:50:02.017788: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:50:02.017830: Best export window [ ]
2026-08-17 12:50:02.018668: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:50:02.021795: Load divergence over 8.0 hours mean 534.11W, min 370.8W, max 1339.2W, std dev 234.24W, divergence 21.93%
2026-08-17 12:50:02.040384: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:50:02.040496: LoadML is_calculating False
2026-08-17 12:50:02.040557: Creating pool of 12 processes to match your CPU count
2026-08-17 12:50:02.144376: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 598.73p, metric_keep 278.91kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.2kWh, PV 0.0kWh
2026-08-17 12:50:02.276095: Battery has 14.08 hours left - now at 10.88kWh
2026-08-17 12:50:02.319377: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.65p, metric_keep 280.69kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.27kWh, PV 0.0kWh
2026-08-17 12:50:02.392975: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 324.66p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.27kWh, PV 0.0kWh
2026-08-17 12:50:02.466630: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 321.89p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.2kWh, PV 0.0kWh
2026-08-17 12:50:02.466736: Saving plan best values to HA entities
2026-08-17 12:50:02.631132: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:50:02.639193: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:50:02.645634: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.46kWh, house 0.0kWh, export 0.0kWh, metric 321.89p, metric10 324.66p
2026-08-17 12:50:02.726896: Marginal costs baseline metric (no standing charge): 275.2581
2026-08-17 12:50:02.998261: Marginal energy costs matrix computed: min=8.0 max=25.34
2026-08-17 12:50:03.069024: Rate array import [{'start': 770, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 770, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:50:03.069833: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:50:03.069882: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:50:03.069917: - The battery is currently at 68% and is in eco mode for the next 10 hours.
2026-08-17 12:50:03.069954: - For the next 48 hours there will be no solar generation.
2026-08-17 12:50:03.069985: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:50:03.070010: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 12:50:03.070043:
2026-08-17 12:50:03.122984: Plan calculation took 1.11 seconds
2026-08-17 12:50:03.127153: No high rate period found
2026-08-17 12:50:03.173718: Import threshold used for optimisation was 8.0p
2026-08-17 12:50:03.221997: Low import rate windows [0: 08-17 12:30:00 - 08-17 13:00:00 @ 33.75, 1: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 2: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 3: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 4: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 5: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 6: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 7: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 8: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 9: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 10: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 11: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 12: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 13: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 14: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 15: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 16: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 17: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 18: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 19: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 20: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 21: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 22: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 23: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 24: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 25: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 26: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 27: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 28: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 29: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 30: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 31: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 32: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 33: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 34: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 35: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 36: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 37: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 38: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 39: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 40: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 41: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 42: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 43: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 44: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 45: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 46: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 47: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 48: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 49: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 50: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 51: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 52: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 53: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 54: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 55: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 56: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 57: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 58: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 59: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 60: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 61: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 62: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 63: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 64: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 65: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 66: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 67: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 68: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 69: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 70: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 71: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 72: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 73: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 74: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 75: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 76: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 77: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 78: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 79: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 80: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 81: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 82: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 83: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 84: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 85: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 86: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 87: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 88: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 89: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 90: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 91: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 92: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 93: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 94: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75]
2026-08-17 12:50:03.226657: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 68%, target 100%
2026-08-17 12:50:03.226755: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:50:03.226846: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:50:03.227085: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:50:03.227164: No export window planned
2026-08-17 12:50:03.227287: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:50:03.227316: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:50:03.227440: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:50:03.227588: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:50:03.227638: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:50:03.227696: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:50:03.227766: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.227804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.227849: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.227877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.227928: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.227956: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.227976: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228028: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228104: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:03.228183: Inverter 0 count register writes 0
2026-08-17 12:50:03.240576: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 12:50:03.240705: Recompute is saving previous plan...
2026-08-17 12:50:03.243259: Best charge window [ 17-08 12:30:00 - 17-08 13:00:00 @ 33.75p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0% ]
2026-08-17 12:50:03.243321: Best export window [ ]
2026-08-17 12:50:03.244104: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:50:03.246687: Load divergence over 8.0 hours mean 534.11W, min 370.8W, max 1339.2W, std dev 234.24W, divergence 21.93%
2026-08-17 12:50:03.261533: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:50:03.261639: LoadML is_calculating False
2026-08-17 12:50:03.261706: Creating pool of 12 processes to match your CPU count
2026-08-17 12:50:03.327103: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 12:50:03.328680: Optimise levels pass started at 2026-08-17 12:50:03
2026-08-17 12:50:03.328728: Optimise all windows, total charge 94 export 1
2026-08-17 12:50:03.698908: >> Region optimisation pass width 960 gives best_metric 347.19p, best_cost 411.17p, best_cycle 46.65kWh, best_import 33.45kWh
2026-08-17 12:50:03.897830: >> Region optimisation pass width 480 gives best_metric 347.19p, best_cost 411.17p, best_cycle 46.65kWh, best_import 33.45kWh
2026-08-17 12:50:04.656708: >> Region optimisation pass width 240 gives best_metric 337.66p, best_cost 349.0p, best_cycle 45.3kWh, best_import 25.68kWh
2026-08-17 12:50:05.743547: >> Region optimisation pass width 120 gives best_metric 337.66p, best_cost 349.0p, best_cycle 45.3kWh, best_import 25.68kWh
2026-08-17 12:50:05.743825: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 68
2026-08-17 12:50:05.743990: Optimise levels pass ended at 2026-08-17 12:50:05, duration 2.4 seconds tried 262 combinations
2026-08-17 12:50:05.744155: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 337.66p, best_keep 0.09kWh, best_cycle 45.3kWh, best_carbon 0kg, best_import 25.68kWh
2026-08-17 12:50:05.764515: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.25, 15.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 12:50:10.413204: Tweak plan optimisation started metric 255.16p, cost 268.74p
2026-08-17 12:50:10.712127: Tweak optimisation finished metric 255.16p, cost 268.74p, metric_keep 0kWh, cycle 29.7kWh, carbon 0kg, import 15.64kWh, changed 8 window(s)
2026-08-17 12:50:10.732471: Swap charge optimisation started metric 255.16p, cost 268.74p, min_improvement_swap 0.1p
2026-08-17 12:50:16.340772: Swap charge optimisation finished metric 255.16p, cost 268.74p
2026-08-17 12:50:16.461957: Raw charge windows [ 17-08 12:30:00 - 17-08 13:00:00 @ 33.75p 0%, 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:50:16.462544: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:50:16.462769: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:50:16.462939: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 12:50:16.499631: Previous plan best metric is 255.05 (cost 266.97) and new plan best metric is 255.16 (cost 268.74)
2026-08-17 12:50:16.499846: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 12:50:16.500023: Plan valid is now true after recompute was False
2026-08-17 12:50:16.529543: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.1p, metric_keep 278.32kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.0kWh, PV 0.0kWh
2026-08-17 12:50:16.676135: Battery has 14.08 hours left - now at 10.88kWh
2026-08-17 12:50:16.718708: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 619.95p, metric_keep 280.11kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.06kWh, PV 0.0kWh
2026-08-17 12:50:16.782689: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 317.4p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.06kWh, PV 0.0kWh
2026-08-17 12:50:16.851813: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 313.6p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.0kWh, PV 0.0kWh
2026-08-17 12:50:16.851968: Saving plan best values to HA entities
2026-08-17 12:50:16.985264: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:50:16.990157: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:50:16.995333: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.42kWh, house 0.0kWh, export 0.0kWh, metric 313.6p, metric10 317.4p
2026-08-17 12:50:17.071284: Marginal costs baseline metric (no standing charge): 266.9658
2026-08-17 12:50:17.366142: Marginal energy costs matrix computed: min=8.0 max=25.34
2026-08-17 12:50:17.439623: Rate array import [{'start': 770, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 770, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:50:17.440366: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 12:50:17.440430: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:50:17.440456: - The battery is currently at 68% and is in eco mode for the next 10 hours.
2026-08-17 12:50:17.440475: - For the next 48 hours there will be no solar generation.
2026-08-17 12:50:17.440495: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:50:17.440512: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 12:50:17.440538:
2026-08-17 12:50:17.500736: Plan calculation took 14.26 seconds
2026-08-17 12:50:17.501053: Inverter 0: Type SK Sunsynk
2026-08-17 12:50:17.501097: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:50:17.501292: Reserve min: 7%, battery_min: 7%
2026-08-17 12:50:17.501390: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:50:17.501717: Inverter 0 SoC: 10.81kW 68%, current charge rate 5000W, current discharge rate 5250W, current battery power 962W, current battery voltage 51.2V, grid power -54W, load power 1023W, PV Power 0W
2026-08-17 12:50:17.501938: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:50:17.502031: Inverter 0 scheduled charge enable is False
2026-08-17 12:50:17.502059: Inverter 0 charge windows currently []
2026-08-17 12:50:17.502089: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:50:17.502201: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:50:17.502238: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:50:17.502277: Inverter 0 scheduled discharge enable is False
2026-08-17 12:50:17.502397: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:50:17.502456: Inverter 0 discharge windows currently []
2026-08-17 12:50:17.502486: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:50:17.502506: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:50:17.502524: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:50:17.563535: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 68%, target 100%
2026-08-17 12:50:17.563724: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:50:17.563803: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:50:17.564050: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:50:17.564165: No export window planned
2026-08-17 12:50:17.564275: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:50:17.564311: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:50:17.564466: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:50:17.564628: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:50:17.564681: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:50:17.564738: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:50:17.564821: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.564861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.564890: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.564917: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.564941: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.564970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.564996: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565215: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:50:17.565240: Inverter 0 count register writes 0
2026-08-17 12:50:17.588267: Total inverter register writes now 861
2026-08-17 12:50:17.621156: Info: Completed run status Demand
2026-08-17 12:50:17.627654: Info: record_status Demand
2026-08-17 12:50:17.634384: Saved current settings to /config/predbat_config.json
2026-08-17 12:50:17.634698: Compare, best tariff: current metric 104.68p
2026-08-17 12:50:48.740216: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:50:48.740431: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:50:48.740467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:50:48.740578: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:50:48.740610: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:50:48.740627: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:50:48.740641: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:52:48.953470: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:52:48.953788: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:52:48.953841: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:52:48.954044: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:52:48.954088: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:52:48.954115: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:52:48.954157: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:54:11.574601: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 12:54:12.470961: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:54:12.471125: Zero load period starting at 2026-08-17T10:54:00+0100 (116 minutes) for 189 minutes with base value 412.45
2026-08-17 12:54:12.471450: Processing 1345 30-minute periods for power integration
2026-08-17 12:54:12.556180: ML Component: Car charging hold False, car energy reported load False
2026-08-17 12:54:12.638316: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:54:12.723706: ML Temperature data points: 49631
2026-08-17 12:54:12.941908: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 12:54:12.973659: ML Component: Data fetch completed, load data age 58.0 days, 16978 data points
2026-08-17 12:54:12.973768: ML Component: No training needed, model age is 1.42 hours
2026-08-17 12:54:12.973819: ML Component: Generating predictions load data age 58.0 days, 16978 data points
2026-08-17 12:54:13.085270: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0738 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 12:54:13.436586: ML Component: Generated 576 predictions (total 24.71 kWh over 48h)
2026-08-17 12:54:13.468137: ML Component: Prediction cycle completed
2026-08-17 12:54:13.569738: ML Component: Saved 16978 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 12:54:38.336643: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 12:54:38.531556: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 12:54:44.549331: Info: HAHistory: Pruning history data started.
2026-08-17 12:54:44.551769: Info: HAHistory: Pruning history data completed.
2026-08-17 12:54:49.168134: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:54:49.168392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:54:49.168464: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:54:49.168580: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:54:49.168641: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:54:49.168658: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:54:49.168672: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:55:00.244982: --------------- PredBat - update at 2026-08-17 12:55:00+01:00 with clock skew 0 minutes, minutes now 775
2026-08-17 12:55:00.245743: Saved current settings to /config/predbat_config.json
2026-08-17 12:55:00.245862: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 119.6 minutes
2026-08-17 12:55:00.245932: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 12:55:00.246022: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 12:55:00.263323: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 12:55:00.263467: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 12:55:00.263663: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 12:55:00.264301: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 12:55:00.264492: Predbat mode is set to Control charge & discharge
2026-08-17 12:55:00.429280: Found 21602 load_today datapoints going back 27 days
2026-08-17 12:55:00.429393: Using load_power data to fill gaps in load_today data
2026-08-17 12:55:01.086638: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 12:55:01.087249: Zero load period starting at 2026-08-17T10:54:00+0100 (121 minutes) for 189 minutes with base value 215.25
2026-08-17 12:55:01.087552: Processing 721 30-minute periods for power integration
2026-08-17 12:55:01.240387: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 12:55:01.240497: Car charging hold False, threshold 6.0kWh
2026-08-17 12:55:01.240533: Current data so far today: load 6.8kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 12:55:01.254709: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 12:55:01.254789: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 12:55:01.255373: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 12:55:01.255431: Standing charge is set to 46.63p
2026-08-17 12:55:01.343401: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.343647: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.343876: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.344177: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.344371: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.344590: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.344765: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.344958: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.345140: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.345324: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.345484: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.345646: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.345829: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.345988: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.346143: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.346322: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.346508: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.346666: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.346823: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 12:55:01.346882: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 12:55:01.346965: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 12:55:01.353797: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 12:55:01.354277: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 12:55:01.398215: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 12:55:01.398332: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 12:55:01.399633: High export rate found rates in range 99p to -99p
2026-08-17 12:55:01.479695: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 12:55:01.479816: Car 0 on Octopus Intelligent, no active plan
2026-08-17 12:55:01.491058: Battery level now 10.88kWh, -1hr ago 11.52kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today 2.69p, rate_forward 6.87p
2026-08-17 12:55:01.491365: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 12:55:01.532701: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 12:55:01.532811: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 12:55:01.615697: Using weighted-bucket historical load forecast over 14 days
2026-08-17 12:55:01.645605: Today's load divergence 98.65%, in-day adjustment 84.7%, damping 0.95x, yesterday 68.37% today 98.71% blend 46.18%
2026-08-17 12:55:01.645725: Today's predicted so far 8.21kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 8.21kWh forecast extra.
2026-08-17 12:55:01.645932: Today's actual load so far 8.0kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 12:55:01.694426: Inverter 0: Type SK Sunsynk
2026-08-17 12:55:01.694551: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 12:55:01.694732: Reserve min: 7%, battery_min: 7%
2026-08-17 12:55:01.694838: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 12:55:01.695155: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 911W, current battery voltage 51.2V, grid power -56W, load power 975W, PV Power 0W
2026-08-17 12:55:01.696199: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:55:01.696310: Inverter 0 scheduled charge enable is False
2026-08-17 12:55:01.696348: Inverter 0 charge windows currently []
2026-08-17 12:55:01.698026: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 12:55:01.699325: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:55:01.699447: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:55:01.699498: Inverter 0 scheduled discharge enable is False
2026-08-17 12:55:01.699641: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:55:01.699706: Inverter 0 discharge windows currently []
2026-08-17 12:55:01.699757: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:55:01.699797: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:55:01.699931: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:55:01.778902: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 12:55:01.778988: Plan was last updated on 2026-08-17 12:50:00+01:00 and is now 5.0 minutes old
2026-08-17 12:55:01.779179: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 12:55:01.779213: Best export window [ ]
2026-08-17 12:55:01.779820: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 12:55:01.782397: Load divergence over 8.0 hours mean 530.09W, min 384.0W, max 1309.8W, std dev 220.03W, divergence 20.75%
2026-08-17 12:55:01.797514: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 12:55:01.797605: LoadML is_calculating False
2026-08-17 12:55:01.797654: Creating pool of 12 processes to match your CPU count
2026-08-17 12:55:01.896850: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.87p, metric_keep 279.04kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.1kWh, PV 0.0kWh
2026-08-17 12:55:02.021610: Battery has 13.83 hours left - now at 10.72kWh
2026-08-17 12:55:02.066981: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.78p, metric_keep 280.78kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.17kWh, PV 0.0kWh
2026-08-17 12:55:02.137864: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 321.88p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-17 12:55:02.219096: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 318.54p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.1kWh, PV 0.0kWh
2026-08-17 12:55:02.219186: Saving plan best values to HA entities
2026-08-17 12:55:02.367565: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 12:55:02.372521: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 12:55:02.377909: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.04kWh, house 0kWh, export 0.0kWh, metric 318.54p, metric10 321.88p
2026-08-17 12:55:02.445664: Marginal costs baseline metric (no standing charge): 271.9046
2026-08-17 12:55:02.690439: Marginal energy costs matrix computed: min=8.0 max=25.16
2026-08-17 12:55:02.775524: Rate array import [{'start': 775, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 775, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 12:55:02.776234: - Your estimated bill for today is £1.68 and tomorrow is £1.72
2026-08-17 12:55:02.776281: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 12:55:02.776301: - The battery is currently at 67% and is in eco mode for the next 10 hours.
2026-08-17 12:55:02.776316: - For the next 48 hours there will be no solar generation.
2026-08-17 12:55:02.776330: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 12:55:02.776344: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 12:55:02.776358:
2026-08-17 12:55:02.825874: Plan calculation took 1.05 seconds
2026-08-17 12:55:02.829352: No high rate period found
2026-08-17 12:55:02.875227: Import threshold used for optimisation was 8.0p
2026-08-17 12:55:02.925667: Low import rate windows [0: 08-17 12:30:00 - 08-17 13:00:00 @ 33.75, 1: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 2: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 3: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 4: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 5: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 6: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 7: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 8: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 9: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 10: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 11: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 12: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 13: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 14: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 15: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 16: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 17: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 18: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 19: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 20: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 21: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 22: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 23: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 24: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 25: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 26: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 27: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 28: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 29: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 30: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 31: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 32: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 33: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 34: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 35: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 36: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 37: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 38: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 39: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 40: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 41: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 42: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 43: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 44: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 45: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 46: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 47: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 48: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 49: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 50: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 51: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 52: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 53: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 54: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 55: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 56: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 57: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 58: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 59: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 60: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 61: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 62: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 63: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 64: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 65: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 66: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 67: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 68: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 69: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 70: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 71: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 72: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 73: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 74: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 75: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 76: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 77: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 78: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 79: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 80: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 81: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 82: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 83: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 84: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 85: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 86: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 87: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 88: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 89: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 90: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 91: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 92: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 93: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 94: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75]
2026-08-17 12:55:02.931361: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 12:55:02.931476: Inverter 0 disabled charge window while waiting for schedule (now 08-17 12:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 12:55:02.931581: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:55:02.931828: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:55:02.931941: No export window planned
2026-08-17 12:55:02.932085: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 12:55:02.932120: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 12:55:02.932273: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 12:55:02.932445: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 12:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 12:55:02.932505: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 12:55:02.932569: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 12:55:02.932654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932693: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932753: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932831: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932953: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.932979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.933003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.933045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.933072: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 12:55:02.933099: Inverter 0 count register writes 0
2026-08-17 12:55:02.947884: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 12:55:02.952690: Total inverter register writes now 861
2026-08-17 12:55:02.980786: Info: Completed run status Demand
2026-08-17 12:55:02.986694: Info: record_status Demand
2026-08-17 12:55:02.992944: Saved current settings to /config/predbat_config.json
2026-08-17 12:55:02.993302: Compare, best tariff: current metric 104.68p
2026-08-17 12:55:34.085989: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:55:34.086239: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:55:34.086288: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:55:34.086429: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:55:34.086471: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:55:34.086493: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:55:34.086515: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:57:34.303456: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:57:34.303683: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:57:34.303724: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:57:34.303876: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:57:34.303947: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:57:34.303975: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:57:34.304026: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 12:59:34.538445: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 12:59:34.538641: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 12:59:34.538670: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 12:59:34.538776: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 12:59:34.538808: Note: Inverter does not support discharge freeze - disabled
2026-08-17 12:59:34.538826: Note: Inverter does not support charge freeze - disabled
2026-08-17 12:59:34.538840: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:00:00.632913: --------------- PredBat - update at 2026-08-17 13:00:00+01:00 with clock skew 0 minutes, minutes now 780
2026-08-17 13:00:00.633844: Saved current settings to /config/predbat_config.json
2026-08-17 13:00:01.054089: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:00:01.054217: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:00:01.073075: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:00:01.073193: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:00:01.073350: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:00:01.073874: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:00:01.074012: Predbat mode is set to Control charge & discharge
2026-08-17 13:00:01.249871: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:00:01.250005: Using load_power data to fill gaps in load_today data
2026-08-17 13:00:01.998346: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:00:01.998520: Zero load period starting at 2026-08-17T10:54:00+0100 (126 minutes) for 189 minutes with base value 215.225
2026-08-17 13:00:01.998835: Processing 721 30-minute periods for power integration
2026-08-17 13:00:02.174266: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:00:02.174375: Car charging hold False, threshold 6.0kWh
2026-08-17 13:00:02.174411: Current data so far today: load 7.0kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:00:02.190365: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:00:02.190460: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:00:02.191094: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:00:02.191161: Standing charge is set to 46.63p
2026-08-17 13:00:02.274716: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.274955: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.275114: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.275259: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.275399: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.275538: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.275678: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.275810: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.275986: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.276127: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.276259: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.276393: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.276524: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.276654: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.276807: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.276953: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.277085: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.277216: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.277346: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:00:02.277393: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:00:02.277463: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:00:02.281814: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:00:02.282136: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:00:02.317291: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:00:02.317387: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:00:02.318446: High export rate found rates in range 99p to -99p
2026-08-17 13:00:02.392423: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:00:02.392549: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:00:02.403981: Battery level now 10.72kWh, -1hr ago 11.52kWh, at midnight 10.49kWh, battery value change in the last hour -5.5p, change today 1.59p, rate_forward 6.87p
2026-08-17 13:00:02.404373: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:00:02.454528: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:00:02.454669: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:00:02.525144: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:00:02.545709: Today's load divergence 99.05%, in-day adjustment 85.01%, damping 0.95x, yesterday 68.37% today 99.1% blend 45.83%
2026-08-17 13:00:02.545786: Today's predicted so far 8.37kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 8.37kWh forecast extra.
2026-08-17 13:00:02.545811: Today's actual load so far 8.22kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 13:00:02.578232: Inverter 0: Type SK Sunsynk
2026-08-17 13:00:02.578318: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:00:02.578493: Reserve min: 7%, battery_min: 7%
2026-08-17 13:00:02.578569: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:00:02.578847: Inverter 0 SoC: 10.72kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 681W, current battery voltage 51.2V, grid power -56W, load power 732W, PV Power 0W
2026-08-17 13:00:02.579091: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:00:02.579224: Inverter 0 scheduled charge enable is False
2026-08-17 13:00:02.579266: Inverter 0 charge windows currently []
2026-08-17 13:00:02.579457: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:00:02.579606: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:00:02.579702: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:00:02.579776: Inverter 0 scheduled discharge enable is False
2026-08-17 13:00:02.580029: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:00:02.580078: Inverter 0 discharge windows currently []
2026-08-17 13:00:02.580103: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:00:02.580126: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:00:02.580144: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:00:02.633717: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:00:02.633813: Plan was last updated on 2026-08-17 12:50:00+01:00 and is now 10.0 minutes old
2026-08-17 13:00:02.634049: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:00:02.634094: Best export window [ ]
2026-08-17 13:00:02.634912: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:00:02.638135: Load divergence over 8.0 hours mean 521.19W, min 359.4W, max 1273.8W, std dev 200.7W, divergence 19.25%
2026-08-17 13:00:02.655063: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:00:02.655162: LoadML is_calculating False
2026-08-17 13:00:02.655226: Creating pool of 12 processes to match your CPU count
2026-08-17 13:00:02.756740: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 599.11p, metric_keep 279.2kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.36kWh, PV 0.0kWh
2026-08-17 13:00:02.914787: Battery has 13.83 hours left - now at 10.72kWh
2026-08-17 13:00:02.972822: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.99p, metric_keep 280.91kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.42kWh, PV 0.0kWh
2026-08-17 13:00:03.069789: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 325.08p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 13:00:03.148396: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 322.38p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.36kWh, PV 0.0kWh
2026-08-17 13:00:03.148483: Saving plan best values to HA entities
2026-08-17 13:00:03.321124: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:00:03.326300: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:00:03.331018: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.52kWh, house 0.0kWh, export 0.0kWh, metric 322.38p, metric10 325.08p
2026-08-17 13:00:03.398380: Marginal costs baseline metric (no standing charge): 275.7435
2026-08-17 13:00:03.659617: Marginal energy costs matrix computed: min=7.99 max=24.51
2026-08-17 13:00:03.728150: Rate array import [{'start': 780, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 780, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:00:03.728731: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:00:03.728767: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:00:03.728785: - The battery is currently at 67% and is in eco mode for the next 10 hours.
2026-08-17 13:00:03.728801: - For the next 48 hours there will be no solar generation.
2026-08-17 13:00:03.728815: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:00:03.728851: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:00:03.728865:
2026-08-17 13:00:03.785234: Plan calculation took 1.15 seconds
2026-08-17 13:00:03.788813: No high rate period found
2026-08-17 13:00:03.835444: Import threshold used for optimisation was 8.0p
2026-08-17 13:00:03.890132: Low import rate windows [0: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 1: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 2: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 3: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 4: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 5: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 6: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 7: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 8: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 9: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 10: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 11: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 12: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 13: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 14: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 15: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 16: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 17: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 18: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 19: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 20: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 21: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 22: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 23: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 24: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 25: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 26: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 27: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 28: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 29: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 30: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 31: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 32: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 33: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 34: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 35: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 36: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 37: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 38: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 39: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 40: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 41: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 42: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 43: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 44: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 45: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 46: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 47: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 48: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 49: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 50: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 51: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 52: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 53: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 54: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 55: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 56: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 57: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 58: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 59: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 60: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 61: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 62: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 63: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 64: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 65: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 66: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 67: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 68: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 69: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 70: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 71: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 72: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 73: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 74: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 75: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 76: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 77: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 78: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 79: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 80: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 81: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 82: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 83: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 84: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 85: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 86: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 87: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 88: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 89: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 90: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 91: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 92: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 93: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75]
2026-08-17 13:00:03.896181: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 13:00:03.896316: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:00:03.896412: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:00:03.896707: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:00:03.896798: No export window planned
2026-08-17 13:00:03.896943: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:00:03.897001: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:00:03.897251: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:00:03.897447: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:00:03.897512: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:00:03.897571: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:00:03.897661: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.897731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.897777: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.897830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.897882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.897911: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.897956: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898091: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:03.898268: Inverter 0 count register writes 0
2026-08-17 13:00:03.914403: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 13:00:03.914580: Recompute is saving previous plan...
2026-08-17 13:00:03.917725: Best charge window [ 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0% ]
2026-08-17 13:00:03.917814: Best export window [ ]
2026-08-17 13:00:03.918655: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:00:03.921863: Load divergence over 8.0 hours mean 521.19W, min 359.4W, max 1273.8W, std dev 200.7W, divergence 19.25%
2026-08-17 13:00:03.940045: Calculating data from yesterday for savings calculation
2026-08-17 13:00:03.952862: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 13:00:04.001829: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 13:00:04.019240: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 13:00:04.043715: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 13:00:04.082784: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 13:00:04.158094: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 13:00:04.158243: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 13:00:04.168116: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:00:04.168224: LoadML is_calculating False
2026-08-17 13:00:04.168303: Creating pool of 12 processes to match your CPU count
2026-08-17 13:00:04.265879: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 13:00:04.268439: Optimise levels pass started at 2026-08-17 13:00:04
2026-08-17 13:00:04.268839: Optimise all windows, total charge 94 export 1
2026-08-17 13:00:04.927036: >> Region optimisation pass width 960 gives best_metric 348.84p, best_cost 411.76p, best_cycle 46.76kWh, best_import 33.52kWh
2026-08-17 13:00:05.128994: >> Region optimisation pass width 480 gives best_metric 348.51p, best_cost 407.54p, best_cycle 47.31kWh, best_import 33.0kWh
2026-08-17 13:00:05.748619: >> Region optimisation pass width 240 gives best_metric 339.74p, best_cost 350.86p, best_cycle 45.46kWh, best_import 25.91kWh
2026-08-17 13:00:06.807953: >> Region optimisation pass width 120 gives best_metric 339.74p, best_cost 350.86p, best_cycle 45.46kWh, best_import 25.91kWh
2026-08-17 13:00:06.808218: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 67
2026-08-17 13:00:06.808289: Optimise levels pass ended at 2026-08-17 13:00:06, duration 2.5 seconds tried 234 combinations
2026-08-17 13:00:06.808379: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 339.74p, best_keep 0.12kWh, best_cycle 45.46kWh, best_carbon 0kg, best_import 25.91kWh
2026-08-17 13:00:06.829233: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 13:00:11.958067: Tweak plan optimisation started metric 255.73p, cost 269.27p
2026-08-17 13:00:12.289567: Tweak optimisation finished metric 255.73p, cost 269.27p, metric_keep 0kWh, cycle 29.66kWh, carbon 0kg, import 15.71kWh, changed 8 window(s)
2026-08-17 13:00:12.309107: Swap charge optimisation started metric 255.73p, cost 269.27p, min_improvement_swap 0.1p
2026-08-17 13:00:17.738986: Swap charge optimisation finished metric 255.73p, cost 269.27p
2026-08-17 13:00:17.866456: Raw charge windows [ 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:00:17.867042: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:00:17.867269: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:00:17.867440: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 13:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:00:17.905682: Previous plan best metric is 255.62 (cost 267.56) and new plan best metric is 255.73 (cost 269.27)
2026-08-17 13:00:17.905924: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 13:00:17.906060: Plan valid is now true after recompute was False
2026-08-17 13:00:17.934631: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.59p, metric_keep 278.61kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.17kWh, PV 0.0kWh
2026-08-17 13:00:18.040068: Battery has 13.83 hours left - now at 10.72kWh
2026-08-17 13:00:18.093951: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 620.4p, metric_keep 280.32kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.22kWh, PV 0.0kWh
2026-08-17 13:00:18.169970: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 317.94p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.22kWh, PV 0.0kWh
2026-08-17 13:00:18.247420: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 314.19p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.17kWh, PV 0.0kWh
2026-08-17 13:00:18.247514: Saving plan best values to HA entities
2026-08-17 13:00:18.392775: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:00:18.398193: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:00:18.403276: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0.0kWh, export 0.0kWh, metric 314.19p, metric10 317.94p
2026-08-17 13:00:18.474840: Marginal costs baseline metric (no standing charge): 267.5608
2026-08-17 13:00:18.731729: Marginal energy costs matrix computed: min=7.99 max=24.51
2026-08-17 13:00:18.842475: Rate array import [{'start': 780, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 780, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:00:18.843067: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:00:18.843113: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:00:18.843136: - The battery is currently at 67% and is in eco mode for the next 10 hours.
2026-08-17 13:00:18.843994: - For the next 48 hours there will be no solar generation.
2026-08-17 13:00:18.844028: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:00:18.844416: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:00:18.844445:
2026-08-17 13:00:18.898008: Plan calculation took 14.98 seconds
2026-08-17 13:00:18.898348: Inverter 0: Type SK Sunsynk
2026-08-17 13:00:18.898401: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:00:18.898664: Reserve min: 7%, battery_min: 7%
2026-08-17 13:00:18.898773: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:00:18.899127: Inverter 0 SoC: 10.66kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 646W, current battery voltage 51.2V, grid power -53W, load power 711W, PV Power 0W
2026-08-17 13:00:18.899405: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:00:18.899535: Inverter 0 scheduled charge enable is False
2026-08-17 13:00:18.899588: Inverter 0 charge windows currently []
2026-08-17 13:00:18.899645: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:00:18.899804: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:00:18.899864: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:00:18.899967: Inverter 0 scheduled discharge enable is False
2026-08-17 13:00:18.900188: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:00:18.900235: Inverter 0 discharge windows currently []
2026-08-17 13:00:18.900286: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:00:18.900318: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:00:18.900341: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:00:18.958741: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 13:00:18.958884: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:00:18.958969: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:00:18.959154: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:00:18.959263: No export window planned
2026-08-17 13:00:18.959446: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:00:18.959490: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:00:18.959724: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:00:18.959950: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:00:18.960032: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:00:18.960092: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:00:18.960172: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960212: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960243: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960269: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960299: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960330: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960689: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960739: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:00:18.960782: Inverter 0 count register writes 0
2026-08-17 13:00:18.983869: Total inverter register writes now 861
2026-08-17 13:00:19.018793: Info: Completed run status Demand
2026-08-17 13:00:19.025049: Info: record_status Demand
2026-08-17 13:00:19.031620: Saved current settings to /config/predbat_config.json
2026-08-17 13:00:19.031975: Compare, best tariff: current metric 104.68p
2026-08-17 13:00:49.134444: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:00:49.134672: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:00:49.134712: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:00:49.134863: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:00:49.134915: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:00:49.134946: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:00:49.134964: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:02:49.368126: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:02:49.368355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:02:49.368388: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:02:49.368545: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:02:49.368613: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:02:49.368634: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:02:49.368654: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:04:49.577631: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:04:49.577906: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:04:49.577941: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:04:49.578101: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:04:49.578140: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:04:49.578160: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:04:49.578178: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:05:00.664323: --------------- PredBat - update at 2026-08-17 13:05:00+01:00 with clock skew 0 minutes, minutes now 785
2026-08-17 13:05:00.665177: Saved current settings to /config/predbat_config.json
2026-08-17 13:05:00.665347: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 13:05:00.665444: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:05:00.665516: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:05:00.683839: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:05:00.683989: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:05:00.684167: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:05:00.684648: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:05:00.684793: Predbat mode is set to Control charge & discharge
2026-08-17 13:05:00.856707: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:05:00.856867: Using load_power data to fill gaps in load_today data
2026-08-17 13:05:01.711721: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:05:01.711936: Zero load period starting at 2026-08-17T10:54:00+0100 (131 minutes) for 189 minutes with base value 215.2
2026-08-17 13:05:01.712340: Processing 721 30-minute periods for power integration
2026-08-17 13:05:01.908302: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:05:01.908491: Car charging hold False, threshold 6.0kWh
2026-08-17 13:05:01.908543: Current data so far today: load 7.1kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:05:01.926579: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:05:01.926719: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:05:01.927467: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:05:01.927547: Standing charge is set to 46.63p
2026-08-17 13:05:02.017218: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.017499: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.017660: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.017838: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.018016: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.019073: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.019228: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.021707: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.021861: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.022049: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.022233: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.022379: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.022516: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.022651: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.022811: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.022953: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.023094: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.023227: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.023358: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:05:02.023411: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:05:02.023545: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:05:02.027843: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:05:02.028133: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:05:02.067549: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:05:02.068508: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:05:02.069613: High export rate found rates in range 99p to -99p
2026-08-17 13:05:02.157912: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:05:02.160250: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:05:02.179799: Battery level now 10.72kWh, -1hr ago 11.5kWh, at midnight 10.49kWh, battery value change in the last hour -5.39p, change today 1.59p, rate_forward 6.87p
2026-08-17 13:05:02.180872: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:05:02.249798: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:05:02.249957: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:05:02.335665: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:05:02.362502: Today's load divergence 99.08%, in-day adjustment 85.14%, damping 0.95x, yesterday 68.37% today 99.13% blend 45.49%
2026-08-17 13:05:02.362595: Today's predicted so far 8.49kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 8.49kWh forecast extra.
2026-08-17 13:05:02.362627: Today's actual load so far 8.34kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 13:05:02.395846: Inverter 0: Type SK Sunsynk
2026-08-17 13:05:02.395977: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:05:02.396262: Reserve min: 7%, battery_min: 7%
2026-08-17 13:05:02.396347: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:05:02.396600: Inverter 0 SoC: 10.66kW 67%, current charge rate 5000W, current discharge rate 5250W, current battery power 430W, current battery voltage 51.2V, grid power -51W, load power 484W, PV Power 0W
2026-08-17 13:05:02.396775: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:05:02.396862: Inverter 0 scheduled charge enable is False
2026-08-17 13:05:02.396899: Inverter 0 charge windows currently []
2026-08-17 13:05:02.396932: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:05:02.397041: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:05:02.397075: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:05:02.397109: Inverter 0 scheduled discharge enable is False
2026-08-17 13:05:02.397225: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:05:02.397261: Inverter 0 discharge windows currently []
2026-08-17 13:05:02.397283: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:05:02.397305: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:05:02.397322: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:05:02.463406: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:05:02.463559: Plan was last updated on 2026-08-17 13:00:00+01:00 and is now 5.0 minutes old
2026-08-17 13:05:02.464095: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:05:02.464170: Best export window [ ]
2026-08-17 13:05:02.465181: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:05:02.468317: Load divergence over 8.0 hours mean 510.71W, min 334.8W, max 1174.8W, std dev 175.88W, divergence 17.22%
2026-08-17 13:05:02.491455: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:05:02.491578: LoadML is_calculating False
2026-08-17 13:05:02.491642: Creating pool of 12 processes to match your CPU count
2026-08-17 13:05:02.635971: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.33p, metric_keep 278.94kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.32kWh, PV 0.0kWh
2026-08-17 13:05:02.775228: Battery has 13.75 hours left - now at 10.66kWh
2026-08-17 13:05:02.830225: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.14p, metric_keep 280.63kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.38kWh, PV 0.0kWh
2026-08-17 13:05:02.908208: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 321.6p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.38kWh, PV 0.0kWh
2026-08-17 13:05:02.988827: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 318.39p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.32kWh, PV 0.0kWh
2026-08-17 13:05:02.988913: Saving plan best values to HA entities
2026-08-17 13:05:03.174421: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:05:03.179053: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 13:05:03.183585: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.02kWh, house 0.0kWh, export 0.0kWh, metric 318.39p, metric10 321.6p
2026-08-17 13:05:03.254006: Marginal costs baseline metric (no standing charge): 271.7607
2026-08-17 13:05:03.558571: Marginal energy costs matrix computed: min=7.99 max=24.99
2026-08-17 13:05:03.630879: Rate array import [{'start': 785, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 785, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:05:03.631593: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:05:03.631635: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:05:03.631657: - The battery is currently at 67% and is in eco mode for the next 10 hours.
2026-08-17 13:05:03.631676: - For the next 48 hours there will be no solar generation.
2026-08-17 13:05:03.631707: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:05:03.631727: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:05:03.631750:
2026-08-17 13:05:03.691861: Plan calculation took 1.23 seconds
2026-08-17 13:05:03.695354: No high rate period found
2026-08-17 13:05:03.753056: Import threshold used for optimisation was 8.0p
2026-08-17 13:05:03.809725: Low import rate windows [0: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 1: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 2: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 3: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 4: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 5: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 6: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 7: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 8: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 9: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 10: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 11: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 12: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 13: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 14: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 15: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 16: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 17: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 18: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 19: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 20: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 21: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 22: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 23: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 24: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 25: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 26: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 27: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 28: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 29: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 30: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 31: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 32: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 33: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 34: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 35: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 36: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 37: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 38: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 39: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 40: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 41: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 42: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 43: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 44: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 45: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 46: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 47: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 48: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 49: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 50: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 51: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 52: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 53: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 54: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 55: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 56: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 57: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 58: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 59: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 60: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 61: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 62: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 63: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 64: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 65: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 66: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 67: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 68: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 69: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 70: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 71: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 72: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 73: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 74: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 75: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 76: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 77: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 78: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 79: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 80: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 81: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 82: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 83: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 84: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 85: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 86: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 87: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 88: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 89: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 90: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 91: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 92: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 93: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 94: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75]
2026-08-17 13:05:03.817293: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 67%, target 100%
2026-08-17 13:05:03.817464: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:05:03.817580: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:05:03.817913: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:05:03.818021: No export window planned
2026-08-17 13:05:03.818202: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:05:03.818250: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:05:03.818449: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:05:03.818684: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:05:03.818781: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:05:03.818873: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:05:03.819015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819083: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819164: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819234: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819288: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819325: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819777: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:05:03.819813: Inverter 0 count register writes 0
2026-08-17 13:05:03.835728: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 13:05:03.841659: Total inverter register writes now 861
2026-08-17 13:05:03.874261: Info: Completed run status Demand
2026-08-17 13:05:03.881719: Info: record_status Demand
2026-08-17 13:05:03.890612: Saved current settings to /config/predbat_config.json
2026-08-17 13:05:03.890929: Compare, best tariff: current metric 104.68p
2026-08-17 13:05:34.000044: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:05:34.000291: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:05:34.000337: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:05:34.000471: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:05:34.000513: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:05:34.000535: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:05:34.000554: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:07:34.232271: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:07:34.232564: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:07:34.232642: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:07:34.232895: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:07:34.232966: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:07:34.232990: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:07:34.233032: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:09:34.442438: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:09:34.442704: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:09:34.442774: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:09:34.442991: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:09:34.443097: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:09:34.443119: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:09:34.443137: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:10:00.556212: --------------- PredBat - update at 2026-08-17 13:10:00+01:00 with clock skew 0 minutes, minutes now 790
2026-08-17 13:10:00.556864: Saved current settings to /config/predbat_config.json
2026-08-17 13:10:00.556963: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 13:10:00.557024: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:10:00.557119: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:10:00.572538: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:10:00.572641: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:10:00.572832: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:10:00.573272: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:10:00.573400: Predbat mode is set to Control charge & discharge
2026-08-17 13:10:00.736875: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:10:00.737005: Using load_power data to fill gaps in load_today data
2026-08-17 13:10:01.430548: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:10:01.430709: Zero load period starting at 2026-08-17T10:54:00+0100 (136 minutes) for 189 minutes with base value 215.15
2026-08-17 13:10:01.431020: Processing 721 30-minute periods for power integration
2026-08-17 13:10:01.592231: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:10:01.592341: Car charging hold False, threshold 6.0kWh
2026-08-17 13:10:01.592378: Current data so far today: load 7.05kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:10:01.606953: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:10:01.607046: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:10:01.607626: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:10:01.607700: Standing charge is set to 46.63p
2026-08-17 13:10:01.686961: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.687168: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.687356: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.687535: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.687711: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.687851: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.688066: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.688209: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.688340: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.688470: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.688597: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.688751: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.688885: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.689016: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.689146: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.689274: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.689404: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.689531: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.689657: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:10:01.689718: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:10:01.689787: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:10:01.694278: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:10:01.694580: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:10:01.729009: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:10:01.729109: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:10:01.730249: High export rate found rates in range 99p to -99p
2026-08-17 13:10:01.810944: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:10:01.811064: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:10:01.821107: Battery level now 10.66kWh, -1hr ago 11.36kWh, at midnight 10.49kWh, battery value change in the last hour -4.78p, change today 1.21p, rate_forward 6.87p
2026-08-17 13:10:01.821425: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:10:01.871971: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:10:01.872085: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:10:01.944837: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:10:01.966617: Today's load divergence 98.61%, in-day adjustment 85.0%, damping 0.95x, yesterday 68.37% today 98.68% blend 45.14%
2026-08-17 13:10:01.966737: Today's predicted so far 8.5kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 8.5kWh forecast extra.
2026-08-17 13:10:01.966766: Today's actual load so far 8.28kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 13:10:01.994832: Inverter 0: Type SK Sunsynk
2026-08-17 13:10:01.994905: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:10:01.995051: Reserve min: 7%, battery_min: 7%
2026-08-17 13:10:01.995116: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:10:01.995324: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 505W, current battery voltage 51.2V, grid power -52W, load power 567W, PV Power 0W
2026-08-17 13:10:01.995470: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:10:01.995554: Inverter 0 scheduled charge enable is False
2026-08-17 13:10:01.995578: Inverter 0 charge windows currently []
2026-08-17 13:10:01.995599: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:10:01.995703: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:10:01.995734: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:10:01.995763: Inverter 0 scheduled discharge enable is False
2026-08-17 13:10:01.995858: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:10:01.995888: Inverter 0 discharge windows currently []
2026-08-17 13:10:01.995945: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:10:01.995988: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:10:01.996006: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:10:02.048264: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:10:02.048354: Plan was last updated on 2026-08-17 13:00:00+01:00 and is now 10.0 minutes old
2026-08-17 13:10:02.048526: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:10:02.048560: Best export window [ ]
2026-08-17 13:10:02.049228: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:10:02.051736: Load divergence over 8.0 hours mean 505.79W, min 336.6W, max 1164.6W, std dev 168.67W, divergence 16.67%
2026-08-17 13:10:02.066769: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:10:02.066845: LoadML is_calculating False
2026-08-17 13:10:02.066893: Creating pool of 12 processes to match your CPU count
2026-08-17 13:10:02.159806: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 599.4p, metric_keep 279.39kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.31kWh, PV 0.0kWh
2026-08-17 13:10:02.271231: Battery has 13.58 hours left - now at 10.56kWh
2026-08-17 13:10:02.315058: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 622.24p, metric_keep 281.06kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.36kWh, PV 0.0kWh
2026-08-17 13:10:02.389312: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 325.5p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.36kWh, PV 0.0kWh
2026-08-17 13:10:02.484427: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 322.77p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.31kWh, PV 0.0kWh
2026-08-17 13:10:02.484525: Saving plan best values to HA entities
2026-08-17 13:10:02.626251: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:10:02.630541: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:10:02.634934: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.57kWh, house 0.0kWh, export 0.0kWh, metric 322.77p, metric10 325.5p
2026-08-17 13:10:02.704592: Marginal costs baseline metric (no standing charge): 276.1364
2026-08-17 13:10:02.929152: Marginal energy costs matrix computed: min=7.99 max=25.63
2026-08-17 13:10:02.994652: Rate array import [{'start': 790, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 790, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:10:02.995455: - Your estimated bill for today is £1.67 and tomorrow is £1.72
2026-08-17 13:10:02.995503: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:10:02.995523: - The battery is currently at 66% and is in eco mode for the next 10 hours.
2026-08-17 13:10:02.995538: - For the next 48 hours there will be no solar generation.
2026-08-17 13:10:02.995552: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:10:02.995566: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:10:02.995585:
2026-08-17 13:10:03.048855: Plan calculation took 1.00 seconds
2026-08-17 13:10:03.052506: No high rate period found
2026-08-17 13:10:03.100175: Import threshold used for optimisation was 8.0p
2026-08-17 13:10:03.153476: Low import rate windows [0: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 1: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 2: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 3: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 4: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 5: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 6: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 7: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 8: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 9: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 10: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 11: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 12: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 13: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 14: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 15: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 16: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 17: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 18: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 19: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 20: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 21: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 22: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 23: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 24: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 25: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 26: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 27: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 28: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 29: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 30: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 31: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 32: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 33: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 34: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 35: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 36: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 37: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 38: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 39: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 40: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 41: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 42: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 43: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 44: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 45: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 46: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 47: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 48: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 49: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 50: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 51: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 52: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 53: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 54: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 55: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 56: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 57: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 58: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 59: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 60: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 61: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 62: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 63: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 64: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 65: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 66: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 67: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 68: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 69: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 70: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 71: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 72: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 73: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 74: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 75: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 76: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 77: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 78: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 79: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 80: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 81: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 82: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 83: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 84: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 85: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 86: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 87: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 88: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 89: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 90: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 91: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 92: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 93: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 94: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75]
2026-08-17 13:10:03.160165: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 66%, target 100%
2026-08-17 13:10:03.160294: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:10:03.160382: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:10:03.160621: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:10:03.160727: No export window planned
2026-08-17 13:10:03.160849: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:10:03.160885: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:10:03.161017: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:10:03.161187: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:10:03.161248: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:10:03.161306: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:10:03.161388: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161427: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161458: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161483: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161512: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161563: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161589: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161831: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:03.161875: Inverter 0 count register writes 0
2026-08-17 13:10:03.177829: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 13:10:03.177959: Recompute is saving previous plan...
2026-08-17 13:10:03.180559: Best charge window [ 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0% ]
2026-08-17 13:10:03.180630: Best export window [ ]
2026-08-17 13:10:03.181306: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:10:03.183813: Load divergence over 8.0 hours mean 505.79W, min 336.6W, max 1164.6W, std dev 168.67W, divergence 16.67%
2026-08-17 13:10:03.199409: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:10:03.199542: LoadML is_calculating False
2026-08-17 13:10:03.199622: Creating pool of 12 processes to match your CPU count
2026-08-17 13:10:03.272242: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 13:10:03.274198: Optimise levels pass started at 2026-08-17 13:10:03
2026-08-17 13:10:03.274261: Optimise all windows, total charge 94 export 1
2026-08-17 13:10:03.643520: >> Region optimisation pass width 960 gives best_metric 350.21p, best_cost 412.06p, best_cycle 46.81kWh, best_import 33.56kWh
2026-08-17 13:10:03.847349: >> Region optimisation pass width 480 gives best_metric 350.21p, best_cost 412.06p, best_cycle 46.81kWh, best_import 33.56kWh
2026-08-17 13:10:04.588769: >> Region optimisation pass width 240 gives best_metric 340.97p, best_cost 353.22p, best_cycle 45.38kWh, best_import 26.21kWh
2026-08-17 13:10:05.484943: >> Region optimisation pass width 120 gives best_metric 340.97p, best_cost 353.22p, best_cycle 45.38kWh, best_import 26.21kWh
2026-08-17 13:10:05.485208: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 67
2026-08-17 13:10:05.485296: Optimise levels pass ended at 2026-08-17 13:10:05, duration 2.2 seconds tried 230 combinations
2026-08-17 13:10:05.485371: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 340.97p, best_keep 0kWh, best_cycle 45.38kWh, best_carbon 0kg, best_import 26.21kWh
2026-08-17 13:10:05.504978: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 13:10:10.161509: Tweak plan optimisation started metric 255.46p, cost 267.35p
2026-08-17 13:10:10.435564: Tweak optimisation finished metric 255.46p, cost 267.35p, metric_keep 0.1kWh, cycle 28.8kWh, carbon 0kg, import 15.47kWh, changed 8 window(s)
2026-08-17 13:10:10.456019: Swap charge optimisation started metric 255.46p, cost 267.35p, min_improvement_swap 0.1p
2026-08-17 13:10:16.380519: Swap charge optimisation finished metric 255.46p, cost 267.35p
2026-08-17 13:10:16.511450: Raw charge windows [ 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:10:16.512010: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:10:16.512211: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:10:16.512351: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:10:16.549276: Previous plan best metric is 255.89 (cost 267.85) and new plan best metric is 255.46 (cost 267.35)
2026-08-17 13:10:16.549502: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 13:10:16.549634: Plan valid is now true after recompute was False
2026-08-17 13:10:16.577948: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.79p, metric_keep 278.81kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.1kWh, PV 0.0kWh
2026-08-17 13:10:16.673917: Battery has 13.58 hours left - now at 10.56kWh
2026-08-17 13:10:16.715486: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 620.54p, metric_keep 280.47kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.15kWh, PV 0.0kWh
2026-08-17 13:10:16.787973: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 318.25p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.15kWh, PV 0.0kWh
2026-08-17 13:10:16.862199: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 314.49p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.1kWh, PV 0.0kWh
2026-08-17 13:10:16.862293: Saving plan best values to HA entities
2026-08-17 13:10:17.013065: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:10:17.018400: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:10:17.023463: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.53kWh, house 0.0kWh, export 0.0kWh, metric 314.49p, metric10 318.25p
2026-08-17 13:10:17.098411: Marginal costs baseline metric (no standing charge): 267.8522
2026-08-17 13:10:17.379288: Marginal energy costs matrix computed: min=7.99 max=25.63
2026-08-17 13:10:17.448514: Rate array import [{'start': 790, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 790, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:10:17.449208: - Your estimated bill for today is £1.67 and tomorrow is £1.72
2026-08-17 13:10:17.449255: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:10:17.449278: - The battery is currently at 66% and is in eco mode for the next 10 hours.
2026-08-17 13:10:17.449297: - For the next 48 hours there will be no solar generation.
2026-08-17 13:10:17.449323: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:10:17.449341: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:10:17.449358:
2026-08-17 13:10:17.503115: Plan calculation took 14.33 seconds
2026-08-17 13:10:17.503426: Inverter 0: Type SK Sunsynk
2026-08-17 13:10:17.503470: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:10:17.503665: Reserve min: 7%, battery_min: 7%
2026-08-17 13:10:17.503753: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:10:17.504122: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 505W, current battery voltage 51.2V, grid power -52W, load power 567W, PV Power 0W
2026-08-17 13:10:17.504353: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:10:17.504447: Inverter 0 scheduled charge enable is False
2026-08-17 13:10:17.504482: Inverter 0 charge windows currently []
2026-08-17 13:10:17.504512: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:10:17.504620: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:10:17.504658: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:10:17.504696: Inverter 0 scheduled discharge enable is False
2026-08-17 13:10:17.504958: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:10:17.505003: Inverter 0 discharge windows currently []
2026-08-17 13:10:17.505027: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:10:17.505046: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:10:17.505068: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:10:17.553229: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 66%, target 100%
2026-08-17 13:10:17.553386: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:10:17.553468: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:10:17.553666: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:10:17.553761: No export window planned
2026-08-17 13:10:17.553905: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:10:17.553940: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:10:17.554082: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:10:17.554264: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:10:17.554333: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:10:17.554416: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:10:17.554524: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554564: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554611: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554722: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554800: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:10:17.554943: Inverter 0 count register writes 0
2026-08-17 13:10:17.572456: Total inverter register writes now 861
2026-08-17 13:10:17.601869: Info: Completed run status Demand
2026-08-17 13:10:17.607264: Info: record_status Demand
2026-08-17 13:10:17.613986: Saved current settings to /config/predbat_config.json
2026-08-17 13:10:17.614224: Compare, best tariff: current metric 104.68p
2026-08-17 13:10:48.705681: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:10:48.705972: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:10:48.706020: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:10:48.706193: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:10:48.706238: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:10:48.706261: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:10:48.706301: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:12:48.940674: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:12:48.940959: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:12:48.941032: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:12:48.941308: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:12:48.941380: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:12:48.941402: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:12:48.941420: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:14:49.151054: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:14:49.151306: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:14:49.151349: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:14:49.151482: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:14:49.151520: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:14:49.151542: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:14:49.151578: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:15:00.236444: --------------- PredBat - update at 2026-08-17 13:15:00+01:00 with clock skew 0 minutes, minutes now 795
2026-08-17 13:15:00.237162: Saved current settings to /config/predbat_config.json
2026-08-17 13:15:00.237294: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 13:15:00.237367: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:15:00.237464: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:15:00.253428: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:15:00.253574: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:15:00.253775: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:15:00.254345: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:15:00.254526: Predbat mode is set to Control charge & discharge
2026-08-17 13:15:00.416485: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:15:00.417000: Using load_power data to fill gaps in load_today data
2026-08-17 13:15:01.091705: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:15:01.091869: Zero load period starting at 2026-08-17T10:54:00+0100 (141 minutes) for 189 minutes with base value 215.1
2026-08-17 13:15:01.092388: Processing 721 30-minute periods for power integration
2026-08-17 13:15:01.248052: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:15:01.248156: Car charging hold False, threshold 6.0kWh
2026-08-17 13:15:01.248205: Current data so far today: load 7.1kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:15:01.262674: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:15:01.262752: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:15:01.263328: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:15:01.263386: Standing charge is set to 46.63p
2026-08-17 13:15:01.336745: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.336961: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.337138: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.337309: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.337538: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.337700: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.337865: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.338014: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.338147: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.338302: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.338457: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.338632: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.338778: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.338912: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.339046: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.339195: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.339330: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.339459: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.339577: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:15:01.339655: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:15:01.339725: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:15:01.344149: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:15:01.344449: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:15:01.380135: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:15:01.380653: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:15:01.381745: High export rate found rates in range 99p to -99p
2026-08-17 13:15:01.457681: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:15:01.457799: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:15:01.468229: Battery level now 10.56kWh, -1hr ago 11.36kWh, at midnight 10.49kWh, battery value change in the last hour -5.5p, change today 0.49p, rate_forward 6.87p
2026-08-17 13:15:01.468526: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:15:01.522554: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:15:01.522733: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:15:01.609489: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:15:01.635468: Today's load divergence 98.68%, in-day adjustment 85.14%, damping 0.95x, yesterday 68.37% today 98.75% blend 44.79%
2026-08-17 13:15:01.635554: Today's predicted so far 8.52kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 8.52kWh forecast extra.
2026-08-17 13:15:01.635586: Today's actual load so far 8.31kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 13:15:01.667772: Inverter 0: Type SK Sunsynk
2026-08-17 13:15:01.667850: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:15:01.668053: Reserve min: 7%, battery_min: 7%
2026-08-17 13:15:01.668154: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:15:01.668474: Inverter 0 SoC: 10.56kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 559W, current battery voltage 51.2V, grid power -56W, load power 625W, PV Power 0W
2026-08-17 13:15:01.668628: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:15:01.668711: Inverter 0 scheduled charge enable is False
2026-08-17 13:15:01.668745: Inverter 0 charge windows currently []
2026-08-17 13:15:01.668772: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:15:01.668879: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:15:01.668913: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:15:01.668948: Inverter 0 scheduled discharge enable is False
2026-08-17 13:15:01.669069: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:15:01.669105: Inverter 0 discharge windows currently []
2026-08-17 13:15:01.669127: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:15:01.669152: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:15:01.669174: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:15:01.723783: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:15:01.723883: Plan was last updated on 2026-08-17 13:10:00+01:00 and is now 5.0 minutes old
2026-08-17 13:15:01.724116: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:15:01.724160: Best export window [ ]
2026-08-17 13:15:01.725106: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:15:01.728581: Load divergence over 8.0 hours mean 500.46W, min 339.0W, max 1341.6W, std dev 185.07W, divergence 18.49%
2026-08-17 13:15:01.747723: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:15:01.747838: LoadML is_calculating False
2026-08-17 13:15:01.747949: Creating pool of 12 processes to match your CPU count
2026-08-17 13:15:01.845789: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.61p, metric_keep 278.84kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.21kWh, PV 0.0kWh
2026-08-17 13:15:01.991260: Battery has 13.58 hours left - now at 10.56kWh
2026-08-17 13:15:02.040554: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.37p, metric_keep 280.54kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.26kWh, PV 0.0kWh
2026-08-17 13:15:02.104994: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 321.35p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.26kWh, PV 0.0kWh
2026-08-17 13:15:02.170948: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 318.17p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.21kWh, PV 0.0kWh
2026-08-17 13:15:02.171027: Saving plan best values to HA entities
2026-08-17 13:15:02.315750: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:15:02.320221: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:15:02.324424: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.0kWh, house 0.0kWh, export 0.0kWh, metric 318.17p, metric10 321.35p
2026-08-17 13:15:02.413493: Marginal costs baseline metric (no standing charge): 271.5407
2026-08-17 13:15:02.662638: Marginal energy costs matrix computed: min=7.99 max=25.99
2026-08-17 13:15:02.730225: Rate array import [{'start': 795, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 795, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:15:02.730827: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:15:02.730864: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:15:02.730883: - The battery is currently at 66% and is in eco mode for the next 10 hours.
2026-08-17 13:15:02.730899: - For the next 48 hours there will be no solar generation.
2026-08-17 13:15:02.730913: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:15:02.730927: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:15:02.730944:
2026-08-17 13:15:02.779300: Plan calculation took 1.06 seconds
2026-08-17 13:15:02.783076: No high rate period found
2026-08-17 13:15:02.829628: Import threshold used for optimisation was 8.0p
2026-08-17 13:15:02.881605: Low import rate windows [0: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 1: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 2: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 3: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 4: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 5: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 6: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 7: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 8: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 9: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 10: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 11: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 12: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 13: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 14: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 15: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 16: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 17: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 18: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 19: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 20: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 21: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 22: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 23: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 24: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 25: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 26: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 27: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 28: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 29: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 30: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 31: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 32: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 33: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 34: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 35: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 36: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 37: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 38: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 39: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 40: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 41: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 42: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 43: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 44: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 45: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 46: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 47: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 48: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 49: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 50: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 51: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 52: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 53: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 54: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 55: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 56: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 57: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 58: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 59: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 60: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 61: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 62: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 63: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 64: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 65: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 66: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 67: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 68: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 69: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 70: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 71: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 72: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 73: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 74: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 75: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 76: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 77: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 78: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 79: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 80: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 81: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 82: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 83: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 84: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 85: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 86: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 87: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 88: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 89: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 90: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 91: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 92: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 93: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 94: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75]
2026-08-17 13:15:02.887940: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 66%, target 100%
2026-08-17 13:15:02.888083: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:15:02.888174: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:15:02.888438: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:15:02.888529: No export window planned
2026-08-17 13:15:02.888648: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:15:02.888683: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:15:02.888812: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:15:02.888980: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:15:02.889042: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:15:02.889101: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:15:02.889263: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889444: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889509: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889636: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889689: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889810: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.889990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.890059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.890101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.890135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:15:02.890159: Inverter 0 count register writes 0
2026-08-17 13:15:02.915150: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 13:15:02.920298: Total inverter register writes now 861
2026-08-17 13:15:02.963610: Info: Completed run status Demand
2026-08-17 13:15:02.969809: Info: record_status Demand
2026-08-17 13:15:02.976958: Saved current settings to /config/predbat_config.json
2026-08-17 13:15:02.977281: Compare, best tariff: current metric 104.68p
2026-08-17 13:15:34.074738: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:15:34.074961: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:15:34.074993: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:15:34.075138: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:15:34.075174: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:15:34.075192: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:15:34.075207: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:17:34.326958: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:17:34.327207: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:17:34.327279: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:17:34.327682: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:17:34.327741: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:17:34.327766: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:17:34.327785: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:19:34.545228: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:19:34.545483: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:19:34.545568: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:19:34.545777: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:19:34.545833: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:19:34.545854: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:19:34.545872: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:20:00.639812: --------------- PredBat - update at 2026-08-17 13:20:00+01:00 with clock skew 0 minutes, minutes now 800
2026-08-17 13:20:00.640547: Saved current settings to /config/predbat_config.json
2026-08-17 13:20:00.640672: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 13:20:00.640755: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:20:00.640829: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:20:00.656579: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:20:00.656681: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:20:00.656812: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:20:00.657237: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:20:00.657336: Predbat mode is set to Control charge & discharge
2026-08-17 13:20:00.814325: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:20:00.814465: Using load_power data to fill gaps in load_today data
2026-08-17 13:20:01.549829: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:20:01.549984: Zero load period starting at 2026-08-17T10:54:00+0100 (146 minutes) for 189 minutes with base value 215.075
2026-08-17 13:20:01.550304: Processing 721 30-minute periods for power integration
2026-08-17 13:20:01.733994: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:20:01.734120: Car charging hold False, threshold 6.0kWh
2026-08-17 13:20:01.734166: Current data so far today: load 7.15kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:20:01.753255: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:20:01.753360: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:20:01.754065: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:20:01.754134: Standing charge is set to 46.63p
2026-08-17 13:20:01.843808: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.844044: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.844203: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.844352: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.844523: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.844663: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.844828: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.844964: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.845097: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.845232: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.845366: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.845516: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.845650: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.845787: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.845925: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.846056: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.846184: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.846312: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.846451: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:20:01.846502: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:20:01.846576: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:20:01.851059: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:20:01.851386: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:20:01.886124: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:20:01.886243: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:20:01.887349: High export rate found rates in range 99p to -99p
2026-08-17 13:20:01.963481: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:20:01.963588: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:20:01.974689: Battery level now 10.56kWh, -1hr ago 11.2kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today 0.49p, rate_forward 6.87p
2026-08-17 13:20:01.975094: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:20:02.019510: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:20:02.019634: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:20:02.112272: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:20:02.138579: Today's load divergence 98.63%, in-day adjustment 85.22%, damping 0.95x, yesterday 68.37% today 98.7% blend 44.44%
2026-08-17 13:20:02.138691: Today's predicted so far 8.57kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 8.57kWh forecast extra.
2026-08-17 13:20:02.140003: Today's actual load so far 8.36kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 13:20:02.185987: Inverter 0: Type SK Sunsynk
2026-08-17 13:20:02.186988: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:20:02.187196: Reserve min: 7%, battery_min: 7%
2026-08-17 13:20:02.187295: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:20:02.187600: Inverter 0 SoC: 10.53kW 66%, current charge rate 5000W, current discharge rate 5250W, current battery power 657W, current battery voltage 51.2V, grid power -54W, load power 715W, PV Power 0W
2026-08-17 13:20:02.187765: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:20:02.187941: Inverter 0 scheduled charge enable is False
2026-08-17 13:20:02.188110: Inverter 0 charge windows currently []
2026-08-17 13:20:02.188155: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:20:02.188273: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:20:02.188308: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:20:02.188350: Inverter 0 scheduled discharge enable is False
2026-08-17 13:20:02.188510: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:20:02.188558: Inverter 0 discharge windows currently []
2026-08-17 13:20:02.188586: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:20:02.188614: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:20:02.188637: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:20:02.263170: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:20:02.263268: Plan was last updated on 2026-08-17 13:10:00+01:00 and is now 10.0 minutes old
2026-08-17 13:20:02.263500: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:20:02.263545: Best export window [ ]
2026-08-17 13:20:02.264400: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:20:02.267455: Load divergence over 8.0 hours mean 494.81W, min 370.8W, max 1339.2W, std dev 173.76W, divergence 17.56%
2026-08-17 13:20:02.286027: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:20:02.286129: LoadML is_calculating False
2026-08-17 13:20:02.286185: Creating pool of 12 processes to match your CPU count
2026-08-17 13:20:02.390568: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 598.8p, metric_keep 278.96kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.28kWh, PV 0.0kWh
2026-08-17 13:20:02.497283: Battery has 13.58 hours left - now at 10.53kWh
2026-08-17 13:20:02.547599: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.61p, metric_keep 280.67kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.34kWh, PV 0.0kWh
2026-08-17 13:20:02.615376: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 324.6p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.34kWh, PV 0.0kWh
2026-08-17 13:20:02.684815: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 321.98p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.28kWh, PV 0.0kWh
2026-08-17 13:20:02.684937: Saving plan best values to HA entities
2026-08-17 13:20:02.829817: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:20:02.835565: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 13:20:02.840954: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.47kWh, house 0.0kWh, export 0.0kWh, metric 321.98p, metric10 324.6p
2026-08-17 13:20:02.912688: Marginal costs baseline metric (no standing charge): 275.3422
2026-08-17 13:20:03.186970: Marginal energy costs matrix computed: min=7.99 max=26.39
2026-08-17 13:20:03.266446: Rate array import [{'start': 800, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 800, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:20:03.267248: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:20:03.267299: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:20:03.267323: - The battery is currently at 66% and is in eco mode for the next 10 hours.
2026-08-17 13:20:03.267357: - For the next 48 hours there will be no solar generation.
2026-08-17 13:20:03.267396: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:20:03.267417: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:20:03.267455:
2026-08-17 13:20:03.324505: Plan calculation took 1.06 seconds
2026-08-17 13:20:03.327889: No high rate period found
2026-08-17 13:20:03.375995: Import threshold used for optimisation was 8.0p
2026-08-17 13:20:03.426251: Low import rate windows [0: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 1: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 2: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 3: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 4: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 5: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 6: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 7: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 8: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 9: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 10: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 11: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 12: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 13: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 14: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 15: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 16: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 17: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 18: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 19: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 20: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 21: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 22: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 23: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 24: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 25: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 26: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 27: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 28: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 29: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 30: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 31: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 32: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 33: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 34: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 35: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 36: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 37: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 38: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 39: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 40: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 41: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 42: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 43: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 44: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 45: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 46: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 47: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 48: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 49: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 50: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 51: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 52: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 53: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 54: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 55: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 56: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 57: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 58: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 59: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 60: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 61: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 62: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 63: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 64: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 65: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 66: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 67: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 68: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 69: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 70: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 71: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 72: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 73: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 74: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 75: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 76: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 77: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 78: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 79: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 80: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 81: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 82: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 83: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 84: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 85: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 86: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 87: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 88: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 89: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 90: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 91: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 92: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 93: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 94: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75]
2026-08-17 13:20:03.431738: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 66%, target 100%
2026-08-17 13:20:03.431872: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:20:03.432051: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:20:03.432342: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:20:03.432467: No export window planned
2026-08-17 13:20:03.432643: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:20:03.432686: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:20:03.432856: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:20:03.433063: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:20:03.433133: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:20:03.433238: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:20:03.433363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433476: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433530: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433669: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.433982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.434035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.434078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.434129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:03.434175: Inverter 0 count register writes 0
2026-08-17 13:20:03.449384: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 13:20:03.449597: Recompute is saving previous plan...
2026-08-17 13:20:03.453879: Best charge window [ 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0% ]
2026-08-17 13:20:03.453974: Best export window [ ]
2026-08-17 13:20:03.455005: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:20:03.457548: Load divergence over 8.0 hours mean 494.81W, min 370.8W, max 1339.2W, std dev 173.76W, divergence 17.56%
2026-08-17 13:20:03.474702: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:20:03.474812: LoadML is_calculating False
2026-08-17 13:20:03.474877: Creating pool of 12 processes to match your CPU count
2026-08-17 13:20:03.550756: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 13:20:03.552710: Optimise levels pass started at 2026-08-17 13:20:03
2026-08-17 13:20:03.552774: Optimise all windows, total charge 94 export 1
2026-08-17 13:20:03.927971: >> Region optimisation pass width 960 gives best_metric 350.47p, best_cost 411.25p, best_cycle 46.77kWh, best_import 33.46kWh
2026-08-17 13:20:04.126007: >> Region optimisation pass width 480 gives best_metric 350.47p, best_cost 411.25p, best_cycle 46.77kWh, best_import 33.46kWh
2026-08-17 13:20:04.877497: >> Region optimisation pass width 240 gives best_metric 341.5p, best_cost 352.41p, best_cycle 45.33kWh, best_import 26.1kWh
2026-08-17 13:20:05.759848: >> Region optimisation pass width 120 gives best_metric 341.5p, best_cost 352.41p, best_cycle 45.33kWh, best_import 26.1kWh
2026-08-17 13:20:05.760349: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 67
2026-08-17 13:20:05.760450: Optimise levels pass ended at 2026-08-17 13:20:05, duration 2.2 seconds tried 230 combinations
2026-08-17 13:20:05.760515: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 341.5p, best_keep 0.21kWh, best_cycle 45.33kWh, best_carbon 0kg, best_import 26.1kWh
2026-08-17 13:20:05.776750: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 15.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 13:20:10.405054: Tweak plan optimisation started metric 254.63p, cost 266.48p
2026-08-17 13:20:10.701902: Tweak optimisation finished metric 254.63p, cost 266.48p, metric_keep 0.11kWh, cycle 28.6kWh, carbon 0kg, import 15.36kWh, changed 8 window(s)
2026-08-17 13:20:10.718990: Swap charge optimisation started metric 254.63p, cost 266.48p, min_improvement_swap 0.1p
2026-08-17 13:20:15.815534: Swap charge optimisation finished metric 254.63p, cost 266.48p
2026-08-17 13:20:15.951108: Raw charge windows [ 17-08 13:00:00 - 17-08 13:30:00 @ 33.75p 0%, 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:20:15.951661: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:20:15.952759: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:20:15.954302: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:20:15.992139: Previous plan best metric is 255.11 (cost 267.05) and new plan best metric is 254.63 (cost 266.48)
2026-08-17 13:20:15.992374: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 13:20:15.992527: Plan valid is now true after recompute was False
2026-08-17 13:20:16.019064: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.18p, metric_keep 278.37kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.08kWh, PV 0.0kWh
2026-08-17 13:20:16.113051: Battery has 13.58 hours left - now at 10.53kWh
2026-08-17 13:20:16.148255: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 619.9p, metric_keep 280.08kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.13kWh, PV 0.0kWh
2026-08-17 13:20:16.209155: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 317.34p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.13kWh, PV 0.0kWh
2026-08-17 13:20:16.275529: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 313.68p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.08kWh, PV 0.0kWh
2026-08-17 13:20:16.275606: Saving plan best values to HA entities
2026-08-17 13:20:16.408564: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:20:16.412925: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 13:20:16.417250: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.43kWh, house 0.0kWh, export 0.0kWh, metric 313.68p, metric10 317.34p
2026-08-17 13:20:16.486061: Marginal costs baseline metric (no standing charge): 267.0499
2026-08-17 13:20:16.727440: Marginal energy costs matrix computed: min=7.99 max=26.39
2026-08-17 13:20:16.790230: Rate array import [{'start': 800, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 800, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:20:16.790856: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:20:16.790897: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:20:16.790920: - The battery is currently at 66% and is in eco mode for the next 10 hours.
2026-08-17 13:20:16.790955: - For the next 48 hours there will be no solar generation.
2026-08-17 13:20:16.790984: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:20:16.791000: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:20:16.791016:
2026-08-17 13:20:16.846578: Plan calculation took 13.40 seconds
2026-08-17 13:20:16.846928: Inverter 0: Type SK Sunsynk
2026-08-17 13:20:16.846990: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:20:16.847249: Reserve min: 7%, battery_min: 7%
2026-08-17 13:20:16.847341: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:20:16.847709: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 622W, current battery voltage 51.2V, grid power -53W, load power 681W, PV Power 0W
2026-08-17 13:20:16.847997: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:20:16.848125: Inverter 0 scheduled charge enable is False
2026-08-17 13:20:16.848174: Inverter 0 charge windows currently []
2026-08-17 13:20:16.848216: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:20:16.848376: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:20:16.848422: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:20:16.848511: Inverter 0 scheduled discharge enable is False
2026-08-17 13:20:16.848715: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:20:16.848768: Inverter 0 discharge windows currently []
2026-08-17 13:20:16.848810: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:20:16.848847: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:20:16.848882: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:20:16.902737: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 65%, target 100%
2026-08-17 13:20:16.902890: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:20:16.902954: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:20:16.903131: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:20:16.903211: No export window planned
2026-08-17 13:20:16.903315: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:20:16.903349: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:20:16.903499: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:20:16.903657: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:20:16.903729: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:20:16.903795: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:20:16.903877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.903953: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904000: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904028: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904079: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904103: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904286: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:20:16.904361: Inverter 0 count register writes 0
2026-08-17 13:20:16.924346: Total inverter register writes now 861
2026-08-17 13:20:16.956706: Info: Completed run status Demand
2026-08-17 13:20:16.962169: Info: record_status Demand
2026-08-17 13:20:16.968213: Saved current settings to /config/predbat_config.json
2026-08-17 13:20:16.968519: Compare, best tariff: current metric 104.68p
2026-08-17 13:20:49.076550: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:20:49.077626: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:20:49.077921: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:20:49.079560: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:20:49.079627: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:20:49.079729: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:20:49.079774: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:22:49.344237: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:22:49.344462: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:22:49.344520: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:22:49.344662: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:22:49.344700: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:22:49.344722: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:22:49.344795: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:24:15.204805: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 13:24:16.063337: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:24:16.063501: Zero load period starting at 2026-08-17T10:54:00+0100 (146 minutes) for 189 minutes with base value 412.25
2026-08-17 13:24:16.063856: Processing 1345 30-minute periods for power integration
2026-08-17 13:24:16.147230: ML Component: Car charging hold False, car energy reported load False
2026-08-17 13:24:16.230651: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:24:16.309494: ML Temperature data points: 49601
2026-08-17 13:24:16.526241: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 13:24:16.559549: ML Component: Data fetch completed, load data age 58.0 days, 16984 data points
2026-08-17 13:24:16.559649: ML Component: No training needed, model age is 1.92 hours
2026-08-17 13:24:16.559698: ML Component: Generating predictions load data age 58.0 days, 16984 data points
2026-08-17 13:24:16.672227: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0536 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 13:24:16.999213: ML Component: Generated 576 predictions (total 24.07 kWh over 48h)
2026-08-17 13:24:17.024650: ML Component: Prediction cycle completed
2026-08-17 13:24:17.098561: ML Component: Saved 16984 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 13:24:49.586347: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:24:49.586610: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:24:49.586683: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:24:49.586832: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:24:49.586881: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:24:49.586917: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:24:49.586942: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:25:00.668273: --------------- PredBat - update at 2026-08-17 13:25:00+01:00 with clock skew 0 minutes, minutes now 805
2026-08-17 13:25:00.669045: Saved current settings to /config/predbat_config.json
2026-08-17 13:25:00.669156: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 13:25:00.669245: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:25:00.669316: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:25:00.687011: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:25:00.687129: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:25:00.687287: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:25:00.687852: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:25:00.688001: Predbat mode is set to Control charge & discharge
2026-08-17 13:25:00.869526: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:25:00.869687: Using load_power data to fill gaps in load_today data
2026-08-17 13:25:01.549318: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:25:01.549735: Zero load period starting at 2026-08-17T10:54:00+0100 (151 minutes) for 189 minutes with base value 215.05
2026-08-17 13:25:01.550064: Processing 721 30-minute periods for power integration
2026-08-17 13:25:01.714269: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:25:01.714394: Car charging hold False, threshold 6.0kWh
2026-08-17 13:25:01.714433: Current data so far today: load 7.2kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:25:01.730704: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:25:01.730794: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:25:01.731397: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:25:01.731455: Standing charge is set to 46.63p
2026-08-17 13:25:01.822150: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.822396: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.822596: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.822778: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.822947: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.823114: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.823336: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.823511: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.823698: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.823860: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.824091: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.824270: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.824431: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.824609: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.824770: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.824924: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.825107: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.825266: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.825423: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:25:01.825481: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:25:01.825587: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:25:01.830855: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:25:01.831147: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:25:01.876583: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:25:01.876696: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:25:01.877982: High export rate found rates in range 99p to -99p
2026-08-17 13:25:01.975561: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:25:01.975685: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:25:01.987792: Battery level now 10.53kWh, -1hr ago 11.2kWh, at midnight 10.49kWh, battery value change in the last hour -4.62p, change today 0.27p, rate_forward 6.87p
2026-08-17 13:25:01.988138: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:25:02.039361: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:25:02.039482: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:25:02.113662: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:25:02.138991: Today's load divergence 98.69%, in-day adjustment 85.36%, damping 0.95x, yesterday 68.37% today 98.76% blend 44.1%
2026-08-17 13:25:02.139097: Today's predicted so far 8.61kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 8.61kWh forecast extra.
2026-08-17 13:25:02.139148: Today's actual load so far 8.41kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 13:25:02.168079: Inverter 0: Type SK Sunsynk
2026-08-17 13:25:02.168151: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:25:02.168295: Reserve min: 7%, battery_min: 7%
2026-08-17 13:25:02.168351: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:25:02.168582: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 593W, current battery voltage 51.2V, grid power -55W, load power 655W, PV Power 0W
2026-08-17 13:25:02.168709: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:25:02.168780: Inverter 0 scheduled charge enable is False
2026-08-17 13:25:02.168809: Inverter 0 charge windows currently []
2026-08-17 13:25:02.168831: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:25:02.168927: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:25:02.168955: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:25:02.168986: Inverter 0 scheduled discharge enable is False
2026-08-17 13:25:02.169098: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:25:02.169130: Inverter 0 discharge windows currently []
2026-08-17 13:25:02.169149: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:25:02.169186: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:25:02.169202: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:25:02.218601: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:25:02.218689: Plan was last updated on 2026-08-17 13:20:00+01:00 and is now 5.0 minutes old
2026-08-17 13:25:02.218872: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:25:02.218905: Best export window [ ]
2026-08-17 13:25:02.219589: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:25:02.222196: Load divergence over 8.0 hours mean 489.29W, min 384.0W, max 1302.6W, std dev 158.36W, divergence 16.18%
2026-08-17 13:25:02.238033: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:25:02.238128: LoadML is_calculating False
2026-08-17 13:25:02.238179: Creating pool of 12 processes to match your CPU count
2026-08-17 13:25:02.343839: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.78p, metric_keep 278.99kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.19kWh, PV 0.0kWh
2026-08-17 13:25:02.454827: Battery has 13.42 hours left - now at 10.4kWh
2026-08-17 13:25:02.490620: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.57p, metric_keep 280.67kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.24kWh, PV 0.0kWh
2026-08-17 13:25:02.556167: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 321.62p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.24kWh, PV 0.0kWh
2026-08-17 13:25:02.630293: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 318.43p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.19kWh, PV 0.0kWh
2026-08-17 13:25:02.630374: Saving plan best values to HA entities
2026-08-17 13:25:02.769144: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:25:02.773969: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:25:02.779204: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.03kWh, house 0kWh, export 0.0kWh, metric 318.43p, metric10 321.62p
2026-08-17 13:25:02.851146: Marginal costs baseline metric (no standing charge): 271.7913
2026-08-17 13:25:03.113458: Marginal energy costs matrix computed: min=7.99 max=27.12
2026-08-17 13:25:03.177217: Rate array import [{'start': 805, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 805, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:25:03.177816: - Your estimated bill for today is £1.68 and tomorrow is £1.71
2026-08-17 13:25:03.177855: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:25:03.177874: - The battery is currently at 65% and is in eco mode for the next 10 hours.
2026-08-17 13:25:03.177889: - For the next 48 hours there will be no solar generation.
2026-08-17 13:25:03.177903: - You will reach a minimum of 12% battery in 34 hours.
2026-08-17 13:25:03.177917: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:25:03.177941:
2026-08-17 13:25:03.225703: Plan calculation took 1.01 seconds
2026-08-17 13:25:03.229358: No high rate period found
2026-08-17 13:25:03.273673: Import threshold used for optimisation was 8.0p
2026-08-17 13:25:03.319200: Low import rate windows [0: 08-17 13:00:00 - 08-17 13:30:00 @ 33.75, 1: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 2: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 3: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 4: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 5: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 6: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 7: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 8: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 9: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 10: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 11: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 12: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 13: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 14: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 15: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 16: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 17: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 18: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 19: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 20: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 21: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 22: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 23: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 24: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 25: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 26: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 27: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 28: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 29: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 30: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 31: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 32: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 33: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 34: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 35: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 36: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 37: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 38: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 39: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 40: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 41: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 42: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 43: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 44: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 45: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 46: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 47: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 48: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 49: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 50: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 51: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 52: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 53: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 54: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 55: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 56: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 57: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 58: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 59: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 60: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 61: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 62: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 63: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 64: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 65: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 66: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 67: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 68: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 69: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 70: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 71: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 72: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 73: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 74: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 75: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 76: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 77: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 78: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 79: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 80: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 81: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 82: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 83: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 84: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 85: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 86: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 87: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 88: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 89: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 90: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 91: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 92: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 93: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 94: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75]
2026-08-17 13:25:03.324405: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 65%, target 100%
2026-08-17 13:25:03.324508: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:25:03.324607: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:25:03.324863: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:25:03.324939: No export window planned
2026-08-17 13:25:03.325057: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:25:03.325102: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:25:03.325218: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:25:03.325422: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:25:03.325485: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:25:03.325553: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:25:03.325630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325664: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325689: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325715: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325735: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325756: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325779: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:25:03.325984: Inverter 0 count register writes 0
2026-08-17 13:25:03.341040: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 13:25:03.345418: Total inverter register writes now 861
2026-08-17 13:25:03.374819: Info: Completed run status Demand
2026-08-17 13:25:03.380627: Info: record_status Demand
2026-08-17 13:25:03.386585: Saved current settings to /config/predbat_config.json
2026-08-17 13:25:03.386837: Compare, best tariff: current metric 104.68p
2026-08-17 13:25:34.478389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:25:34.478782: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:25:34.478838: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:25:34.479092: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:25:34.479142: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:25:34.479189: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:25:34.479223: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:27:48.718085: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:27:48.718412: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:27:48.718473: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:27:48.718644: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:27:48.718686: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:27:48.718708: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:27:48.718726: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:29:48.929585: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:29:48.929825: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:29:48.929860: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:29:48.929985: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:29:48.930023: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:29:48.930044: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:29:48.930062: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:30:00.014012: --------------- PredBat - update at 2026-08-17 13:30:00+01:00 with clock skew 0 minutes, minutes now 810
2026-08-17 13:30:00.014750: Saved current settings to /config/predbat_config.json
2026-08-17 13:30:00.014950: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 13:30:00.015051: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:30:00.015163: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:30:00.054372: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:30:00.054495: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:30:00.054676: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:30:00.055180: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:30:00.055333: Predbat mode is set to Control charge & discharge
2026-08-17 13:30:00.252237: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:30:00.252377: Using load_power data to fill gaps in load_today data
2026-08-17 13:30:01.080534: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:30:01.080742: Zero load period starting at 2026-08-17T10:54:00+0100 (156 minutes) for 189 minutes with base value 215.025
2026-08-17 13:30:01.081148: Processing 721 30-minute periods for power integration
2026-08-17 13:30:01.266909: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:30:01.267031: Car charging hold False, threshold 6.0kWh
2026-08-17 13:30:01.267074: Current data so far today: load 7.25kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:30:01.284939: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:30:01.285043: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:30:01.285767: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:30:01.285839: Standing charge is set to 46.63p
2026-08-17 13:30:01.378755: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.379003: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.379187: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.379366: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.379539: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.379728: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.379929: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.380140: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.380305: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.380469: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.380651: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.380817: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.380976: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.381178: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.381344: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.381501: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.381780: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.382054: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.382248: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:30:01.382330: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:30:01.382424: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:30:01.387975: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:30:01.388350: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:30:01.433110: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:30:01.433224: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:30:01.435067: High export rate found rates in range 99p to -99p
2026-08-17 13:30:01.532900: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:30:01.533017: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:30:01.548842: Battery level now 10.4kWh, -1hr ago 11.07kWh, at midnight 10.49kWh, battery value change in the last hour -4.62p, change today -0.6p, rate_forward 6.87p
2026-08-17 13:30:01.549216: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:30:01.620224: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:30:01.620384: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:30:01.710745: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:30:01.739885: Today's load divergence 98.44%, in-day adjustment 85.33%, damping 0.95x, yesterday 68.37% today 98.52% blend 43.75%
2026-08-17 13:30:01.740004: Today's predicted so far 8.73kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 8.73kWh forecast extra.
2026-08-17 13:30:01.740036: Today's actual load so far 8.48kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 13:30:01.776141: Inverter 0: Type SK Sunsynk
2026-08-17 13:30:01.776235: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:30:01.776474: Reserve min: 7%, battery_min: 7%
2026-08-17 13:30:01.776587: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:30:01.776904: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 580W, current battery voltage 51.2V, grid power -57W, load power 643W, PV Power 0W
2026-08-17 13:30:01.777094: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:30:01.777199: Inverter 0 scheduled charge enable is False
2026-08-17 13:30:01.777249: Inverter 0 charge windows currently []
2026-08-17 13:30:01.777287: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:30:01.777443: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:30:01.777484: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:30:01.777531: Inverter 0 scheduled discharge enable is False
2026-08-17 13:30:01.777730: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:30:01.777772: Inverter 0 discharge windows currently []
2026-08-17 13:30:01.777796: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:30:01.777839: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:30:01.777874: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:30:01.838521: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:30:01.838626: Plan was last updated on 2026-08-17 13:20:00+01:00 and is now 10.0 minutes old
2026-08-17 13:30:01.838891: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:30:01.838931: Best export window [ ]
2026-08-17 13:30:01.839645: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:30:01.842250: Load divergence over 8.0 hours mean 481.45W, min 359.4W, max 1264.2W, std dev 133.42W, divergence 13.86%
2026-08-17 13:30:01.859654: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:30:01.859969: LoadML is_calculating False
2026-08-17 13:30:01.860116: Creating pool of 12 processes to match your CPU count
2026-08-17 13:30:01.962692: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 599.1p, metric_keep 279.19kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.31kWh, PV 0.0kWh
2026-08-17 13:30:02.075441: Battery has 13.33 hours left - now at 10.4kWh
2026-08-17 13:30:02.130418: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 621.88p, metric_keep 280.85kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.36kWh, PV 0.0kWh
2026-08-17 13:30:02.203427: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 324.94p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.36kWh, PV 0.0kWh
2026-08-17 13:30:02.274311: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 322.37p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.31kWh, PV 0.0kWh
2026-08-17 13:30:02.274394: Saving plan best values to HA entities
2026-08-17 13:30:02.420653: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:30:02.425740: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:30:02.430880: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.52kWh, house 0.0kWh, export 0.0kWh, metric 322.37p, metric10 324.94p
2026-08-17 13:30:02.496890: Marginal costs baseline metric (no standing charge): 275.7355
2026-08-17 13:30:02.731253: Marginal energy costs matrix computed: min=7.99 max=27.5
2026-08-17 13:30:02.806594: Rate array import [{'start': 810, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 810, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:30:02.807287: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:30:02.807330: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:30:02.807354: - The battery is currently at 65% and is in eco mode for the next 10 hours.
2026-08-17 13:30:02.807373: - For the next 48 hours there will be no solar generation.
2026-08-17 13:30:02.807391: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:30:02.807409: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:30:02.807430:
2026-08-17 13:30:02.868512: Plan calculation took 1.03 seconds
2026-08-17 13:30:02.872264: No high rate period found
2026-08-17 13:30:02.923345: Import threshold used for optimisation was 8.0p
2026-08-17 13:30:02.977625: Low import rate windows [0: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 1: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 2: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 3: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 4: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 5: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 6: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 7: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 8: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 9: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 10: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 11: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 12: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 13: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 14: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 15: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 16: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 17: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 18: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 19: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 20: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 21: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 22: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 23: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 24: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 25: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 26: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 27: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 28: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 29: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 30: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 31: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 32: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 33: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 34: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 35: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 36: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 37: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 38: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 39: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 40: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 41: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 42: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 43: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 44: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 45: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 46: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 47: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 48: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 49: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 50: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 51: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 52: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 53: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 54: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 55: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 56: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 57: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 58: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 59: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 60: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 61: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 62: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 63: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 64: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 65: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 66: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 67: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 68: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 69: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 70: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 71: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 72: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 73: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 74: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 75: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 76: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 77: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 78: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 79: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 80: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 81: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 82: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 83: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 84: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 85: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 86: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 87: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 88: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 89: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 90: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 91: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 92: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 93: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75]
2026-08-17 13:30:02.984931: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 65%, target 100%
2026-08-17 13:30:02.985097: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:30:02.985251: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:30:02.985509: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:30:02.985610: No export window planned
2026-08-17 13:30:02.985723: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:30:02.985758: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:30:02.985963: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:30:02.986153: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:30:02.986219: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:30:02.986324: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:30:02.986454: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986501: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986530: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986555: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986631: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.986983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:02.987017: Inverter 0 count register writes 0
2026-08-17 13:30:03.006524: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 13:30:03.006711: Recompute is saving previous plan...
2026-08-17 13:30:03.009838: Best charge window [ 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0% ]
2026-08-17 13:30:03.009943: Best export window [ ]
2026-08-17 13:30:03.010854: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:30:03.014022: Load divergence over 8.0 hours mean 481.45W, min 359.4W, max 1264.2W, std dev 133.42W, divergence 13.86%
2026-08-17 13:30:03.040974: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:30:03.041144: LoadML is_calculating False
2026-08-17 13:30:03.041233: Creating pool of 12 processes to match your CPU count
2026-08-17 13:30:03.119750: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 13:30:03.121640: Optimise levels pass started at 2026-08-17 13:30:03
2026-08-17 13:30:03.121708: Optimise all windows, total charge 94 export 1
2026-08-17 13:30:03.749929: >> Region optimisation pass width 960 gives best_metric 351.62p, best_cost 411.76p, best_cycle 46.84kWh, best_import 33.52kWh
2026-08-17 13:30:03.940807: >> Region optimisation pass width 480 gives best_metric 351.46p, best_cost 409.76p, best_cycle 47.1kWh, best_import 33.27kWh
2026-08-17 13:30:04.512138: >> Region optimisation pass width 240 gives best_metric 342.97p, best_cost 354.13p, best_cycle 45.54kWh, best_import 26.32kWh
2026-08-17 13:30:05.677702: >> Region optimisation pass width 120 gives best_metric 342.97p, best_cost 354.13p, best_cycle 45.54kWh, best_import 26.32kWh
2026-08-17 13:30:05.678105: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 66
2026-08-17 13:30:05.678275: Optimise levels pass ended at 2026-08-17 13:30:05, duration 2.6 seconds tried 215 combinations
2026-08-17 13:30:05.678394: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 342.97p, best_keep 0.14kWh, best_cycle 45.54kWh, best_carbon 0kg, best_import 26.32kWh
2026-08-17 13:30:05.698607: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 13:30:12.626148: Tweak plan optimisation started metric 255.11p, cost 266.98p
2026-08-17 13:30:12.938344: Tweak optimisation finished metric 255.11p, cost 266.98p, metric_keep 0.11kWh, cycle 28.57kWh, carbon 0kg, import 15.42kWh, changed 8 window(s)
2026-08-17 13:30:12.959237: Swap charge optimisation started metric 255.11p, cost 266.98p, min_improvement_swap 0.1p
2026-08-17 13:30:17.569994: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 13:30:19.852236: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:30:19.857551: Zero load period starting at 2026-08-17T10:54:00+0100 (156 minutes) for 189 minutes with base value 412.15
2026-08-17 13:30:19.863168: Processing 1345 30-minute periods for power integration
2026-08-17 13:30:20.045707: ML Component: Car charging hold False, car energy reported load False
2026-08-17 13:30:20.225197: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:30:20.402030: ML Temperature data points: 49591
2026-08-17 13:30:20.875728: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 13:30:20.944357: ML Component: Data fetch completed, load data age 58.0 days, 16986 data points
2026-08-17 13:30:20.967099: ML Component: Starting fine-tune training (2h interval), model age is 2.0831160066666667 hours
2026-08-17 13:30:20.973095: ML Component: Waiting for current prediction cycle to complete before running ML work
2026-08-17 13:30:21.108668: Swap charge optimisation finished metric 255.11p, cost 266.98p
2026-08-17 13:30:21.224911: Raw charge windows [ 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:30:21.225330: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:30:21.225501: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:30:21.225631: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 13:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:30:21.255935: Previous plan best metric is 255.6 (cost 267.55) and new plan best metric is 255.11 (cost 266.98)
2026-08-17 13:30:21.256130: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 13:30:21.256218: Plan valid is now true after recompute was False
2026-08-17 13:30:21.278443: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.59p, metric_keep 278.61kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.12kWh, PV 0.0kWh
2026-08-17 13:30:21.372119: Battery has 13.33 hours left - now at 10.4kWh
2026-08-17 13:30:21.406428: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 620.29p, metric_keep 280.26kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.16kWh, PV 0.0kWh
2026-08-17 13:30:21.472337: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 317.8p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.16kWh, PV 0.0kWh
2026-08-17 13:30:21.543842: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 314.19p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.12kWh, PV 0.0kWh
2026-08-17 13:30:21.543953: Saving plan best values to HA entities
2026-08-17 13:30:21.684550: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:30:21.689153: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:30:21.693766: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0.0kWh, export 0.0kWh, metric 314.19p, metric10 317.8p
2026-08-17 13:30:21.754629: Marginal costs baseline metric (no standing charge): 267.5528
2026-08-17 13:30:21.974967: Marginal energy costs matrix computed: min=7.99 max=27.5
2026-08-17 13:30:22.036381: Rate array import [{'start': 810, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 810, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:30:22.036961: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:30:22.036997: - Import rates are very expensive (33.8p - 46.4p) for the next 10 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:30:22.037015: - The battery is currently at 65% and is in eco mode for the next 10 hours.
2026-08-17 13:30:22.037030: - For the next 48 hours there will be no solar generation.
2026-08-17 13:30:22.037045: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:30:22.037062: - Your next charge slot will be in 10 hours where import rates will be cheap (8.0p).
2026-08-17 13:30:22.037076:
2026-08-17 13:30:22.090123: Plan calculation took 19.08 seconds
2026-08-17 13:30:22.090381: Inverter 0: Type SK Sunsynk
2026-08-17 13:30:22.090417: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:30:22.090618: Reserve min: 7%, battery_min: 7%
2026-08-17 13:30:22.090683: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:30:22.090945: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 574W, current battery voltage 51.2V, grid power -56W, load power 641W, PV Power 0W
2026-08-17 13:30:22.091133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:30:22.091212: Inverter 0 scheduled charge enable is False
2026-08-17 13:30:22.091236: Inverter 0 charge windows currently []
2026-08-17 13:30:22.091260: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:30:22.091351: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:30:22.091376: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:30:22.091404: Inverter 0 scheduled discharge enable is False
2026-08-17 13:30:22.091513: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:30:22.091545: Inverter 0 discharge windows currently []
2026-08-17 13:30:22.091581: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:30:22.091600: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:30:22.091614: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:30:22.137946: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 65%, target 100%
2026-08-17 13:30:22.138067: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:30:22.138125: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:30:22.138282: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:30:22.138382: No export window planned
2026-08-17 13:30:22.138652: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:30:22.138715: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:30:22.138892: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:30:22.139063: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:30:22.139116: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:30:22.139175: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:30:22.139256: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139296: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139433: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139511: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139653: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:30:22.139726: Inverter 0 count register writes 0
2026-08-17 13:30:22.162821: Total inverter register writes now 861
2026-08-17 13:30:22.192489: Info: Completed run status Demand
2026-08-17 13:30:22.198448: Info: record_status Demand
2026-08-17 13:30:22.204900: Saved current settings to /config/predbat_config.json
2026-08-17 13:30:22.205144: Compare, best tariff: current metric 104.68p
2026-08-17 13:30:22.487591: ML Component: Doing training...
2026-08-17 13:30:22.502005: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=55.0 days)
2026-08-17 13:30:22.502113: ML Predictor: Curriculum training - 5 passes, window 55.0→58.0 days + final full pass (59.0 days)
2026-08-17 13:30:22.549281: ML Predictor: Curriculum pass 1/5: window=55.0 days (1320 hours of data)
2026-08-17 13:30:22.549384: ML Predictor: Starting initial training with 30 epochs
2026-08-17 13:30:23.090266: ML Predictor: Creating dataset with 1320 hours of training data, 48 hours validation
2026-08-17 13:30:27.914993: ML Predictor: Created 15552 training samples, 576 validation samples
2026-08-17 13:30:27.969352: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0481) load(mean=0.0588 std=0.0469) pv(mean=0.0000 std=0.0100) temp(mean=19.6012 std=4.4850) import_rate(mean=16.9112 std=8.3457) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1887 std=0.5257)
2026-08-17 13:30:40.160449: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0250 val_mae=0.0092 kWh val_bias=-0.0022 kWh (-3.0%) combined=0.0050 kWh ema_combined=0.0050 kWh
2026-08-17 13:30:54.226332: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0444 val_mae=0.0071 kWh val_bias=+0.0010 kWh (+1.4%) combined=0.0055 kWh ema_combined=0.0052 kWh
2026-08-17 13:31:03.998135: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:31:03.998401: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:31:03.998452: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:31:03.998632: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:31:03.998681: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:31:03.998796: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:31:03.998839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:31:06.741042: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0356 val_mae=0.0060 kWh val_bias=-0.0023 kWh (-3.2%) combined=0.0056 kWh ema_combined=0.0053 kWh
2026-08-17 13:31:18.206802: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0261 val_mae=0.0047 kWh val_bias=-0.0006 kWh (-0.9%) combined=0.0026 kWh ema_combined=0.0045 kWh
2026-08-17 13:31:29.722907: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0208 val_mae=0.0041 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0022 kWh ema_combined=0.0038 kWh
2026-08-17 13:31:40.906960: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0163 val_mae=0.0042 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0025 kWh ema_combined=0.0034 kWh
2026-08-17 13:31:57.213171: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0131 val_mae=0.0043 kWh val_bias=-0.0017 kWh (-2.4%) combined=0.0031 kWh ema_combined=0.0033 kWh
2026-08-17 13:32:10.849946: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0118 val_mae=0.0039 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0021 kWh ema_combined=0.0030 kWh
2026-08-17 13:32:23.281819: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0114 val_mae=0.0038 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0020 kWh ema_combined=0.0027 kWh
2026-08-17 13:32:35.282445: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0101 val_mae=0.0034 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-17 13:32:45.250530: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0092 val_mae=0.0035 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-17 13:32:58.466637: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0093 val_mae=0.0029 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0015 kWh ema_combined=0.0021 kWh
2026-08-17 13:33:04.349890: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:33:04.350218: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:33:04.350272: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:33:04.350438: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:33:04.350485: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:33:04.350514: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:33:04.350542: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:33:11.213664: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0086 val_mae=0.0028 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-17 13:33:22.147881: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0085 val_mae=0.0028 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-17 13:33:34.011221: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0075 val_mae=0.0030 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-17 13:33:46.039850: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0071 val_mae=0.0032 kWh val_bias=-0.0016 kWh (-2.2%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-17 13:34:00.024982: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0071 val_mae=0.0030 kWh val_bias=-0.0015 kWh (-2.1%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-17 13:34:12.549344: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0027 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0020 kWh
2026-08-17 13:34:25.250036: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0067 val_mae=0.0030 kWh val_bias=-0.0015 kWh (-2.1%) combined=0.0025 kWh ema_combined=0.0022 kWh
2026-08-17 13:34:36.388589: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0064 val_mae=0.0026 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0019 kWh
2026-08-17 13:34:47.045809: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0062 val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-17 13:35:00.679448: --------------- PredBat - update at 2026-08-17 13:35:00+01:00 with clock skew 0 minutes, minutes now 815
2026-08-17 13:35:00.680350: Saved current settings to /config/predbat_config.json
2026-08-17 13:35:00.680486: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 13:35:00.680585: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:35:00.680678: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:35:00.718075: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:35:00.718235: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:35:00.718520: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:35:00.719046: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:35:00.719167: Predbat mode is set to Control charge & discharge
2026-08-17 13:35:01.037354: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:35:01.037472: Using load_power data to fill gaps in load_today data
2026-08-17 13:35:01.264588: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0061 val_mae=0.0025 kWh val_bias=-0.0010 kWh (-1.4%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-17 13:35:02.451990: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:35:02.452335: Zero load period starting at 2026-08-17T10:54:00+0100 (161 minutes) for 189 minutes with base value 215.0
2026-08-17 13:35:02.452888: Processing 721 30-minute periods for power integration
2026-08-17 13:35:02.641850: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:35:02.642150: Car charging hold False, threshold 6.0kWh
2026-08-17 13:35:02.642334: Current data so far today: load 7.3kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:35:02.670567: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:35:02.670900: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:35:02.672055: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:35:02.672299: Standing charge is set to 46.63p
2026-08-17 13:35:02.900033: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.900645: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.901049: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.901441: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.901847: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.902231: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.902631: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.903013: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.903384: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.903772: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.904197: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.904593: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.906257: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.906658: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.907028: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.907396: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.907777: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.924287: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.924904: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:35:02.925088: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:35:02.925407: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:35:02.933461: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:35:02.934055: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:35:03.039349: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:35:03.039650: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:35:03.041101: High export rate found rates in range 99p to -99p
2026-08-17 13:35:03.133468: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:35:03.133748: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:35:03.151210: Battery level now 10.4kWh, -1hr ago 11.07kWh, at midnight 10.49kWh, battery value change in the last hour -4.62p, change today -0.6p, rate_forward 6.87p
2026-08-17 13:35:03.151784: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:35:03.275055: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:35:03.275229: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:35:03.461616: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:35:03.485962: Today's load divergence 98.25%, in-day adjustment 85.33%, damping 0.95x, yesterday 68.37% today 98.33% blend 43.4%
2026-08-17 13:35:03.486284: Today's predicted so far 8.82kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 8.82kWh forecast extra.
2026-08-17 13:35:03.486330: Today's actual load so far 8.55kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 13:35:03.528139: Inverter 0: Type SK Sunsynk
2026-08-17 13:35:03.528236: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:35:03.528429: Reserve min: 7%, battery_min: 7%
2026-08-17 13:35:03.528510: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:35:03.528812: Inverter 0 SoC: 10.4kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power 531W, current battery voltage 51.2V, grid power -54W, load power 692W, PV Power 0W
2026-08-17 13:35:03.528975: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:35:03.529078: Inverter 0 scheduled charge enable is False
2026-08-17 13:35:03.529107: Inverter 0 charge windows currently []
2026-08-17 13:35:03.529133: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:35:03.529246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:35:03.529282: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:35:03.529317: Inverter 0 scheduled discharge enable is False
2026-08-17 13:35:03.529444: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:35:03.529481: Inverter 0 discharge windows currently []
2026-08-17 13:35:03.529504: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:35:03.529523: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:35:03.529578: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:35:03.601872: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:35:03.601980: Plan was last updated on 2026-08-17 13:30:00+01:00 and is now 5.0 minutes old
2026-08-17 13:35:03.602196: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:35:03.602235: Best export window [ ]
2026-08-17 13:35:03.603276: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:35:03.607129: Load divergence over 8.0 hours mean 475.15W, min 334.8W, max 1113.0W, std dev 113.07W, divergence 11.9%
2026-08-17 13:35:03.630151: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:35:03.630460: LoadML is_calculating True
2026-08-17 13:35:03.630501: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 13:35:03.672880: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.01p, metric_keep 278.75kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.23kWh, PV 0.0kWh
2026-08-17 13:35:03.878631: Battery has 13.25 hours left - now at 10.4kWh
2026-08-17 13:35:03.992278: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 620.71p, metric_keep 280.4kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.28kWh, PV 0.0kWh
2026-08-17 13:35:04.103396: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 321.11p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.28kWh, PV 0.0kWh
2026-08-17 13:35:04.225254: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 318.02p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.23kWh, PV 0.0kWh
2026-08-17 13:35:04.225363: Saving plan best values to HA entities
2026-08-17 13:35:04.553862: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:35:04.559423: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 13:35:04.570110: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.98kWh, house 0.0kWh, export 0.0kWh, metric 318.02p, metric10 321.11p
2026-08-17 13:35:04.714984: Marginal costs baseline metric (no standing charge): 271.3899
2026-08-17 13:35:05.164307: Marginal energy costs matrix computed: min=8.0 max=27.9
2026-08-17 13:35:05.274932: Rate array import [{'start': 815, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 815, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:35:05.275766: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:35:05.275896: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:35:05.276027: - The battery is currently at 65% and is in eco mode for the next 9 hours.
2026-08-17 13:35:05.276122: - For the next 48 hours there will be no solar generation.
2026-08-17 13:35:05.276223: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:35:05.276311: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 13:35:05.276399:
2026-08-17 13:35:05.321284: Plan calculation took 1.72 seconds
2026-08-17 13:35:05.325264: No high rate period found
2026-08-17 13:35:05.408479: Import threshold used for optimisation was 8.0p
2026-08-17 13:35:05.484112: Low import rate windows [0: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 1: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 2: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 3: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 4: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 5: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 6: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 7: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 8: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 9: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 10: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 11: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 12: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 13: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 14: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 15: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 16: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 17: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 18: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 19: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 20: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 21: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 22: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 23: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 24: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 25: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 26: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 27: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 28: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 29: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 30: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 31: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 32: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 33: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 34: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 35: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 36: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 37: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 38: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 39: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 40: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 41: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 42: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 43: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 44: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 45: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 46: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 47: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 48: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 49: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 50: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 51: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 52: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 53: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 54: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 55: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 56: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 57: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 58: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 59: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 60: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 61: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 62: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 63: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 64: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 65: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 66: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 67: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 68: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 69: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 70: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 71: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 72: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 73: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 74: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 75: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 76: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 77: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 78: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 79: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 80: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 81: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 82: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 83: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 84: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 85: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 86: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 87: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 88: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 89: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 90: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 91: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 92: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 93: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 94: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75]
2026-08-17 13:35:05.491963: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 65%, target 100%
2026-08-17 13:35:05.492078: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:35:05.492147: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:35:05.492316: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:35:05.492390: No export window planned
2026-08-17 13:35:05.492484: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:35:05.492519: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:35:05.492671: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:35:05.492817: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:35:05.492867: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:35:05.492913: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:35:05.492995: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493037: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493067: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493103: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493131: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493166: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:35:05.493510: Inverter 0 count register writes 0
2026-08-17 13:35:05.512072: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 13:35:05.517991: Total inverter register writes now 861
2026-08-17 13:35:05.553350: Info: Completed run status Demand
2026-08-17 13:35:05.560578: Info: record_status Demand
2026-08-17 13:35:05.568065: Saved current settings to /config/predbat_config.json
2026-08-17 13:35:05.568247: Compare, best tariff: current metric 104.68p
2026-08-17 13:35:17.048265: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0060 val_mae=0.0024 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 13:35:29.515080: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0055 val_mae=0.0027 kWh val_bias=-0.0007 kWh (-1.0%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-17 13:35:42.052302: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 13:35:48.693215: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:35:48.693883: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:35:48.694091: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:35:48.694438: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:35:48.694644: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:35:48.694759: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:35:48.694927: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:35:54.513016: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 13:36:07.714709: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 13:36:18.306350: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-17 13:36:30.926769: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 13:36:43.054620: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=-0.0009 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0016 kWh
2026-08-17 13:36:43.055401: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-17 13:36:43.055528: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-17 13:36:43.950169: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=+0.0004 kWh (+0.6%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-17 13:36:43.957897: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0023 kWh
2026-08-17 13:36:44.021480: ML Predictor: Curriculum pass 2/5: window=56.0 days (1344 hours of data)
2026-08-17 13:36:44.021645: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 13:36:44.652536: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 13:36:49.101730: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 13:36:49.150667: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0478) load(mean=0.0589 std=0.0470) pv(mean=0.0000 std=0.0100) temp(mean=19.6138 std=4.4953) import_rate(mean=16.8950 std=8.3466) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1891 std=0.5259)
2026-08-17 13:36:49.227126: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 13:36:49.239742: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 13:36:49.261859: ML Predictor: Baseline (pre-finetune) val_mae=0.0047 kWh val_bias=+0.0003 kWh
2026-08-17 13:37:01.237103: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0075 kWh val_bias=-0.0051 kWh (-5.7%) combined=0.0065 kWh ema_combined=0.0065 kWh
2026-08-17 13:37:15.007473: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0112 val_mae=0.0051 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0031 kWh ema_combined=0.0054 kWh
2026-08-17 13:37:28.205597: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0162 val_mae=0.0053 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0027 kWh ema_combined=0.0046 kWh
2026-08-17 13:37:40.931301: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0152 val_mae=0.0064 kWh val_bias=-0.0022 kWh (-2.5%) combined=0.0050 kWh ema_combined=0.0047 kWh
2026-08-17 13:37:48.981068: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:37:48.981372: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:37:48.981430: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:37:48.981651: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:37:48.981708: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:37:48.981745: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:37:48.981865: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:37:54.385758: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0147 val_mae=0.0049 kWh val_bias=-0.0024 kWh (-2.7%) combined=0.0040 kWh ema_combined=0.0045 kWh
2026-08-17 13:38:07.450983: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0107 val_mae=0.0040 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0034 kWh ema_combined=0.0042 kWh
2026-08-17 13:38:21.804325: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0103 val_mae=0.0046 kWh val_bias=-0.0021 kWh (-2.3%) combined=0.0039 kWh ema_combined=0.0041 kWh
2026-08-17 13:38:35.197356: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0097 val_mae=0.0037 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0025 kWh ema_combined=0.0036 kWh
2026-08-17 13:38:52.437895: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0087 val_mae=0.0036 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0023 kWh ema_combined=0.0032 kWh
2026-08-17 13:39:07.723543: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0086 val_mae=0.0042 kWh val_bias=-0.0023 kWh (-2.6%) combined=0.0042 kWh ema_combined=0.0035 kWh
2026-08-17 13:39:07.723775: ML Predictor: Early stopping at epoch 10
2026-08-17 13:39:07.724596: ML Predictor: Restored best weights from epoch with val_mae=0.0047 kWh val_bias=+0.0003 kWh (+0.4%)
2026-08-17 13:39:07.724909: ML Predictor: Training complete, final val_mae=0.0047 kWh val_bias=+0.0003 kWh (+0.4%)
2026-08-17 13:39:08.962655: ML Predictor: AR rollout over holdout: ar_mae=0.0055 kWh ar_bias=+0.0010 kWh (+1.1%) [drift vs teacher-forced: +0.0008 kWh]
2026-08-17 13:39:08.968126: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0047 kWh
2026-08-17 13:39:09.052669: ML Predictor: Curriculum pass 3/5: window=57.0 days (1368 hours of data)
2026-08-17 13:39:09.052916: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 13:39:09.685657: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 13:39:14.332032: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 13:39:14.385993: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0478) load(mean=0.0590 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.6270 std=4.5032) import_rate(mean=16.8648 std=8.3480) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1899 std=0.5261)
2026-08-17 13:39:14.468607: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 13:39:14.482963: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 13:39:14.506519: ML Predictor: Baseline (pre-finetune) val_mae=0.0065 kWh val_bias=+0.0008 kWh
2026-08-17 13:39:29.761052: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0111 val_mae=0.0055 kWh val_bias=-0.0013 kWh (-1.7%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-17 13:39:49.322063: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:39:49.322550: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:39:49.322713: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:39:49.323076: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:39:49.323226: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:39:49.323352: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:39:49.323473: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:39:53.069332: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0121 val_mae=0.0052 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0030 kWh ema_combined=0.0033 kWh
2026-08-17 13:40:00.596302: --------------- PredBat - update at 2026-08-17 13:40:00+01:00 with clock skew 0 minutes, minutes now 820
2026-08-17 13:40:00.598359: Saved current settings to /config/predbat_config.json
2026-08-17 13:40:00.598675: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 13:40:00.598895: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:40:00.599112: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:40:00.664294: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:40:00.664478: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:40:00.664887: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:40:00.665791: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:40:00.666006: Predbat mode is set to Control charge & discharge
2026-08-17 13:40:01.131360: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:40:01.131587: Using load_power data to fill gaps in load_today data
2026-08-17 13:40:02.439130: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:40:02.439362: Zero load period starting at 2026-08-17T10:54:00+0100 (166 minutes) for 189 minutes with base value 214.975
2026-08-17 13:40:02.440017: Processing 721 30-minute periods for power integration
2026-08-17 13:40:02.792852: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:40:02.792980: Car charging hold False, threshold 6.0kWh
2026-08-17 13:40:02.793026: Current data so far today: load 7.35kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:40:02.813251: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:40:02.813944: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:40:02.814692: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:40:02.814766: Standing charge is set to 46.63p
2026-08-17 13:40:02.974929: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.975258: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.975533: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.975793: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.976065: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.976314: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.976582: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.976822: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.977054: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.977292: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.977542: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.977785: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.978020: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.978255: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.978492: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.978747: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.978979: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.979213: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.979446: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:40:02.979546: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:40:02.979687: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:40:02.990083: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:40:03.017401: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:40:03.103411: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:40:03.103967: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:40:03.105406: High export rate found rates in range 99p to -99p
2026-08-17 13:40:03.220055: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:40:03.220211: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:40:03.237645: Battery level now 10.4kWh, -1hr ago 11.04kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -0.6p, rate_forward 6.87p
2026-08-17 13:40:03.238188: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:40:03.376426: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:40:03.376997: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:40:03.638195: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:40:03.678968: Today's load divergence 98.34%, in-day adjustment 85.48%, damping 0.95x, yesterday 68.37% today 98.42% blend 43.06%
2026-08-17 13:40:03.679174: Today's predicted so far 8.84kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 8.84kWh forecast extra.
2026-08-17 13:40:03.679233: Today's actual load so far 8.58kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 13:40:03.740528: Inverter 0: Type SK Sunsynk
2026-08-17 13:40:03.740634: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:40:03.740929: Reserve min: 7%, battery_min: 7%
2026-08-17 13:40:03.741040: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:40:03.741662: Inverter 0 SoC: 10.25kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 531W, current battery voltage 51.2V, grid power -52W, load power 589W, PV Power 0W
2026-08-17 13:40:03.741894: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:40:03.742020: Inverter 0 scheduled charge enable is False
2026-08-17 13:40:03.742090: Inverter 0 charge windows currently []
2026-08-17 13:40:03.742149: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:40:03.742355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:40:03.742397: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:40:03.742471: Inverter 0 scheduled discharge enable is False
2026-08-17 13:40:03.742699: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:40:03.742741: Inverter 0 discharge windows currently []
2026-08-17 13:40:03.742765: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:40:03.742792: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:40:03.742819: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:40:03.859407: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:40:03.859567: Plan was last updated on 2026-08-17 13:30:00+01:00 and is now 10.0 minutes old
2026-08-17 13:40:03.860132: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:40:03.860310: Best export window [ ]
2026-08-17 13:40:03.863794: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:40:03.870585: Load divergence over 8.0 hours mean 469.01W, min 336.6W, max 1069.2W, std dev 93.55W, divergence 9.97%
2026-08-17 13:40:03.907066: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:40:03.907340: LoadML is_calculating True
2026-08-17 13:40:03.923972: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 13:40:04.021560: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 599.58p, metric_keep 279.5kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.34kWh, PV 0.0kWh
2026-08-17 13:40:04.393455: Battery has 13.08 hours left - now at 10.25kWh
2026-08-17 13:40:04.490033: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 622.32p, metric_keep 281.1kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.38kWh, PV 0.0kWh
2026-08-17 13:40:04.637236: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 325.6p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.38kWh, PV 0.0kWh
2026-08-17 13:40:04.885958: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 322.97p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.34kWh, PV 0.0kWh
2026-08-17 13:40:04.886099: Saving plan best values to HA entities
2026-08-17 13:40:05.374735: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:40:05.384261: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 13:40:05.393669: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.59kWh, house 0.0kWh, export 0.0kWh, metric 322.97p, metric10 325.6p
2026-08-17 13:40:05.590222: Marginal costs baseline metric (no standing charge): 276.3373
2026-08-17 13:40:06.253622: Marginal energy costs matrix computed: min=7.98 max=28.75
2026-08-17 13:40:06.512128: Rate array import [{'start': 820, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 820, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:40:06.516826: - Your estimated bill for today is £1.67 and tomorrow is £1.72
2026-08-17 13:40:06.517099: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:40:06.517317: - The battery is currently at 64% and is in eco mode for the next 9 hours.
2026-08-17 13:40:06.517468: - For the next 48 hours there will be no solar generation.
2026-08-17 13:40:06.517614: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:40:06.517749: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 13:40:06.517870:
2026-08-17 13:40:06.621540: Plan calculation took 2.76 seconds
2026-08-17 13:40:06.626703: No high rate period found
2026-08-17 13:40:06.874912: Import threshold used for optimisation was 8.0p
2026-08-17 13:40:07.063438: Low import rate windows [0: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 1: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 2: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 3: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 4: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 5: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 6: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 7: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 8: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 9: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 10: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 11: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 12: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 13: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 14: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 15: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 16: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 17: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 18: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 19: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 20: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 21: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 22: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 23: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 24: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 25: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 26: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 27: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 28: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 29: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 30: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 31: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 32: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 33: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 34: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 35: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 36: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 37: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 38: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 39: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 40: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 41: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 42: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 43: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 44: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 45: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 46: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 47: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 48: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 49: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 50: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 51: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 52: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 53: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 54: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 55: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 56: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 57: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 58: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 59: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 60: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 61: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 62: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 63: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 64: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 65: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 66: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 67: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 68: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 69: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 70: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 71: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 72: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 73: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 74: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 75: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 76: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 77: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 78: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 79: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 80: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 81: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 82: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 83: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 84: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 85: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 86: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 87: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 88: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 89: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 90: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 91: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 92: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 93: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 94: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75]
2026-08-17 13:40:07.083474: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-17 13:40:07.083951: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:40:07.084195: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:40:07.088752: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:40:07.089147: No export window planned
2026-08-17 13:40:07.089441: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:40:07.089804: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:40:07.090263: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:40:07.090710: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:40:07.090910: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:40:07.091108: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:40:07.091324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.091454: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.091572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.091656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.091708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.091784: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.091946: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092654: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:40:07.092842: Inverter 0 count register writes 0
2026-08-17 13:40:07.140216: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 13:40:07.140498: Recompute is saving previous plan...
2026-08-17 13:40:07.148006: Best charge window [ 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0% ]
2026-08-17 13:40:07.166935: Best export window [ ]
2026-08-17 13:40:07.170456: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:40:07.188716: Load divergence over 8.0 hours mean 469.01W, min 336.6W, max 1069.2W, std dev 93.55W, divergence 9.97%
2026-08-17 13:40:07.249074: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:40:07.249207: LoadML is_calculating True
2026-08-17 13:40:07.249247: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 13:40:07.277040: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 13:40:07.280077: Optimise levels pass started at 2026-08-17 13:40:07
2026-08-17 13:40:07.280278: Optimise all windows, total charge 94 export 1
2026-08-17 13:40:10.500039: >> Region optimisation pass width 960 gives best_metric 353.03p, best_cost 412.26p, best_cycle 46.92kWh, best_import 33.59kWh
2026-08-17 13:40:11.170919: >> Region optimisation pass width 480 gives best_metric 353.03p, best_cost 412.26p, best_cycle 46.92kWh, best_import 33.59kWh
2026-08-17 13:40:15.154035: >> Region optimisation pass width 240 gives best_metric 346.62p, best_cost 369.98p, best_cycle 47.03kWh, best_import 28.3kWh
2026-08-17 13:40:20.017210: >> Region optimisation pass width 120 gives best_metric 346.62p, best_cost 369.98p, best_cycle 47.03kWh, best_import 28.3kWh
2026-08-17 13:40:20.020877: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 66
2026-08-17 13:40:20.021096: Optimise levels pass ended at 2026-08-17 13:40:20, duration 12.7 seconds tried 225 combinations
2026-08-17 13:40:20.021278: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 346.62p, best_keep 0kWh, best_cycle 47.03kWh, best_carbon 0kg, best_import 28.3kWh
2026-08-17 13:40:20.091997: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 15.25, 15.25, 15.25, 15.25, 15.25, 15.25, 15.25, 15.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 13:40:41.971431: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0111 val_mae=0.0051 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0027 kWh ema_combined=0.0031 kWh
2026-08-17 13:40:53.699013: Tweak plan optimisation started metric 256.51p, cost 269.83p
2026-08-17 13:40:54.819438: Tweak optimisation finished metric 256.51p, cost 269.83p, metric_keep 0kWh, cycle 29.86kWh, carbon 0kg, import 15.78kWh, changed 8 window(s)
2026-08-17 13:40:54.850168: Swap charge optimisation started metric 256.51p, cost 269.83p, min_improvement_swap 0.1p
2026-08-17 13:41:05.897361: Swap charge optimisation finished metric 256.51p, cost 269.83p
2026-08-17 13:41:06.260348: Raw charge windows [ 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 91%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 95%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 95%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 95%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 95%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 95%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 95%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:41:06.274685: Unclipped charge windows [ 17-08 23:30:00 - 18-08 04:30:00 @ 8.0p 95%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:41:06.275087: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 04:30:00 @ 8.0p 95%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:41:06.275377: Filtered charge windows [ 17-08 23:30:00 - 18-08 04:30:00 @ 8.0p 95%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:41:06.363003: Previous plan best metric is 256.07 (cost 268.05) and new plan best metric is 256.51 (cost 269.83)
2026-08-17 13:41:06.363651: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 13:41:06.363819: Plan valid is now true after recompute was False
2026-08-17 13:41:06.415396: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 597.96p, metric_keep 278.91kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.13kWh, PV 0.0kWh
2026-08-17 13:41:06.639138: Battery has 13.08 hours left - now at 10.25kWh
2026-08-17 13:41:06.771861: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 620.63p, metric_keep 280.52kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.17kWh, PV 0.0kWh
2026-08-17 13:41:07.017133: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 318.35p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-17 13:41:07.202422: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 314.69p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.13kWh, PV 0.0kWh
2026-08-17 13:41:07.205461: Saving plan best values to HA entities
2026-08-17 13:41:07.492628: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:41:07.511274: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 13:41:07.528623: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.56kWh, house 0.0kWh, export 0.0kWh, metric 314.69p, metric10 318.35p
2026-08-17 13:41:07.737230: Marginal costs baseline metric (no standing charge): 268.0531
2026-08-17 13:41:08.337051: Marginal energy costs matrix computed: min=7.98 max=28.75
2026-08-17 13:41:08.499420: Rate array import [{'start': 820, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 820, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:41:08.500652: - Your estimated bill for today is £1.67 and tomorrow is £1.72
2026-08-17 13:41:08.500829: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:41:08.500957: - The battery is currently at 64% and is in eco mode for the next 9 hours.
2026-08-17 13:41:08.501081: - For the next 48 hours there will be no solar generation.
2026-08-17 13:41:08.501199: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:41:08.501314: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 13:41:08.501433:
2026-08-17 13:41:08.601570: Plan calculation took 61.46 seconds
2026-08-17 13:41:08.601894: Inverter 0: Type SK Sunsynk
2026-08-17 13:41:08.601952: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:41:08.602185: Reserve min: 7%, battery_min: 7%
2026-08-17 13:41:08.602282: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:41:08.603267: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 578W, current battery voltage 51.2V, grid power -60W, load power 643W, PV Power 0W
2026-08-17 13:41:08.603494: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:41:08.603928: Inverter 0 scheduled charge enable is False
2026-08-17 13:41:08.604156: Inverter 0 charge windows currently []
2026-08-17 13:41:08.604216: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:41:08.604392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:41:08.604442: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:41:08.604522: Inverter 0 scheduled discharge enable is False
2026-08-17 13:41:08.604712: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:41:08.604761: Inverter 0 discharge windows currently []
2026-08-17 13:41:08.604818: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:41:08.604853: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:41:08.604894: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:41:08.868357: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-17 13:41:08.868817: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:41:08.869078: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:41:08.869643: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:41:08.869978: No export window planned
2026-08-17 13:41:08.870393: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:41:08.870594: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:41:08.871157: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:41:08.871666: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:41:08.871934: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:41:08.872253: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:41:08.872628: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.872858: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.873082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.873317: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.873565: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.873701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.873901: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.874123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.874266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.874429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.874720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.874882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.875039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.875227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:41:08.875380: Inverter 0 count register writes 0
2026-08-17 13:41:08.921636: Total inverter register writes now 861
2026-08-17 13:41:08.976825: Info: Completed run status Demand
2026-08-17 13:41:08.985192: Info: record_status Demand
2026-08-17 13:41:08.994043: Saved current settings to /config/predbat_config.json
2026-08-17 13:41:08.994265: Compare, best tariff: current metric 104.68p
2026-08-17 13:41:31.566158: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0111 val_mae=0.0058 kWh val_bias=-0.0015 kWh (-1.9%) combined=0.0037 kWh ema_combined=0.0033 kWh
2026-08-17 13:41:49.197896: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:41:49.198478: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:41:49.198654: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:41:49.199048: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:41:49.199333: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:41:49.199515: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:41:49.199719: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:42:04.678793: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0121 val_mae=0.0053 kWh val_bias=-0.0017 kWh (-2.1%) combined=0.0027 kWh ema_combined=0.0031 kWh
2026-08-17 13:42:38.652858: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0151 val_mae=0.0050 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0026 kWh ema_combined=0.0030 kWh
2026-08-17 13:43:08.464985: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0115 val_mae=0.0039 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0026 kWh ema_combined=0.0028 kWh
2026-08-17 13:43:45.634881: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0095 val_mae=0.0037 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0027 kWh ema_combined=0.0028 kWh
2026-08-17 13:44:04.022922: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:44:04.023535: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:44:04.023809: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:44:04.024174: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:44:04.024328: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:44:04.024487: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:44:04.024646: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:44:23.852606: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0091 val_mae=0.0037 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-17 13:45:00.466833: --------------- PredBat - update at 2026-08-17 13:45:00+01:00 with clock skew 0 minutes, minutes now 825
2026-08-17 13:45:00.482601: Saved current settings to /config/predbat_config.json
2026-08-17 13:45:00.482772: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 13:45:00.482856: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:45:00.482944: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:45:00.503831: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:45:00.504019: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:45:00.504300: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:45:00.504821: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:45:00.504959: Predbat mode is set to Control charge & discharge
2026-08-17 13:45:00.899887: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:45:00.900089: Using load_power data to fill gaps in load_today data
2026-08-17 13:45:02.633036: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:45:02.633652: Zero load period starting at 2026-08-17T10:54:00+0100 (171 minutes) for 189 minutes with base value 214.95
2026-08-17 13:45:02.634057: Processing 721 30-minute periods for power integration
2026-08-17 13:45:02.856217: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:45:02.856598: Car charging hold False, threshold 6.0kWh
2026-08-17 13:45:02.856832: Current data so far today: load 7.4kWh, import 7.7kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:45:02.886563: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:45:02.886957: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:45:02.888227: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:45:02.888504: Standing charge is set to 46.63p
2026-08-17 13:45:03.150840: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.151535: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.152213: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.153190: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.153451: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.153855: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.154198: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.154737: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.155128: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.155410: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.155962: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.156466: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.156906: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.157111: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.157433: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.157762: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.158033: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.158366: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.158800: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:45:03.159985: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:45:03.160402: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:45:03.169387: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:45:03.170019: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:45:03.236386: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:45:03.236710: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:45:03.238973: High export rate found rates in range 99p to -99p
2026-08-17 13:45:03.394050: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:45:03.394413: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:45:03.436621: Battery level now 10.25kWh, -1hr ago 10.97kWh, at midnight 10.49kWh, battery value change in the last hour -4.95p, change today -1.65p, rate_forward 6.87p
2026-08-17 13:45:03.437528: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:45:03.597475: Today's energy total net 7.7kWh, import 7.7kWh, export 0.0kWh, cost 143.58p, import 96.94p, export 0.0p, carbon 0.0kg
2026-08-17 13:45:03.597860: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:45:03.748506: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:45:03.786615: Today's load divergence 98.4%, in-day adjustment 85.62%, damping 0.95x, yesterday 68.37% today 98.48% blend 42.71%
2026-08-17 13:45:03.787050: Today's predicted so far 8.87kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 8.87kWh forecast extra.
2026-08-17 13:45:03.787221: Today's actual load so far 8.62kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 13:45:03.862998: Inverter 0: Type SK Sunsynk
2026-08-17 13:45:03.863370: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:45:03.863793: Reserve min: 7%, battery_min: 7%
2026-08-17 13:45:03.864049: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:45:03.864714: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 559W, current battery voltage 51.2V, grid power -53W, load power 606W, PV Power 0W
2026-08-17 13:45:03.865065: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:45:03.865306: Inverter 0 scheduled charge enable is False
2026-08-17 13:45:03.865463: Inverter 0 charge windows currently []
2026-08-17 13:45:03.865619: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:45:03.865934: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:45:03.866090: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:45:03.866254: Inverter 0 scheduled discharge enable is False
2026-08-17 13:45:03.866559: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:45:03.866729: Inverter 0 discharge windows currently []
2026-08-17 13:45:03.866871: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:45:03.867014: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:45:03.867178: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:45:03.911306: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0085 val_mae=0.0039 kWh val_bias=-0.0023 kWh (-2.9%) combined=0.0035 kWh ema_combined=0.0029 kWh
2026-08-17 13:45:04.176748: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:45:04.176883: Plan was last updated on 2026-08-17 13:40:00+01:00 and is now 5.0 minutes old
2026-08-17 13:45:04.177191: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:45:04.177243: Best export window [ ]
2026-08-17 13:45:04.178608: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:45:04.183421: Load divergence over 8.0 hours mean 456.14W, min 339.0W, max 685.8W, std dev 63.73W, divergence 6.99%
2026-08-17 13:45:04.218479: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:45:04.218614: LoadML is_calculating True
2026-08-17 13:45:04.218684: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 13:45:04.315155: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 598.78p, metric_keep 278.94kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.23kWh, PV 0.0kWh
2026-08-17 13:45:04.618071: Battery has 13.08 hours left - now at 10.24kWh
2026-08-17 13:45:04.740299: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 621.43p, metric_keep 280.57kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.27kWh, PV 0.0kWh
2026-08-17 13:45:04.989084: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 321.42p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.27kWh, PV 0.0kWh
2026-08-17 13:45:05.190239: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 318.37p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.23kWh, PV 0.0kWh
2026-08-17 13:45:05.190345: Saving plan best values to HA entities
2026-08-17 13:45:05.612365: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:45:05.638437: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 13:45:05.647740: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.02kWh, house 0.0kWh, export 0.0kWh, metric 318.37p, metric10 321.42p
2026-08-17 13:45:05.855053: Marginal costs baseline metric (no standing charge): 271.7361
2026-08-17 13:45:06.349188: Marginal energy costs matrix computed: min=7.99 max=29.1
2026-08-17 13:45:06.471179: Rate array import [{'start': 825, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 825, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:45:06.472425: - Your estimated bill for today is £1.67 and tomorrow is £1.71
2026-08-17 13:45:06.472506: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:45:06.472537: - The battery is currently at 64% and is in eco mode for the next 9 hours.
2026-08-17 13:45:06.472567: - For the next 48 hours there will be no solar generation.
2026-08-17 13:45:06.472590: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:45:06.472608: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 13:45:06.472633:
2026-08-17 13:45:06.537898: Plan calculation took 2.36 seconds
2026-08-17 13:45:06.544601: No high rate period found
2026-08-17 13:45:06.729484: Import threshold used for optimisation was 8.0p
2026-08-17 13:45:06.926781: Low import rate windows [0: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 1: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 2: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 3: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 4: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 5: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 6: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 7: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 8: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 9: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 10: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 11: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 12: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 13: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 14: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 15: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 16: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 17: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 18: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 19: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 20: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 21: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 22: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 23: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 24: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 25: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 26: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 27: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 28: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 29: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 30: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 31: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 32: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 33: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 34: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 35: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 36: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 37: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 38: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 39: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 40: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 41: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 42: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 43: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 44: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 45: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 46: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 47: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 48: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 49: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 50: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 51: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 52: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 53: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 54: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 55: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 56: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 57: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 58: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 59: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 60: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 61: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 62: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 63: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 64: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 65: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 66: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 67: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 68: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 69: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 70: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 71: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 72: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 73: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 74: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 75: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 76: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 77: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 78: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 79: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 80: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 81: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 82: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 83: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 84: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 85: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 86: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 87: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 88: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 89: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 90: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 91: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 92: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 93: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 94: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75]
2026-08-17 13:45:06.942707: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-17 13:45:06.944135: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:45:06.944397: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:45:06.944881: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:45:06.945004: No export window planned
2026-08-17 13:45:06.945155: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:45:06.945203: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:45:06.945410: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:45:06.945634: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:45:06.945829: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:45:06.945931: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:45:06.946057: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.947106: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.950664: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.950794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.950878: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.950954: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:45:06.951593: Inverter 0 count register writes 0
2026-08-17 13:45:07.015627: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 13:45:07.049080: Total inverter register writes now 861
2026-08-17 13:45:07.182517: Info: Completed run status Demand
2026-08-17 13:45:07.211665: Info: record_status Demand
2026-08-17 13:45:07.226246: Saved current settings to /config/predbat_config.json
2026-08-17 13:45:07.226600: Compare, best tariff: current metric 104.68p
2026-08-17 13:45:39.719604: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0079 val_mae=0.0037 kWh val_bias=+0.0010 kWh (+1.3%) combined=0.0031 kWh ema_combined=0.0030 kWh
2026-08-17 13:45:49.496433: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:45:49.496879: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:45:49.496954: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:45:49.497206: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:45:49.497272: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:45:49.497309: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:45:49.497340: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:46:12.914819: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0094 val_mae=0.0034 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-17 13:46:49.062302: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0080 val_mae=0.0036 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-17 13:47:19.419712: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0067 val_mae=0.0029 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0016 kWh ema_combined=0.0023 kWh
2026-08-17 13:47:52.206269: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0065 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-17 13:48:04.150752: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:48:04.160267: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:48:04.160350: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:48:04.160547: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:48:04.160614: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:48:04.160655: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:48:04.160764: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:48:26.482848: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0064 val_mae=0.0033 kWh val_bias=+0.0015 kWh (+1.9%) combined=0.0031 kWh ema_combined=0.0024 kWh
2026-08-17 13:49:02.862935: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0062 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0014 kWh ema_combined=0.0021 kWh
2026-08-17 13:49:41.355376: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0027 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-17 13:50:00.386613: --------------- PredBat - update at 2026-08-17 13:50:00+01:00 with clock skew 0 minutes, minutes now 830
2026-08-17 13:50:00.388059: Saved current settings to /config/predbat_config.json
2026-08-17 13:50:00.388428: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 13:50:00.388650: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:50:00.388872: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:50:00.537317: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:50:00.537640: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:50:00.537931: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:50:00.538614: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:50:00.538794: Predbat mode is set to Control charge & discharge
2026-08-17 13:50:00.850204: Found 21602 load_today datapoints going back 28 days
2026-08-17 13:50:00.850511: Using load_power data to fill gaps in load_today data
2026-08-17 13:50:02.362306: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:50:02.362509: Zero load period starting at 2026-08-17T10:54:00+0100 (176 minutes) for 189 minutes with base value 214.925
2026-08-17 13:50:02.363019: Processing 721 30-minute periods for power integration
2026-08-17 13:50:02.915843: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:50:02.916173: Car charging hold False, threshold 6.0kWh
2026-08-17 13:50:02.916264: Current data so far today: load 7.45kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:50:02.936783: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:50:02.936890: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:50:02.937460: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:50:02.937521: Standing charge is set to 46.63p
2026-08-17 13:50:03.068091: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.068439: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.068679: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.068936: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.069169: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.069393: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.069617: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.069828: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.070085: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.070311: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.070522: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.070736: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.070966: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.071179: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.071420: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.071632: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.071837: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.072152: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.072390: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:50:03.072466: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:50:03.072589: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:50:03.080616: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:50:03.103254: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:50:03.308462: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:50:03.308606: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:50:03.310726: High export rate found rates in range 99p to -99p
2026-08-17 13:50:03.504146: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:50:03.504752: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:50:03.523947: Battery level now 10.24kWh, -1hr ago 10.88kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -1.7p, rate_forward 6.87p
2026-08-17 13:50:03.524278: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:50:03.622358: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 13:50:03.622590: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:50:03.825431: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:50:03.878889: Today's load divergence 98.5%, in-day adjustment 85.78%, damping 0.95x, yesterday 68.37% today 98.58% blend 42.36%
2026-08-17 13:50:03.879419: Today's predicted so far 8.9kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 8.9kWh forecast extra.
2026-08-17 13:50:03.879479: Today's actual load so far 8.66kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 13:50:03.938405: Inverter 0: Type SK Sunsynk
2026-08-17 13:50:03.938501: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:50:03.938822: Reserve min: 7%, battery_min: 7%
2026-08-17 13:50:03.938972: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:50:03.939446: Inverter 0 SoC: 10.24kW 64%, current charge rate 5000W, current discharge rate 5250W, current battery power 518W, current battery voltage 51.2V, grid power -55W, load power 580W, PV Power 0W
2026-08-17 13:50:03.939727: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:50:03.939971: Inverter 0 scheduled charge enable is False
2026-08-17 13:50:03.940062: Inverter 0 charge windows currently []
2026-08-17 13:50:03.940148: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:50:03.940392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:50:03.940499: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:50:03.940602: Inverter 0 scheduled discharge enable is False
2026-08-17 13:50:03.940863: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:50:03.940966: Inverter 0 discharge windows currently []
2026-08-17 13:50:03.941013: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:50:03.941087: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:50:03.941145: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:50:04.083880: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:50:04.084059: Plan was last updated on 2026-08-17 13:40:00+01:00 and is now 10.0 minutes old
2026-08-17 13:50:04.084330: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:50:04.084380: Best export window [ ]
2026-08-17 13:50:04.085738: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:50:04.091286: Load divergence over 8.0 hours mean 458.46W, min 370.8W, max 655.2W, std dev 57.52W, divergence 6.27%
2026-08-17 13:50:04.152053: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:50:04.152242: LoadML is_calculating True
2026-08-17 13:50:04.152281: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 13:50:04.216013: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 602.33p, metric_keep 279.05kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.34kWh, PV 0.0kWh
2026-08-17 13:50:04.529060: Battery has 13.08 hours left - now at 10.24kWh
2026-08-17 13:50:04.652857: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.04p, metric_keep 280.7kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.38kWh, PV 0.0kWh
2026-08-17 13:50:04.769414: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 328.05p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.38kWh, PV 0.0kWh
2026-08-17 13:50:04.905465: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 325.53p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.34kWh, PV 0.0kWh
2026-08-17 13:50:04.919205: Saving plan best values to HA entities
2026-08-17 13:50:05.375027: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:50:05.389488: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:50:05.409524: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.49kWh, house 0.0kWh, export 0.0kWh, metric 325.53p, metric10 328.05p
2026-08-17 13:50:05.606561: Marginal costs baseline metric (no standing charge): 278.8929
2026-08-17 13:50:06.220152: Marginal energy costs matrix computed: min=8.0 max=29.47
2026-08-17 13:50:06.350586: Rate array import [{'start': 830, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 830, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:50:06.351789: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 13:50:06.352006: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:50:06.352144: - The battery is currently at 64% and is in eco mode for the next 9 hours.
2026-08-17 13:50:06.352266: - For the next 48 hours there will be no solar generation.
2026-08-17 13:50:06.352407: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:50:06.352522: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 13:50:06.352637:
2026-08-17 13:50:06.412439: Plan calculation took 2.33 seconds
2026-08-17 13:50:06.417847: No high rate period found
2026-08-17 13:50:06.579651: Import threshold used for optimisation was 8.0p
2026-08-17 13:50:06.704460: Low import rate windows [0: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 1: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 2: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 3: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 4: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 5: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 6: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 7: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 8: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 9: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 10: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 11: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 12: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 13: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 14: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 15: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 16: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 17: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 18: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 19: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 20: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 21: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 22: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 23: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 24: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 25: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 26: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 27: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 28: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 29: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 30: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 31: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 32: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 33: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 34: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 35: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 36: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 37: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 38: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 39: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 40: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 41: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 42: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 43: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 44: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 45: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 46: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 47: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 48: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 49: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 50: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 51: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 52: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 53: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 54: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 55: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 56: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 57: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 58: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 59: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 60: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 61: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 62: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 63: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 64: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 65: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 66: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 67: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 68: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 69: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 70: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 71: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 72: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 73: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 74: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 75: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 76: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 77: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 78: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 79: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 80: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 81: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 82: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 83: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 84: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 85: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 86: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 87: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 88: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 89: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 90: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 91: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 92: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 93: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 94: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75]
2026-08-17 13:50:06.720644: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 64%, target 100%
2026-08-17 13:50:06.720907: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:50:06.721023: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:50:06.721266: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:50:06.721440: No export window planned
2026-08-17 13:50:06.721647: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:50:06.721742: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:50:06.722057: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:50:06.722366: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:50:06.722557: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:50:06.722799: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:50:06.723096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.723295: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.723455: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.723676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.723830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.724029: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.724206: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.724459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.724601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.731182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.731346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.731517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.731671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.731784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:50:06.731884: Inverter 0 count register writes 0
2026-08-17 13:50:06.762435: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 13:50:06.762804: Recompute is saving previous plan...
2026-08-17 13:50:06.769667: Best charge window [ 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0% ]
2026-08-17 13:50:06.773103: Best export window [ ]
2026-08-17 13:50:06.774181: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:50:06.777189: Load divergence over 8.0 hours mean 458.46W, min 370.8W, max 655.2W, std dev 57.52W, divergence 6.27%
2026-08-17 13:50:06.810552: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:50:06.810852: LoadML is_calculating True
2026-08-17 13:50:06.810991: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 13:50:06.820293: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 13:50:06.822171: Optimise levels pass started at 2026-08-17 13:50:06
2026-08-17 13:50:06.822306: Optimise all windows, total charge 94 export 1
2026-08-17 13:50:10.036206: >> Region optimisation pass width 960 gives best_metric 356.52p, best_cost 414.8p, best_cycle 46.88kWh, best_import 33.48kWh
2026-08-17 13:50:10.826298: >> Region optimisation pass width 480 gives best_metric 356.52p, best_cost 414.8p, best_cycle 46.88kWh, best_import 33.48kWh
2026-08-17 13:50:14.138568: >> Region optimisation pass width 240 gives best_metric 350.35p, best_cost 374.68p, best_cycle 47.23kWh, best_import 28.47kWh
2026-08-17 13:50:18.029593: >> Region optimisation pass width 120 gives best_metric 350.35p, best_cost 374.68p, best_cycle 47.23kWh, best_import 28.47kWh
2026-08-17 13:50:18.030148: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 66
2026-08-17 13:50:18.030225: Optimise levels pass ended at 2026-08-17 13:50:18, duration 11.2 seconds tried 225 combinations
2026-08-17 13:50:18.030283: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 350.35p, best_keep 0kWh, best_cycle 47.23kWh, best_carbon 0kg, best_import 28.47kWh
2026-08-17 13:50:18.097366: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 15.5, 15.5, 15.5, 15.5, 15.5, 15.5, 15.5, 15.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 13:50:39.325892: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0062 val_mae=0.0028 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 13:50:49.314303: Tweak plan optimisation started metric 259.27p, cost 272.19p
2026-08-17 13:50:50.092121: Tweak optimisation finished metric 259.27p, cost 272.19p, metric_keep 0kWh, cycle 30.23kWh, carbon 0kg, import 15.65kWh, changed 8 window(s)
2026-08-17 13:50:50.127374: Swap charge optimisation started metric 259.27p, cost 272.19p, min_improvement_swap 0.1p
2026-08-17 13:51:00.796144: Swap charge optimisation finished metric 259.27p, cost 272.19p
2026-08-17 13:51:00.982871: Raw charge windows [ 17-08 13:30:00 - 17-08 14:00:00 @ 33.75p 0%, 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 91%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 97%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:51:00.983641: Unclipped charge windows [ 17-08 23:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:51:00.983849: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:51:00.984062: Filtered charge windows [ 17-08 23:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 13:51:01.094600: Previous plan best metric is 258.65 (cost 270.6) and new plan best metric is 259.27 (cost 272.19)
2026-08-17 13:51:01.094998: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 13:51:01.095199: Plan valid is now true after recompute was False
2026-08-17 13:51:01.148506: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 600.71p, metric_keep 278.46kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.13kWh, PV 0.0kWh
2026-08-17 13:51:01.351648: Battery has 13.08 hours left - now at 10.24kWh
2026-08-17 13:51:01.415096: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 623.34p, metric_keep 280.12kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.17kWh, PV 0.0kWh
2026-08-17 13:51:01.595672: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 320.79p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-17 13:51:01.856069: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 317.23p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.13kWh, PV 0.0kWh
2026-08-17 13:51:01.856321: Saving plan best values to HA entities
2026-08-17 13:51:02.343747: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:51:02.365099: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:51:02.389118: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.46kWh, house 0.0kWh, export 0.0kWh, metric 317.23p, metric10 320.79p
2026-08-17 13:51:02.612471: Marginal costs baseline metric (no standing charge): 270.6006
2026-08-17 13:51:03.150047: Marginal energy costs matrix computed: min=8.0 max=29.47
2026-08-17 13:51:03.338170: Rate array import [{'start': 830, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 830, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:51:03.339161: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 13:51:03.339227: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:51:03.339301: - The battery is currently at 64% and is in eco mode for the next 9 hours.
2026-08-17 13:51:03.339403: - For the next 48 hours there will be no solar generation.
2026-08-17 13:51:03.339513: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:51:03.339624: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 13:51:03.339738:
2026-08-17 13:51:03.406680: Plan calculation took 56.64 seconds
2026-08-17 13:51:03.407035: Inverter 0: Type SK Sunsynk
2026-08-17 13:51:03.407185: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:51:03.407406: Reserve min: 7%, battery_min: 7%
2026-08-17 13:51:03.407509: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:51:03.407801: Inverter 0 SoC: 10.14kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 524W, current battery voltage 51.2V, grid power -54W, load power 585W, PV Power 0W
2026-08-17 13:51:03.408070: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:51:03.408192: Inverter 0 scheduled charge enable is False
2026-08-17 13:51:03.408245: Inverter 0 charge windows currently []
2026-08-17 13:51:03.408287: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:51:03.408424: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:51:03.408469: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:51:03.408647: Inverter 0 scheduled discharge enable is False
2026-08-17 13:51:03.408907: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:51:03.408975: Inverter 0 discharge windows currently []
2026-08-17 13:51:03.409033: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:51:03.409065: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:51:03.409094: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:51:03.520603: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-17 13:51:03.520912: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:51:03.521019: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:51:03.521407: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:51:03.521576: No export window planned
2026-08-17 13:51:03.521762: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:51:03.521813: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:51:03.522123: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:51:03.522390: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:51:03.522458: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:51:03.522599: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:51:03.522759: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.522831: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.522989: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523253: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523497: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.523973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.524223: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.524365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.524532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:51:03.524645: Inverter 0 count register writes 0
2026-08-17 13:51:03.630776: Total inverter register writes now 861
2026-08-17 13:51:03.728022: Info: Completed run status Demand
2026-08-17 13:51:03.738455: Info: record_status Demand
2026-08-17 13:51:03.765920: Saved current settings to /config/predbat_config.json
2026-08-17 13:51:03.766239: Compare, best tariff: current metric 104.68p
2026-08-17 13:51:26.510501: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0060 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 13:51:33.957470: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:51:33.957784: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:51:33.957841: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:51:33.958069: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:51:33.958126: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:51:33.958164: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:51:33.958201: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:52:02.500194: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-17 13:52:35.391396: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0055 val_mae=0.0026 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0020 kWh ema_combined=0.0018 kWh
2026-08-17 13:53:14.915129: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0059 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-17 13:53:34.196784: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:53:34.197104: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:53:34.197158: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:53:34.197345: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:53:34.197615: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:53:34.197666: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:53:34.197696: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:53:52.376386: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-17 13:54:29.269424: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 13:54:43.396883: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 13:54:43.700327: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 13:54:59.116173: Info: HAHistory: Pruning history data started.
2026-08-17 13:54:59.179852: Info: HAHistory: Pruning history data completed.
2026-08-17 13:55:00.638748: --------------- PredBat - update at 2026-08-17 13:55:00+01:00 with clock skew 0 minutes, minutes now 835
2026-08-17 13:55:00.639660: Saved current settings to /config/predbat_config.json
2026-08-17 13:55:00.639790: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 13:55:00.639873: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 13:55:00.639991: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 13:55:00.740093: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 13:55:00.740252: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 13:55:00.740509: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 13:55:00.741342: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 13:55:00.741551: Predbat mode is set to Control charge & discharge
2026-08-17 13:55:01.150886: Found 21602 load_today datapoints going back 27 days
2026-08-17 13:55:01.151148: Using load_power data to fill gaps in load_today data
2026-08-17 13:55:02.957458: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 13:55:02.957763: Zero load period starting at 2026-08-17T10:54:00+0100 (181 minutes) for 189 minutes with base value 214.9
2026-08-17 13:55:02.958242: Processing 721 30-minute periods for power integration
2026-08-17 13:55:03.312586: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 13:55:03.333224: Car charging hold False, threshold 6.0kWh
2026-08-17 13:55:03.333458: Current data so far today: load 7.5kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 13:55:03.393022: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 13:55:03.393268: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 13:55:03.395019: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 13:55:03.395721: Standing charge is set to 46.63p
2026-08-17 13:55:03.728810: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.729812: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.730262: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.730732: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.731239: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.731718: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.732246: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.732706: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.733101: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.733424: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.733771: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.734196: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.734517: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.734826: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.735155: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.735467: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.735775: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.736127: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.736446: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 13:55:03.736592: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 13:55:03.736947: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 13:55:03.747042: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 13:55:03.753218: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 13:55:03.865403: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 13:55:03.865536: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 13:55:03.867283: High export rate found rates in range 99p to -99p
2026-08-17 13:55:03.981272: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 13:55:03.982438: Car 0 on Octopus Intelligent, no active plan
2026-08-17 13:55:04.001579: Battery level now 10.24kWh, -1hr ago 10.72kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -1.7p, rate_forward 6.87p
2026-08-17 13:55:04.002161: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 13:55:04.091241: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 13:55:04.091425: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 13:55:04.260278: Using weighted-bucket historical load forecast over 14 days
2026-08-17 13:55:04.341584: Today's load divergence 98.69%, in-day adjustment 85.99%, damping 0.95x, yesterday 68.37% today 98.75% blend 42.01%
2026-08-17 13:55:04.341838: Today's predicted so far 8.92kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 8.92kWh forecast extra.
2026-08-17 13:55:04.341962: Today's actual load so far 8.71kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 13:55:04.481218: Inverter 0: Type SK Sunsynk
2026-08-17 13:55:04.481303: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 13:55:04.481573: Reserve min: 7%, battery_min: 7%
2026-08-17 13:55:04.481702: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 13:55:04.482037: Inverter 0 SoC: 10.14kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 502W, current battery voltage 51.2V, grid power -55W, load power 567W, PV Power 0W
2026-08-17 13:55:04.482198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:55:04.482284: Inverter 0 scheduled charge enable is False
2026-08-17 13:55:04.482321: Inverter 0 charge windows currently []
2026-08-17 13:55:04.482355: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 13:55:04.482578: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:55:04.482632: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:55:04.482700: Inverter 0 scheduled discharge enable is False
2026-08-17 13:55:04.482874: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:55:04.483019: Inverter 0 discharge windows currently []
2026-08-17 13:55:04.483099: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:55:04.483140: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:55:04.483176: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:55:04.644055: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 13:55:04.644179: Plan was last updated on 2026-08-17 13:50:00+01:00 and is now 5.0 minutes old
2026-08-17 13:55:04.644510: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 13:55:04.644640: Best export window [ ]
2026-08-17 13:55:04.645835: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 13:55:04.649702: Load divergence over 8.0 hours mean 460.48W, min 384.0W, max 657.6W, std dev 57.85W, divergence 6.28%
2026-08-17 13:55:04.748191: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 13:55:04.748792: LoadML is_calculating True
2026-08-17 13:55:04.748859: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 13:55:04.819940: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 602.31p, metric_keep 279.08kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.27kWh, PV 0.0kWh
2026-08-17 13:55:05.030645: Battery has 12.83 hours left - now at 10.14kWh
2026-08-17 13:55:05.133739: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 625.01p, metric_keep 280.71kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.3kWh, PV 0.0kWh
2026-08-17 13:55:05.408892: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 325.07p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.3kWh, PV 0.0kWh
2026-08-17 13:55:05.654211: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 321.97p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.27kWh, PV 0.0kWh
2026-08-17 13:55:05.654297: Saving plan best values to HA entities
2026-08-17 13:55:05.941418: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 13:55:05.956425: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 13:55:05.969150: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.05kWh, house 0kWh, export 0.0kWh, metric 321.97p, metric10 325.07p
2026-08-17 13:55:06.218881: Marginal costs baseline metric (no standing charge): 275.3405
2026-08-17 13:55:06.670055: Marginal energy costs matrix computed: min=8.0 max=30.21
2026-08-17 13:55:06.878966: Rate array import [{'start': 835, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 835, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 13:55:06.880095: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 13:55:06.880171: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 13:55:06.880204: - The battery is currently at 63% and is in eco mode for the next 9 hours.
2026-08-17 13:55:06.880230: - For the next 48 hours there will be no solar generation.
2026-08-17 13:55:06.880349: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 13:55:06.880466: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 13:55:06.880573:
2026-08-17 13:55:06.966850: Plan calculation took 2.32 seconds
2026-08-17 13:55:06.972007: No high rate period found
2026-08-17 13:55:07.194965: Import threshold used for optimisation was 8.0p
2026-08-17 13:55:07.285522: Low import rate windows [0: 08-17 13:30:00 - 08-17 14:00:00 @ 33.75, 1: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 2: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 3: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 4: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 5: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 6: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 7: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 8: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 9: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 10: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 11: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 12: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 13: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 14: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 15: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 16: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 17: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 18: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 19: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 20: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 21: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 22: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 23: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 24: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 25: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 26: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 27: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 28: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 29: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 30: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 31: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 32: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 33: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 34: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 35: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 36: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 37: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 38: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 39: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 40: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 41: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 42: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 43: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 44: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 45: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 46: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 47: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 48: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 49: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 50: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 51: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 52: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 53: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 54: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 55: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 56: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 57: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 58: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 59: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 60: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 61: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 62: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 63: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 64: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 65: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 66: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 67: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 68: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 69: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 70: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 71: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 72: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 73: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 74: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 75: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 76: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 77: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 78: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 79: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 80: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 81: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 82: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 83: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 84: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 85: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 86: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 87: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 88: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 89: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 90: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 91: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 92: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 93: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 94: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75]
2026-08-17 13:55:07.298749: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-17 13:55:07.298943: Inverter 0 disabled charge window while waiting for schedule (now 08-17 13:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 13:55:07.299014: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:55:07.299291: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:55:07.299395: No export window planned
2026-08-17 13:55:07.299557: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 13:55:07.299631: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 13:55:07.299984: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 13:55:07.300272: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 13:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 13:55:07.300373: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 13:55:07.300443: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 13:55:07.300571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.300727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.300836: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.300956: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301001: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301117: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 13:55:07.301549: Inverter 0 count register writes 0
2026-08-17 13:55:07.328240: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 13:55:07.372366: Total inverter register writes now 861
2026-08-17 13:55:07.529872: Info: Completed run status Demand
2026-08-17 13:55:07.553777: Info: record_status Demand
2026-08-17 13:55:07.565463: Saved current settings to /config/predbat_config.json
2026-08-17 13:55:07.565875: Compare, best tariff: current metric 104.68p
2026-08-17 13:55:14.399082: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 13:55:48.917221: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:55:48.917709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:55:48.917780: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:55:48.917932: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:55:48.917972: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:55:48.917994: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:55:48.918012: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:55:55.500148: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0058 val_mae=0.0024 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-17 13:56:49.541477: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 13:57:30.430253: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0021 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 13:57:49.427362: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 13:57:49.427738: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 13:57:49.427861: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 13:57:49.428240: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 13:57:49.428353: Note: Inverter does not support discharge freeze - disabled
2026-08-17 13:57:49.428477: Note: Inverter does not support charge freeze - disabled
2026-08-17 13:57:49.428624: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 13:58:10.263012: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 13:58:10.270941: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-17 13:58:10.271224: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-17 13:58:19.542958: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0003 kWh (-0.3%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-17 13:58:19.596705: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0022 kWh
2026-08-17 13:58:19.866290: ML Predictor: Curriculum pass 4/5: window=58.0 days (1392 hours of data)
2026-08-17 13:58:19.866478: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 13:58:20.579957: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 13:58:26.494363: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 13:58:26.622228: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0478) load(mean=0.0591 std=0.0471) pv(mean=0.0000 std=0.0100) temp(mean=19.6336 std=4.5093) import_rate(mean=16.8254 std=8.3511) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1909 std=0.5265)
2026-08-17 13:58:28.122041: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 13:58:28.140663: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 13:58:28.242065: ML Predictor: Baseline (pre-finetune) val_mae=0.0033 kWh val_bias=+0.0006 kWh
2026-08-17 13:58:57.570897: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0091 val_mae=0.0034 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-17 13:59:30.534905: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0128 val_mae=0.0038 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-17 14:00:00.431844: --------------- PredBat - update at 2026-08-17 14:00:00+01:00 with clock skew 0 minutes, minutes now 840
2026-08-17 14:00:00.432918: Saved current settings to /config/predbat_config.json
2026-08-17 14:00:00.433073: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 14:00:00.433185: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:00:00.433250: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:00:00.507592: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:00:00.507851: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:00:00.508198: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:00:00.509362: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:00:00.509579: Predbat mode is set to Control charge & discharge
2026-08-17 14:00:01.173604: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:00:01.173999: Using load_power data to fill gaps in load_today data
2026-08-17 14:00:02.873799: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:00:02.874220: Zero load period starting at 2026-08-17T10:54:00+0100 (186 minutes) for 189 minutes with base value 214.875
2026-08-17 14:00:02.875001: Processing 721 30-minute periods for power integration
2026-08-17 14:00:03.322136: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:00:03.330041: Car charging hold False, threshold 6.0kWh
2026-08-17 14:00:03.330378: Current data so far today: load 7.55kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:00:03.400410: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 14:00:03.400741: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:00:03.402069: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:00:03.402192: Standing charge is set to 46.63p
2026-08-17 14:00:03.557312: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.557665: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.557885: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.558203: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.558607: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.558970: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.559436: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.559717: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.560107: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.560354: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.560567: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.561364: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.561569: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.561845: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.562156: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.562447: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.562709: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.563004: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.563386: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:00:03.563619: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:00:03.563852: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:00:03.571278: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:00:03.572406: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:00:03.643557: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:00:03.643838: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:00:03.645679: High export rate found rates in range 99p to -99p
2026-08-17 14:00:03.818977: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:00:03.819337: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:00:03.841824: Battery level now 10.14kWh, -1hr ago 10.72kWh, at midnight 10.49kWh, battery value change in the last hour -4.01p, change today -2.42p, rate_forward 6.87p
2026-08-17 14:00:03.842925: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:00:04.046113: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:00:04.046470: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:00:04.253851: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:00:04.314378: Today's load divergence 98.45%, in-day adjustment 85.96%, damping 0.95x, yesterday 68.37% today 98.53% blend 41.67%
2026-08-17 14:00:04.314593: Today's predicted so far 9.03kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 9.03kWh forecast extra.
2026-08-17 14:00:04.314642: Today's actual load so far 8.79kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 14:00:04.663344: Inverter 0: Type SK Sunsynk
2026-08-17 14:00:04.663465: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:00:04.663672: Reserve min: 7%, battery_min: 7%
2026-08-17 14:00:04.665419: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:00:04.666696: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 484W, current battery voltage 51.2V, grid power -57W, load power 550W, PV Power 0W
2026-08-17 14:00:04.668238: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:00:04.668399: Inverter 0 scheduled charge enable is False
2026-08-17 14:00:04.668441: Inverter 0 charge windows currently []
2026-08-17 14:00:04.668491: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:00:04.668625: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:00:04.668672: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:00:04.668717: Inverter 0 scheduled discharge enable is False
2026-08-17 14:00:04.668864: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:00:04.669903: Inverter 0 discharge windows currently []
2026-08-17 14:00:04.669962: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:00:04.669993: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:00:04.670163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:00:04.851550: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:00:04.851842: Plan was last updated on 2026-08-17 13:50:00+01:00 and is now 10.0 minutes old
2026-08-17 14:00:04.852276: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:00:04.865894: Best export window [ ]
2026-08-17 14:00:04.868184: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:00:04.874023: Load divergence over 8.0 hours mean 464.29W, min 359.4W, max 794.4W, std dev 66.85W, divergence 7.2%
2026-08-17 14:00:04.921225: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:00:04.921550: LoadML is_calculating True
2026-08-17 14:00:04.921711: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 14:00:05.050484: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 603.05p, metric_keep 279.52kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.38kWh, PV 0.0kWh
2026-08-17 14:00:05.414589: Battery has 12.75 hours left - now at 10.08kWh
2026-08-17 14:00:05.512168: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.75p, metric_keep 281.1kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.42kWh, PV 0.0kWh
2026-08-17 14:00:05.823498: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 328.88p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 14:00:06.158515: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 326.32p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.38kWh, PV 0.0kWh
2026-08-17 14:00:06.158617: Saving plan best values to HA entities
2026-08-17 14:00:06.638637: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:00:06.651407: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:00:06.723864: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.59kWh, house 0.0kWh, export 0.0kWh, metric 326.32p, metric10 328.88p
2026-08-17 14:00:06.986386: Marginal costs baseline metric (no standing charge): 279.6881
2026-08-17 14:00:07.479208: Marginal energy costs matrix computed: min=8.0 max=30.74
2026-08-17 14:00:07.707664: Rate array import [{'start': 840, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 840, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:00:07.714011: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:00:07.714250: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:00:07.714408: - The battery is currently at 63% and is in eco mode for the next 9 hours.
2026-08-17 14:00:07.714517: - For the next 48 hours there will be no solar generation.
2026-08-17 14:00:07.714653: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:00:07.714754: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:00:07.714889:
2026-08-17 14:00:07.950169: Plan calculation took 3.10 seconds
2026-08-17 14:00:07.956519: No high rate period found
2026-08-17 14:00:08.133087: Import threshold used for optimisation was 8.0p
2026-08-17 14:00:08.245841: Low import rate windows [0: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 1: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 2: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 3: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 4: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 5: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 6: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 7: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 8: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 9: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 10: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 11: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 12: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 13: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 14: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 15: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 16: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 17: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 18: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 19: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 20: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 21: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 22: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 23: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 24: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 25: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 26: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 27: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 28: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 29: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 30: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 31: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 32: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 33: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 34: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 35: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 36: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 37: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 38: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 39: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 40: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 41: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 42: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 43: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 44: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 45: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 46: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 47: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 48: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 49: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 50: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 51: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 52: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 53: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 54: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 55: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 56: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 57: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 58: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 59: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 60: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 61: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 62: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 63: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 64: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 65: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 66: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 67: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 68: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 69: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 70: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 71: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 72: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 73: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 74: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 75: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 76: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 77: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 78: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 79: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 80: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 81: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 82: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 83: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 84: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 85: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 86: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 87: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 88: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 89: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 90: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 91: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 92: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 93: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75]
2026-08-17 14:00:08.253982: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-17 14:00:08.254159: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:00:08.254234: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:00:08.254488: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:00:08.254592: No export window planned
2026-08-17 14:00:08.254735: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:00:08.254842: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:00:08.255056: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:00:08.255240: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:00:08.255296: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:00:08.255346: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:00:08.255421: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.255506: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.255562: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.255599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.255626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.255651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.255685: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.255753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.256160: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.256212: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.256239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.256277: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.256302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.256339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:00:08.256361: Inverter 0 count register writes 0
2026-08-17 14:00:08.283820: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 14:00:08.284045: Recompute is saving previous plan...
2026-08-17 14:00:08.288280: Best charge window [ 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0% ]
2026-08-17 14:00:08.288398: Best export window [ ]
2026-08-17 14:00:08.289287: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:00:08.292551: Load divergence over 8.0 hours mean 464.29W, min 359.4W, max 794.4W, std dev 66.85W, divergence 7.2%
2026-08-17 14:00:08.315082: Calculating data from yesterday for savings calculation
2026-08-17 14:00:08.331832: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 14:00:08.413040: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 14:00:08.436377: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 14:00:08.466979: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 14:00:08.519532: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 14:00:08.780071: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 14:00:08.786594: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 14:00:08.825591: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:00:08.838481: LoadML is_calculating True
2026-08-17 14:00:08.838675: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 14:00:08.911400: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 14:00:08.917742: Optimise levels pass started at 2026-08-17 14:00:08
2026-08-17 14:00:08.947773: Optimise all windows, total charge 94 export 1
2026-08-17 14:00:15.167847: >> Region optimisation pass width 960 gives best_metric 357.99p, best_cost 415.79p, best_cycle 47.0kWh, best_import 33.6kWh
2026-08-17 14:00:15.908905: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0114 val_mae=0.0038 kWh val_bias=+0.0011 kWh (+1.9%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-17 14:00:16.057863: >> Region optimisation pass width 480 gives best_metric 357.99p, best_cost 415.79p, best_cycle 47.0kWh, best_import 33.6kWh
2026-08-17 14:00:20.555142: >> Region optimisation pass width 240 gives best_metric 349.9p, best_cost 362.45p, best_cycle 46.01kWh, best_import 26.94kWh
2026-08-17 14:00:28.315078: >> Region optimisation pass width 120 gives best_metric 349.32p, best_cost 361.81p, best_cycle 44.89kWh, best_import 26.86kWh
2026-08-17 14:00:28.315419: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 65
2026-08-17 14:00:28.315566: Optimise levels pass ended at 2026-08-17 14:00:28, duration 19.4 seconds tried 247 combinations
2026-08-17 14:00:28.315617: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 349.32p, best_keep 0kWh, best_cycle 44.89kWh, best_carbon 0kg, best_import 26.86kWh
2026-08-17 14:00:28.342372: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 14:01:06.946369: Tweak plan optimisation started metric 260.22p, cost 272.95p
2026-08-17 14:01:07.635870: Tweak optimisation finished metric 260.22p, cost 272.95p, metric_keep 0kWh, cycle 30.3kWh, carbon 0kg, import 15.75kWh, changed 8 window(s)
2026-08-17 14:01:07.666985: Swap charge optimisation started metric 260.22p, cost 272.95p, min_improvement_swap 0.1p
2026-08-17 14:01:18.842908: Swap charge optimisation finished metric 260.22p, cost 272.95p
2026-08-17 14:01:19.043955: Raw charge windows [ 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:01:19.044903: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:01:19.045300: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:01:19.045557: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:01:19.087679: Previous plan best metric is 259.55 (cost 271.51) and new plan best metric is 260.22 (cost 272.95)
2026-08-17 14:01:19.088003: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 14:01:19.088275: Plan valid is now true after recompute was False
2026-08-17 14:01:19.145912: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.54p, metric_keep 278.93kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.19kWh, PV 0.0kWh
2026-08-17 14:01:19.356400: Battery has 12.75 hours left - now at 10.08kWh
2026-08-17 14:01:19.493069: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 624.16p, metric_keep 280.52kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.22kWh, PV 0.0kWh
2026-08-17 14:01:19.682731: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 321.74p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.22kWh, PV 0.0kWh
2026-08-17 14:01:19.785009: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 318.14p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.19kWh, PV 0.0kWh
2026-08-17 14:01:19.785245: Saving plan best values to HA entities
2026-08-17 14:01:20.167155: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:01:20.181562: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:01:20.193396: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.57kWh, house 0.0kWh, export 0.0kWh, metric 318.14p, metric10 321.74p
2026-08-17 14:01:20.326719: Marginal costs baseline metric (no standing charge): 271.5054
2026-08-17 14:01:20.784747: Marginal energy costs matrix computed: min=8.0 max=30.74
2026-08-17 14:01:21.662865: Rate array import [{'start': 840, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 840, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:01:21.664175: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:01:21.664347: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:01:21.664506: - The battery is currently at 63% and is in eco mode for the next 9 hours.
2026-08-17 14:01:21.664595: - For the next 48 hours there will be no solar generation.
2026-08-17 14:01:21.664647: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:01:21.664787: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:01:21.664923:
2026-08-17 14:01:22.162457: Plan calculation took 73.88 seconds
2026-08-17 14:01:22.162825: Inverter 0: Type SK Sunsynk
2026-08-17 14:01:22.162895: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:01:22.163199: Reserve min: 7%, battery_min: 7%
2026-08-17 14:01:22.163306: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:01:22.163772: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 486W, current battery voltage 51.2V, grid power -56W, load power 554W, PV Power 0W
2026-08-17 14:01:22.164055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:01:22.164218: Inverter 0 scheduled charge enable is False
2026-08-17 14:01:22.164272: Inverter 0 charge windows currently []
2026-08-17 14:01:22.164312: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:01:22.164488: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:01:22.164534: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:01:22.164597: Inverter 0 scheduled discharge enable is False
2026-08-17 14:01:22.164740: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:01:22.164776: Inverter 0 discharge windows currently []
2026-08-17 14:01:22.164800: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:01:22.164819: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:01:22.164849: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:01:22.266595: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-17 14:01:22.267329: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:01:22.267457: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:01:22.267791: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:01:22.267978: No export window planned
2026-08-17 14:01:22.268324: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:01:22.268418: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:01:22.268753: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:01:22.268997: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:01:22.269094: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:01:22.269261: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:01:22.269436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.269531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.269585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.269615: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.269642: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.269727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.269849: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.269953: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.270041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.270145: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.270203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.270249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.270342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.270388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:01:22.270440: Inverter 0 count register writes 0
2026-08-17 14:01:22.310218: Total inverter register writes now 861
2026-08-17 14:01:22.418187: Info: Completed run status Demand
2026-08-17 14:01:22.523590: Info: record_status Demand
2026-08-17 14:01:22.533893: Saved current settings to /config/predbat_config.json
2026-08-17 14:01:22.534120: Compare, best tariff: current metric 104.68p
2026-08-17 14:01:36.318779: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0102 val_mae=0.0035 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-17 14:01:48.043024: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0097 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-17 14:01:59.450000: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0083 val_mae=0.0030 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 14:02:03.678002: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:02:03.678445: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:02:03.678579: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:02:03.678847: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:02:03.678970: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:02:03.679082: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:02:03.679216: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:02:12.841726: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0098 val_mae=0.0028 kWh val_bias=-0.0006 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-17 14:02:24.033461: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0096 val_mae=0.0033 kWh val_bias=-0.0008 kWh (-1.5%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-17 14:02:37.006866: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0092 val_mae=0.0028 kWh val_bias=+0.0004 kWh (+0.6%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-17 14:02:50.027688: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0100 val_mae=0.0034 kWh val_bias=+0.0011 kWh (+2.0%) combined=0.0028 kWh ema_combined=0.0022 kWh
2026-08-17 14:03:01.364030: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0087 val_mae=0.0028 kWh val_bias=-0.0012 kWh (-2.1%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-17 14:03:13.189995: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0064 val_mae=0.0027 kWh val_bias=-0.0009 kWh (-1.7%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-17 14:03:29.178823: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0071 val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-17 14:03:45.478861: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0073 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 14:03:58.741458: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0066 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-17 14:04:04.095380: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:04:04.095763: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:04:04.095824: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:04:04.096163: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:04:04.096232: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:04:04.096308: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:04:04.096382: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:04:12.938530: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0063 val_mae=0.0025 kWh val_bias=+0.0010 kWh (+1.8%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-17 14:04:26.958489: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0066 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 14:04:40.033980: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0059 val_mae=0.0023 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 14:04:55.630452: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 14:05:00.376266: --------------- PredBat - update at 2026-08-17 14:05:00+01:00 with clock skew 0 minutes, minutes now 845
2026-08-17 14:05:00.377250: Saved current settings to /config/predbat_config.json
2026-08-17 14:05:00.377393: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 14:05:00.377508: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:05:00.377600: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:05:00.413683: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:05:00.413827: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:05:00.414102: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:05:00.414749: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:05:00.414908: Predbat mode is set to Control charge & discharge
2026-08-17 14:05:00.649781: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:05:00.650014: Using load_power data to fill gaps in load_today data
2026-08-17 14:05:01.713313: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:05:01.713647: Zero load period starting at 2026-08-17T10:54:00+0100 (191 minutes) for 189 minutes with base value 214.85
2026-08-17 14:05:01.714102: Processing 721 30-minute periods for power integration
2026-08-17 14:05:02.052214: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:05:02.052356: Car charging hold False, threshold 6.0kWh
2026-08-17 14:05:02.052399: Current data so far today: load 7.6kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:05:02.067689: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 14:05:02.067786: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:05:02.068364: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:05:02.068514: Standing charge is set to 46.63p
2026-08-17 14:05:02.148065: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.148349: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.148548: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.148736: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.148915: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.149218: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.149476: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.150142: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.150429: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.150688: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.150945: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.151234: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.151495: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.151743: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.152028: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.152324: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.152589: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.152851: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.153124: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:05:02.153300: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:05:02.153497: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:05:02.159054: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:05:02.159495: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:05:02.208413: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:05:02.208705: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:05:02.210164: High export rate found rates in range 99p to -99p
2026-08-17 14:05:02.315338: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:05:02.315622: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:05:02.330883: Battery level now 10.08kWh, -1hr ago 10.66kWh, at midnight 10.49kWh, battery value change in the last hour -4.01p, change today -2.8p, rate_forward 6.87p
2026-08-17 14:05:02.331467: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:05:02.442890: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:05:02.456132: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:05:02.602296: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:05:02.628523: Today's load divergence 98.3%, in-day adjustment 85.98%, damping 0.95x, yesterday 68.37% today 98.39% blend 41.32%
2026-08-17 14:05:02.628660: Today's predicted so far 9.11kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.11kWh forecast extra.
2026-08-17 14:05:02.628691: Today's actual load so far 8.85kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 14:05:02.680441: Inverter 0: Type SK Sunsynk
2026-08-17 14:05:02.680540: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:05:02.680747: Reserve min: 7%, battery_min: 7%
2026-08-17 14:05:02.680834: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:05:02.681170: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 383W, current battery voltage 51.2V, grid power -54W, load power 447W, PV Power 0W
2026-08-17 14:05:02.681351: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:05:02.681456: Inverter 0 scheduled charge enable is False
2026-08-17 14:05:02.681501: Inverter 0 charge windows currently []
2026-08-17 14:05:02.681535: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:05:02.681708: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:05:02.681776: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:05:02.681849: Inverter 0 scheduled discharge enable is False
2026-08-17 14:05:02.682099: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:05:02.682190: Inverter 0 discharge windows currently []
2026-08-17 14:05:02.682239: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:05:02.682278: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:05:02.682315: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:05:02.778036: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:05:02.778187: Plan was last updated on 2026-08-17 14:00:00+01:00 and is now 5.0 minutes old
2026-08-17 14:05:02.778469: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:05:02.778548: Best export window [ ]
2026-08-17 14:05:02.780140: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:05:02.785471: Load divergence over 8.0 hours mean 467.89W, min 334.8W, max 886.8W, std dev 80.58W, divergence 8.61%
2026-08-17 14:05:02.827866: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:05:02.828166: LoadML is_calculating True
2026-08-17 14:05:02.828283: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 14:05:02.929433: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 602.02p, metric_keep 279.11kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.31kWh, PV 0.0kWh
2026-08-17 14:05:03.170895: Battery has 12.67 hours left - now at 10.08kWh
2026-08-17 14:05:03.251890: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 624.63p, metric_keep 280.69kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.35kWh, PV 0.0kWh
2026-08-17 14:05:03.458420: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 325.11p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 14:05:03.671045: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 322.04p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.31kWh, PV 0.0kWh
2026-08-17 14:05:03.672510: Saving plan best values to HA entities
2026-08-17 14:05:04.102825: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 14:05:04.113377: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:05:04.122468: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.06kWh, house 0.0kWh, export 0.0kWh, metric 322.04p, metric10 325.11p
2026-08-17 14:05:04.335123: Marginal costs baseline metric (no standing charge): 275.4062
2026-08-17 14:05:04.803739: Marginal energy costs matrix computed: min=8.0 max=30.14
2026-08-17 14:05:04.989938: Rate array import [{'start': 845, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 845, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:05:04.990802: - Your estimated bill for today is £1.70 and tomorrow is £1.71
2026-08-17 14:05:04.990934: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:05:04.991026: - The battery is currently at 63% and is in eco mode for the next 9 hours.
2026-08-17 14:05:04.991108: - For the next 48 hours there will be no solar generation.
2026-08-17 14:05:04.991213: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:05:04.991293: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:05:04.991372:
2026-08-17 14:05:05.031164: Plan calculation took 2.25 seconds
2026-08-17 14:05:05.034600: No high rate period found
2026-08-17 14:05:05.152892: Import threshold used for optimisation was 8.0p
2026-08-17 14:05:05.340083: Low import rate windows [0: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 1: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 2: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 3: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 4: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 5: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 6: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 7: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 8: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 9: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 10: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 11: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 12: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 13: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 14: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 15: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 16: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 17: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 18: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 19: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 20: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 21: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 22: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 23: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 24: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 25: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 26: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 27: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 28: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 29: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 30: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 31: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 32: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 33: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 34: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 35: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 36: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 37: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 38: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 39: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 40: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 41: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 42: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 43: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 44: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 45: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 46: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 47: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 48: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 49: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 50: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 51: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 52: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 53: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 54: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 55: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 56: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 57: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 58: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 59: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 60: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 61: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 62: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 63: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 64: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 65: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 66: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 67: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 68: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 69: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 70: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 71: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 72: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 73: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 74: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 75: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 76: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 77: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 78: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 79: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 80: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 81: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 82: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 83: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 84: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 85: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 86: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 87: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 88: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 89: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 90: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 91: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 92: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 93: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 94: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75]
2026-08-17 14:05:05.358084: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-17 14:05:05.358259: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:05:05.358342: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:05:05.358519: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:05:05.358602: No export window planned
2026-08-17 14:05:05.358712: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:05:05.358751: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:05:05.358880: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:05:05.359838: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:05:05.359929: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:05:05.360003: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:05:05.360182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.362422: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.362952: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363093: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363188: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363423: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:05:05.363475: Inverter 0 count register writes 0
2026-08-17 14:05:05.398554: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 14:05:05.406208: Total inverter register writes now 861
2026-08-17 14:05:05.449548: Info: Completed run status Demand
2026-08-17 14:05:05.457917: Info: record_status Demand
2026-08-17 14:05:05.467401: Saved current settings to /config/predbat_config.json
2026-08-17 14:05:05.467640: Compare, best tariff: current metric 104.68p
2026-08-17 14:05:15.966081: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0058 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 14:05:29.269452: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0060 val_mae=0.0020 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0010 kWh ema_combined=0.0014 kWh
2026-08-17 14:05:43.250921: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-17 14:05:49.618466: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:05:49.618789: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:05:49.618852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:05:49.619068: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:05:49.619139: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:05:49.619178: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:05:49.619217: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:06:01.193678: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 14:06:14.590362: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0051 val_mae=0.0019 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 14:06:27.992979: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0020 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-17 14:06:41.164173: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0052 val_mae=0.0018 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-17 14:06:56.328598: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-17 14:07:10.196734: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0049 val_mae=0.0018 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-17 14:07:23.687759: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0018 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0009 kWh ema_combined=0.0011 kWh
2026-08-17 14:07:37.053719: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0047 val_mae=0.0018 kWh val_bias=-0.0005 kWh (-0.8%) combined=0.0013 kWh ema_combined=0.0012 kWh
2026-08-17 14:07:37.055128: ML Predictor: Restored best weights from epoch with val_mae=0.0018 kWh val_bias=+0.0000 kWh (+0.0%)
2026-08-17 14:07:37.055342: ML Predictor: Training complete, final val_mae=0.0018 kWh val_bias=+0.0000 kWh (+0.0%)
2026-08-17 14:07:38.164777: ML Predictor: AR rollout over holdout: ar_mae=0.0019 kWh ar_bias=+0.0001 kWh (+0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-17 14:07:38.190679: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0018 kWh
2026-08-17 14:07:38.190781: ML Predictor: Curriculum final pass 5/5: full dataset (59.0 days)
2026-08-17 14:07:38.190812: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 14:07:38.885564: ML Predictor: Creating dataset with 1415 hours of training data, 48 hours validation
2026-08-17 14:07:44.228272: ML Predictor: Created 16697 training samples, 576 validation samples
2026-08-17 14:07:44.285848: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0592 std=0.0478) load(mean=0.0591 std=0.0472) pv(mean=0.0000 std=0.0100) temp(mean=19.6338 std=4.5145) import_rate(mean=16.7995 std=8.3664) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1916 std=0.5269)
2026-08-17 14:07:44.380399: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 14:07:44.395934: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 14:07:44.423778: ML Predictor: Baseline (pre-finetune) val_mae=0.0062 kWh val_bias=+0.0010 kWh
2026-08-17 14:07:59.430107: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0109 val_mae=0.0045 kWh val_bias=-0.0011 kWh (-2.7%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-17 14:08:03.732901: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:08:03.733269: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:08:03.733416: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:08:03.733641: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:08:03.733739: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:08:03.733820: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:08:03.733895: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:08:12.431242: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0128 val_mae=0.0038 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-17 14:08:26.659271: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0105 val_mae=0.0043 kWh val_bias=-0.0018 kWh (-4.3%) combined=0.0032 kWh ema_combined=0.0027 kWh
2026-08-17 14:08:41.422061: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0125 val_mae=0.0038 kWh val_bias=-0.0015 kWh (-3.4%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-17 14:08:57.311436: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0109 val_mae=0.0036 kWh val_bias=+0.0007 kWh (+1.6%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-17 14:09:10.223249: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0104 val_mae=0.0035 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-17 14:09:22.645342: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0097 val_mae=0.0042 kWh val_bias=+0.0016 kWh (+3.9%) combined=0.0034 kWh ema_combined=0.0028 kWh
2026-08-17 14:09:35.199282: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0095 val_mae=0.0033 kWh val_bias=-0.0007 kWh (-1.7%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-17 14:09:47.205082: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0097 val_mae=0.0035 kWh val_bias=-0.0008 kWh (-1.9%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-17 14:09:59.560423: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0083 val_mae=0.0037 kWh val_bias=+0.0015 kWh (+3.6%) combined=0.0039 kWh ema_combined=0.0028 kWh
2026-08-17 14:10:00.148454: --------------- PredBat - update at 2026-08-17 14:10:00+01:00 with clock skew 0 minutes, minutes now 850
2026-08-17 14:10:00.149383: Saved current settings to /config/predbat_config.json
2026-08-17 14:10:00.149513: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 14:10:00.149624: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:10:00.149706: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:10:00.229320: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:10:00.229459: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:10:00.229647: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:10:00.230260: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:10:00.230493: Predbat mode is set to Control charge & discharge
2026-08-17 14:10:00.700861: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:10:00.701041: Using load_power data to fill gaps in load_today data
2026-08-17 14:10:02.072503: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:10:02.072900: Zero load period starting at 2026-08-17T10:54:00+0100 (196 minutes) for 189 minutes with base value 214.825
2026-08-17 14:10:02.073556: Processing 721 30-minute periods for power integration
2026-08-17 14:10:02.244119: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:10:02.244324: Car charging hold False, threshold 6.0kWh
2026-08-17 14:10:02.244371: Current data so far today: load 7.65kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:10:02.259061: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 14:10:02.259251: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:10:02.260228: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:10:02.260382: Standing charge is set to 46.63p
2026-08-17 14:10:02.408441: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.408977: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.409423: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.409846: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.410268: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.410687: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.411088: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.411441: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.411849: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.412362: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.412862: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.413354: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.422504: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.422918: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.423263: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.423650: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.424151: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.424591: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.425045: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:10:02.425378: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:10:02.425721: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:10:02.434349: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:10:02.447451: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:10:02.556210: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:10:02.572561: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:10:02.574703: High export rate found rates in range 99p to -99p
2026-08-17 14:10:02.670216: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:10:02.670601: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:10:02.686698: Battery level now 10.08kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -2.8p, rate_forward 6.87p
2026-08-17 14:10:02.687222: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:10:02.795276: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:10:02.795465: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:10:02.967434: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:10:02.997964: Today's load divergence 98.53%, in-day adjustment 86.21%, damping 0.95x, yesterday 68.37% today 98.6% blend 40.97%
2026-08-17 14:10:02.998242: Today's predicted so far 9.12kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 9.12kWh forecast extra.
2026-08-17 14:10:02.998290: Today's actual load so far 8.89kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 14:10:03.050929: Inverter 0: Type SK Sunsynk
2026-08-17 14:10:03.051030: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:10:03.051262: Reserve min: 7%, battery_min: 7%
2026-08-17 14:10:03.051351: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:10:03.051703: Inverter 0 SoC: 10.08kW 63%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -55W, load power 451W, PV Power 0W
2026-08-17 14:10:03.051932: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:10:03.052044: Inverter 0 scheduled charge enable is False
2026-08-17 14:10:03.052089: Inverter 0 charge windows currently []
2026-08-17 14:10:03.052150: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:10:03.052283: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:10:03.052327: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:10:03.052381: Inverter 0 scheduled discharge enable is False
2026-08-17 14:10:03.052540: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:10:03.052584: Inverter 0 discharge windows currently []
2026-08-17 14:10:03.052622: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:10:03.052653: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:10:03.052685: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:10:03.140638: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:10:03.140786: Plan was last updated on 2026-08-17 14:00:00+01:00 and is now 10.0 minutes old
2026-08-17 14:10:03.141056: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:10:03.141148: Best export window [ ]
2026-08-17 14:10:03.142455: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:10:03.147143: Load divergence over 8.0 hours mean 465.49W, min 336.6W, max 898.2W, std dev 79.91W, divergence 8.58%
2026-08-17 14:10:03.177811: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:10:03.178027: LoadML is_calculating True
2026-08-17 14:10:03.178213: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 14:10:03.227203: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 602.61p, metric_keep 279.31kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.44kWh, PV 0.0kWh
2026-08-17 14:10:03.405952: Battery has 12.58 hours left - now at 10.08kWh
2026-08-17 14:10:03.513259: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.28p, metric_keep 280.89kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.48kWh, PV 0.0kWh
2026-08-17 14:10:03.689267: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 328.49p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.48kWh, PV 0.0kWh
2026-08-17 14:10:03.840895: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 325.95p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.44kWh, PV 0.0kWh
2026-08-17 14:10:03.841506: Saving plan best values to HA entities
2026-08-17 14:10:04.184655: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:10:04.190722: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 14:10:04.205467: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.55kWh, house 0.0kWh, export 0.0kWh, metric 325.95p, metric10 328.49p
2026-08-17 14:10:04.321095: Marginal costs baseline metric (no standing charge): 279.3127
2026-08-17 14:10:04.709641: Marginal energy costs matrix computed: min=8.0 max=29.59
2026-08-17 14:10:04.853921: Rate array import [{'start': 850, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 850, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:10:04.854754: - Your estimated bill for today is £1.70 and tomorrow is £1.71
2026-08-17 14:10:04.854798: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:10:04.854822: - The battery is currently at 63% and is in eco mode for the next 9 hours.
2026-08-17 14:10:04.854842: - For the next 48 hours there will be no solar generation.
2026-08-17 14:10:04.854871: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:10:04.854897: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:10:04.854918:
2026-08-17 14:10:04.941347: Plan calculation took 1.80 seconds
2026-08-17 14:10:04.945119: No high rate period found
2026-08-17 14:10:05.016512: Import threshold used for optimisation was 8.0p
2026-08-17 14:10:05.127639: Low import rate windows [0: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 1: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 2: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 3: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 4: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 5: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 6: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 7: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 8: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 9: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 10: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 11: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 12: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 13: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 14: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 15: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 16: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 17: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 18: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 19: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 20: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 21: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 22: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 23: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 24: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 25: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 26: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 27: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 28: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 29: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 30: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 31: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 32: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 33: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 34: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 35: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 36: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 37: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 38: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 39: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 40: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 41: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 42: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 43: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 44: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 45: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 46: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 47: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 48: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 49: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 50: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 51: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 52: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 53: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 54: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 55: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 56: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 57: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 58: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 59: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 60: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 61: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 62: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 63: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 64: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 65: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 66: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 67: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 68: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 69: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 70: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 71: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 72: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 73: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 74: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 75: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 76: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 77: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 78: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 79: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 80: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 81: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 82: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 83: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 84: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 85: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 86: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 87: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 88: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 89: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 90: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 91: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 92: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 93: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 94: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75]
2026-08-17 14:10:05.154359: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 63%, target 100%
2026-08-17 14:10:05.154508: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:10:05.154602: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:10:05.154790: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:10:05.154868: No export window planned
2026-08-17 14:10:05.154965: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:10:05.155001: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:10:05.155150: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:10:05.155293: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:10:05.155343: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:10:05.155395: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:10:05.155466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155507: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155542: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155570: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155604: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155640: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155675: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155733: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.155969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.156074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.156135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.156218: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:10:05.156255: Inverter 0 count register writes 0
2026-08-17 14:10:05.182444: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 14:10:05.182678: Recompute is saving previous plan...
2026-08-17 14:10:05.185453: Best charge window [ 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0% ]
2026-08-17 14:10:05.185606: Best export window [ ]
2026-08-17 14:10:05.186312: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:10:05.189196: Load divergence over 8.0 hours mean 465.49W, min 336.6W, max 898.2W, std dev 79.91W, divergence 8.58%
2026-08-17 14:10:05.204039: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:10:05.204346: LoadML is_calculating True
2026-08-17 14:10:05.204380: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 14:10:05.211755: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 14:10:05.212580: Optimise levels pass started at 2026-08-17 14:10:05
2026-08-17 14:10:05.212626: Optimise all windows, total charge 94 export 1
2026-08-17 14:10:07.400676: >> Region optimisation pass width 960 gives best_metric 358.17p, best_cost 415.24p, best_cycle 46.96kWh, best_import 33.54kWh
2026-08-17 14:10:08.011121: >> Region optimisation pass width 480 gives best_metric 358.17p, best_cost 415.24p, best_cycle 46.96kWh, best_import 33.54kWh
2026-08-17 14:10:09.059287: >> Region optimisation pass width 240 gives best_metric 354.55p, best_cost 389.79p, best_cycle 48.27kWh, best_import 30.35kWh
2026-08-17 14:10:18.438677: >> Region optimisation pass width 120 gives best_metric 348.93p, best_cost 360.1p, best_cycle 43.93kWh, best_import 26.64kWh
2026-08-17 14:10:18.439524: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 65
2026-08-17 14:10:18.439691: Optimise levels pass ended at 2026-08-17 14:10:18, duration 13.2 seconds tried 247 combinations
2026-08-17 14:10:18.439781: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 348.93p, best_keep 0.14kWh, best_cycle 43.93kWh, best_carbon 0kg, best_import 26.64kWh
2026-08-17 14:10:18.460188: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 14:10:47.444721: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0081 val_mae=0.0027 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0015 kWh ema_combined=0.0024 kWh
2026-08-17 14:10:51.496248: Tweak plan optimisation started metric 258.61p, cost 270.53p
2026-08-17 14:10:54.278776: Tweak optimisation finished metric 258.61p, cost 270.53p, metric_keep 0.1kWh, cycle 28.28kWh, carbon 0kg, import 15.45kWh, changed 8 window(s)
2026-08-17 14:10:54.318504: Swap charge optimisation started metric 258.61p, cost 270.53p, min_improvement_swap 0.1p
2026-08-17 14:11:04.754399: Swap charge optimisation finished metric 258.61p, cost 270.53p
2026-08-17 14:11:04.907529: Raw charge windows [ 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:11:04.908172: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:11:04.908405: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:11:04.908586: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:11:04.953487: Previous plan best metric is 259.03 (cost 271.03) and new plan best metric is 258.61 (cost 270.53)
2026-08-17 14:11:04.953702: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 14:11:04.953823: Plan valid is now true after recompute was False
2026-08-17 14:11:04.985585: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.0p, metric_keep 278.72kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.24kWh, PV 0.0kWh
2026-08-17 14:11:05.358644: Battery has 12.58 hours left - now at 10.08kWh
2026-08-17 14:11:05.479270: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 623.59p, metric_keep 280.31kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.26kWh, PV 0.0kWh
2026-08-17 14:11:05.595231: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 321.24p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.26kWh, PV 0.0kWh
2026-08-17 14:11:05.728777: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 317.66p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.24kWh, PV 0.0kWh
2026-08-17 14:11:05.728870: Saving plan best values to HA entities
2026-08-17 14:11:06.040507: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:11:06.052984: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 14:11:06.068265: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.51kWh, house 0.0kWh, export 0.0kWh, metric 317.66p, metric10 321.24p
2026-08-17 14:11:06.217202: Marginal costs baseline metric (no standing charge): 271.0284
2026-08-17 14:11:06.616641: Marginal energy costs matrix computed: min=8.0 max=29.59
2026-08-17 14:11:06.769433: Rate array import [{'start': 850, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 850, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:11:06.771239: - Your estimated bill for today is £1.70 and tomorrow is £1.71
2026-08-17 14:11:06.771390: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:11:06.771436: - The battery is currently at 63% and is in eco mode for the next 9 hours.
2026-08-17 14:11:06.771509: - For the next 48 hours there will be no solar generation.
2026-08-17 14:11:06.771549: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:11:06.771614: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:11:06.771651:
2026-08-17 14:11:06.871673: Plan calculation took 61.69 seconds
2026-08-17 14:11:06.871972: Inverter 0: Type SK Sunsynk
2026-08-17 14:11:06.872035: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:11:06.872263: Reserve min: 7%, battery_min: 7%
2026-08-17 14:11:06.872351: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:11:06.872666: Inverter 0 SoC: 9.94kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 395W, current battery voltage 51.2V, grid power -54W, load power 459W, PV Power 0W
2026-08-17 14:11:06.872852: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:11:06.872958: Inverter 0 scheduled charge enable is False
2026-08-17 14:11:06.873004: Inverter 0 charge windows currently []
2026-08-17 14:11:06.873198: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:11:06.873537: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:11:06.873685: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:11:06.873904: Inverter 0 scheduled discharge enable is False
2026-08-17 14:11:06.874242: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:11:06.874388: Inverter 0 discharge windows currently []
2026-08-17 14:11:06.874548: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:11:06.874700: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:11:06.874848: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:11:07.002520: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:11:07.002687: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:11:07.002879: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:11:07.003195: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:11:07.003336: No export window planned
2026-08-17 14:11:07.003514: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:11:07.003565: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:11:07.003816: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:11:07.004069: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:11:07.004224: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:11:07.004338: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:11:07.004482: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.004539: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.004652: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.004764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.004816: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.004892: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.004942: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005361: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:11:07.005671: Inverter 0 count register writes 0
2026-08-17 14:11:07.053465: Total inverter register writes now 861
2026-08-17 14:11:07.139751: Info: Completed run status Demand
2026-08-17 14:11:07.149358: Info: record_status Demand
2026-08-17 14:11:07.161578: Saved current settings to /config/predbat_config.json
2026-08-17 14:11:07.161989: Compare, best tariff: current metric 104.68p
2026-08-17 14:11:15.458786: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0080 val_mae=0.0029 kWh val_bias=-0.0007 kWh (-1.7%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-17 14:11:29.205136: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0089 val_mae=0.0028 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-17 14:11:42.170520: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0071 val_mae=0.0025 kWh val_bias=+0.0005 kWh (+1.3%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-17 14:11:49.375786: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:11:49.376090: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:11:49.376167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:11:49.376341: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:11:49.376389: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:11:49.376417: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:11:49.376522: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:11:56.066519: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0068 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 14:12:10.400363: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0072 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 14:12:23.188782: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0062 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-17 14:12:35.365315: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0059 val_mae=0.0023 kWh val_bias=-0.0008 kWh (-1.9%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-17 14:12:49.041233: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0013 kWh (-3.0%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-17 14:13:02.061460: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-17 14:13:18.150519: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-17 14:13:31.075218: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0058 val_mae=0.0021 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 14:13:44.738203: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 14:14:02.123038: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 14:14:03.738582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:14:03.738901: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:14:03.738962: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:14:03.739186: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:14:03.739244: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:14:03.739288: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:14:03.739354: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:14:17.821112: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0020 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-17 14:14:31.325965: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0048 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0010 kWh ema_combined=0.0013 kWh
2026-08-17 14:14:44.162948: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0049 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0012 kWh
2026-08-17 14:14:57.609080: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0047 val_mae=0.0021 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0015 kWh ema_combined=0.0013 kWh
2026-08-17 14:15:00.976671: --------------- PredBat - update at 2026-08-17 14:15:00+01:00 with clock skew 0 minutes, minutes now 855
2026-08-17 14:15:00.977536: Saved current settings to /config/predbat_config.json
2026-08-17 14:15:00.977651: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 14:15:00.977809: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:15:00.977897: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:15:01.028331: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:15:01.028671: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:15:01.029034: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:15:01.029749: Cars 1 charging from battery True planned [True], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:15:01.030000: Predbat mode is set to Control charge & discharge
2026-08-17 14:15:01.324722: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:15:01.324908: Using load_power data to fill gaps in load_today data
2026-08-17 14:15:02.527990: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:15:02.528254: Zero load period starting at 2026-08-17T10:54:00+0100 (201 minutes) for 189 minutes with base value 214.8
2026-08-17 14:15:02.528682: Processing 721 30-minute periods for power integration
2026-08-17 14:15:02.736570: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:15:02.736711: Car charging hold False, threshold 6.0kWh
2026-08-17 14:15:02.736769: Current data so far today: load 7.7kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:15:02.764854: Car 0 using Octopus Intelligent, no charging is planned
2026-08-17 14:15:02.764977: Cars: SoC: [58.6]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:15:02.765812: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:15:02.765905: Standing charge is set to 46.63p
2026-08-17 14:15:02.987472: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.988366: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.988606: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.988832: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.988989: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.989348: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.989511: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.989728: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.989901: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.990134: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.990396: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.990622: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.990972: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.991252: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.991446: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.991743: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.992187: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.992453: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.992671: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:15:02.992818: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:15:02.992930: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:15:02.998881: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:15:02.999299: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:15:03.129333: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:15:03.130371: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:15:03.132843: High export rate found rates in range 99p to -99p
2026-08-17 14:15:03.413033: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:15:03.413172: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:15:03.451081: Battery level now 10.08kWh, -1hr ago 10.56kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -2.8p, rate_forward 6.87p
2026-08-17 14:15:03.451630: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:15:03.541513: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:15:03.541682: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:15:03.719957: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:15:03.787581: Today's load divergence 98.73%, in-day adjustment 86.43%, damping 0.95x, yesterday 68.37% today 98.79% blend 40.62%
2026-08-17 14:15:03.787689: Today's predicted so far 9.12kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 9.12kWh forecast extra.
2026-08-17 14:15:03.789525: Today's actual load so far 8.92kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 14:15:03.858129: Inverter 0: Type SK Sunsynk
2026-08-17 14:15:03.858314: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:15:03.858561: Reserve min: 7%, battery_min: 7%
2026-08-17 14:15:03.858673: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:15:03.858985: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 394W, current battery voltage 51.2V, grid power -53W, load power 457W, PV Power 0W
2026-08-17 14:15:03.859191: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:15:03.859321: Inverter 0 scheduled charge enable is False
2026-08-17 14:15:03.859362: Inverter 0 charge windows currently []
2026-08-17 14:15:03.859418: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:15:03.859617: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:15:03.859736: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:15:03.859858: Inverter 0 scheduled discharge enable is False
2026-08-17 14:15:03.860088: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:15:03.860150: Inverter 0 discharge windows currently []
2026-08-17 14:15:03.860215: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:15:03.860248: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:15:03.860269: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:15:03.978917: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:15:03.979134: Plan was last updated on 2026-08-17 14:10:00+01:00 and is now 5.0 minutes old
2026-08-17 14:15:03.979388: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:15:03.979499: Best export window [ ]
2026-08-17 14:15:03.980272: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:15:03.982797: Load divergence over 8.0 hours mean 462.19W, min 339.0W, max 912.0W, std dev 79.11W, divergence 8.56%
2026-08-17 14:15:04.001218: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:15:04.001325: LoadML is_calculating True
2026-08-17 14:15:04.001356: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 14:15:04.031244: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 603.15p, metric_keep 279.5kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 29.36kWh, PV 0.0kWh
2026-08-17 14:15:04.284526: Battery has 12.33 hours left - now at 9.92kWh
2026-08-17 14:15:04.339117: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 625.73p, metric_keep 281.07kWh, min_soc 1.12kWh @ 08-18 02:10:00, load 30.39kWh, PV 0.0kWh
2026-08-17 14:15:04.503676: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 325.87p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.39kWh, PV 0.0kWh
2026-08-17 14:15:04.690058: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 322.74p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.36kWh, PV 0.0kWh
2026-08-17 14:15:04.690168: Saving plan best values to HA entities
2026-08-17 14:15:04.964206: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:15:04.969798: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:15:04.987941: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.14kWh, house 0.0kWh, export 0.0kWh, metric 322.74p, metric10 325.87p
2026-08-17 14:15:05.108368: Marginal costs baseline metric (no standing charge): 276.1075
2026-08-17 14:15:05.607073: Marginal energy costs matrix computed: min=8.0 max=29.46
2026-08-17 14:15:05.757022: Rate array import [{'start': 855, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 855, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:15:05.758464: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:15:05.758538: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:15:05.758571: - The battery is currently at 62% and is in eco mode for the next 9 hours.
2026-08-17 14:15:05.758602: - For the next 48 hours there will be no solar generation.
2026-08-17 14:15:05.758632: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:15:05.758689: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:15:05.758782:
2026-08-17 14:15:05.834581: Plan calculation took 1.86 seconds
2026-08-17 14:15:05.839895: No high rate period found
2026-08-17 14:15:05.945876: Import threshold used for optimisation was 8.0p
2026-08-17 14:15:06.036978: Low import rate windows [0: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 1: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 2: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 3: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 4: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 5: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 6: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 7: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 8: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 9: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 10: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 11: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 12: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 13: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 14: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 15: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 16: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 17: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 18: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 19: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 20: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 21: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 22: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 23: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 24: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 25: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 26: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 27: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 28: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 29: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 30: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 31: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 32: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 33: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 34: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 35: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 36: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 37: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 38: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 39: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 40: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 41: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 42: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 43: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 44: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 45: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 46: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 47: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 48: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 49: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 50: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 51: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 52: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 53: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 54: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 55: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 56: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 57: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 58: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 59: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 60: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 61: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 62: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 63: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 64: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 65: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 66: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 67: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 68: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 69: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 70: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 71: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 72: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 73: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 74: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 75: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 76: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 77: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 78: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 79: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 80: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 81: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 82: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 83: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 84: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 85: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 86: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 87: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 88: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 89: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 90: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 91: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 92: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 93: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 94: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75]
2026-08-17 14:15:06.045880: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:15:06.046149: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:15:06.046268: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:15:06.046540: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:15:06.046666: No export window planned
2026-08-17 14:15:06.046844: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:15:06.046892: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:15:06.047120: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:15:06.047350: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:15:06.047414: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:15:06.047548: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:15:06.047677: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.047732: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.047862: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.047942: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:15:06.048861: Inverter 0 count register writes 0
2026-08-17 14:15:06.086294: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 14:15:06.096953: Total inverter register writes now 861
2026-08-17 14:15:06.171778: Info: Completed run status Demand
2026-08-17 14:15:06.187864: Info: record_status Demand
2026-08-17 14:15:06.206264: Saved current settings to /config/predbat_config.json
2026-08-17 14:15:06.213400: Compare, best tariff: current metric 104.68p
2026-08-17 14:15:15.583253: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0020 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 14:15:28.080007: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0020 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-17 14:15:28.080847: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 14:15:28.081067: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 14:15:29.065140: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=+0.0002 kWh (+0.4%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 14:15:29.070948: ML Predictor: Curriculum training complete, final val_mae=0.0020 kWh
2026-08-17 14:15:29.081847: ML Component: Training successful, val_mae=0.0020 kWh
2026-08-17 14:15:29.215223: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 14:15:29.221815: ML Component: Generating predictions load data age 58.0 days, 16986 data points
2026-08-17 14:15:29.366446: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0498 max_dow {0: 0.08308888895147376, 1: 0.09609374963007868, 2: 0.11056249959506095, 3: 0.10459062534738332, 4: 0.1370531253574416, 5: 0.09903888897581234, 6: 0.10566944482541746}
2026-08-17 14:15:30.050203: ML Component: Generated 576 predictions (total 25.95 kWh over 48h)
2026-08-17 14:15:30.104081: ML Component: Prediction cycle completed
2026-08-17 14:15:30.261886: ML Component: Saved 16986 steps (58 days) of history to /config/predbat_ml_history.npz
2026-08-17 14:15:49.382124: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:15:49.382342: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:15:49.382384: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:15:49.382511: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:15:49.382549: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:15:49.382574: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:15:49.382592: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:17:49.593302: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:17:49.593524: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:17:49.593572: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:17:49.593744: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:17:49.593787: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:17:49.593816: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:17:49.593846: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:20:00.821960: --------------- PredBat - update at 2026-08-17 14:20:00+01:00 with clock skew 0 minutes, minutes now 860
2026-08-17 14:20:00.822793: Saved current settings to /config/predbat_config.json
2026-08-17 14:20:00.822932: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 14:20:00.823078: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:20:00.823182: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:20:00.843113: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:20:00.843289: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:20:00.843518: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:20:00.844162: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:20:00.844367: Predbat mode is set to Control charge & discharge
2026-08-17 14:20:01.015260: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:20:01.015386: Using load_power data to fill gaps in load_today data
2026-08-17 14:20:01.827890: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:20:01.828077: Zero load period starting at 2026-08-17T10:54:00+0100 (206 minutes) for 189 minutes with base value 214.775
2026-08-17 14:20:01.828509: Processing 721 30-minute periods for power integration
2026-08-17 14:20:02.003397: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:20:02.003530: Car charging hold False, threshold 6.0kWh
2026-08-17 14:20:02.003595: Current data so far today: load 7.75kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:20:02.020021: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:20:02.020141: Cars: SoC: [58.014]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:20:02.020906: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:20:02.021001: Standing charge is set to 46.63p
2026-08-17 14:20:02.107948: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.108266: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.108502: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.108738: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.108961: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.109183: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.109415: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.109657: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.109936: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.110234: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.110576: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.110828: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.111006: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.111171: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.111364: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.111530: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.111708: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.111867: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.112094: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:20:02.112158: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:20:02.112243: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:20:02.117717: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:20:02.118051: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:20:02.161104: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:20:02.161219: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:20:02.162550: High export rate found rates in range 99p to -99p
2026-08-17 14:20:02.252921: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:20:02.253032: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:20:02.263639: Battery level now 9.92kWh, -1hr ago 10.53kWh, at midnight 10.49kWh, battery value change in the last hour -4.18p, change today -3.9p, rate_forward 6.87p
2026-08-17 14:20:02.264107: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:20:02.319403: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:20:02.319560: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:20:02.394547: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:20:02.416202: Today's load divergence 98.86%, in-day adjustment 86.61%, damping 0.95x, yesterday 68.37% today 98.92% blend 40.28%
2026-08-17 14:20:02.416802: Today's predicted so far 9.14kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.14kWh forecast extra.
2026-08-17 14:20:02.416853: Today's actual load so far 8.96kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 14:20:02.448768: Inverter 0: Type SK Sunsynk
2026-08-17 14:20:02.448854: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:20:02.449025: Reserve min: 7%, battery_min: 7%
2026-08-17 14:20:02.449092: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:20:02.449368: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 375W, current battery voltage 51.2V, grid power -56W, load power 443W, PV Power 0W
2026-08-17 14:20:02.449519: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:20:02.449602: Inverter 0 scheduled charge enable is False
2026-08-17 14:20:02.449636: Inverter 0 charge windows currently []
2026-08-17 14:20:02.449661: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:20:02.449766: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:20:02.449800: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:20:02.449835: Inverter 0 scheduled discharge enable is False
2026-08-17 14:20:02.449953: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:20:02.449988: Inverter 0 discharge windows currently []
2026-08-17 14:20:02.450011: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:20:02.450033: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:20:02.450050: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:20:02.509221: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:20:02.509348: Plan was last updated on 2026-08-17 14:10:00+01:00 and is now 10.0 minutes old
2026-08-17 14:20:02.509567: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:20:02.509704: Best export window [ ]
2026-08-17 14:20:02.510534: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:20:02.514141: Load divergence over 8.0 hours mean 462.29W, min 370.8W, max 909.0W, std dev 71.93W, divergence 7.78%
2026-08-17 14:20:02.536591: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:20:02.536714: LoadML is_calculating False
2026-08-17 14:20:02.536785: Creating pool of 12 processes to match your CPU count
2026-08-17 14:20:02.661811: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 603.41p, metric_keep 279.66kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.47kWh, PV 0.0kWh
2026-08-17 14:20:02.774283: Battery has 12.33 hours left - now at 9.92kWh
2026-08-17 14:20:02.822273: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 626.04p, metric_keep 281.23kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.51kWh, PV 0.0kWh
2026-08-17 14:20:02.896894: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 329.19p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.51kWh, PV 0.0kWh
2026-08-17 14:20:02.972044: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 326.6p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.47kWh, PV 0.0kWh
2026-08-17 14:20:02.972118: Saving plan best values to HA entities
2026-08-17 14:20:03.141069: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:20:03.145552: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:20:03.149937: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.63kWh, house 0.0kWh, export 0.0kWh, metric 326.6p, metric10 329.19p
2026-08-17 14:20:03.218173: Marginal costs baseline metric (no standing charge): 279.9698
2026-08-17 14:20:03.488996: Marginal energy costs matrix computed: min=8.0 max=28.86
2026-08-17 14:20:03.560772: Rate array import [{'start': 860, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 860, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:20:03.561488: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:20:03.561559: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:20:03.561582: - The battery is currently at 62% and is in eco mode for the next 9 hours.
2026-08-17 14:20:03.561600: - For the next 48 hours there will be no solar generation.
2026-08-17 14:20:03.561621: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:20:03.561639: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:20:03.561661:
2026-08-17 14:20:03.616681: Plan calculation took 1.11 seconds
2026-08-17 14:20:03.620435: No high rate period found
2026-08-17 14:20:03.676806: Import threshold used for optimisation was 8.0p
2026-08-17 14:20:03.741070: Low import rate windows [0: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 1: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 2: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 3: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 4: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 5: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 6: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 7: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 8: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 9: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 10: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 11: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 12: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 13: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 14: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 15: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 16: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 17: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 18: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 19: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 20: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 21: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 22: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 23: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 24: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 25: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 26: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 27: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 28: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 29: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 30: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 31: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 32: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 33: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 34: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 35: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 36: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 37: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 38: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 39: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 40: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 41: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 42: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 43: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 44: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 45: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 46: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 47: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 48: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 49: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 50: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 51: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 52: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 53: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 54: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 55: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 56: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 57: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 58: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 59: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 60: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 61: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 62: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 63: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 64: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 65: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 66: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 67: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 68: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 69: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 70: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 71: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 72: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 73: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 74: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 75: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 76: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 77: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 78: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 79: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 80: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 81: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 82: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 83: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 84: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 85: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 86: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 87: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 88: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 89: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 90: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 91: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 92: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 93: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 94: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75]
2026-08-17 14:20:03.747815: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:20:03.748068: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:20:03.748221: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:20:03.748546: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:20:03.748665: No export window planned
2026-08-17 14:20:03.748836: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:20:03.748893: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:20:03.749102: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:20:03.749379: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:20:03.749459: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:20:03.749622: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:20:03.749762: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.749837: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.749889: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.749926: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.749986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750104: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:03.750573: Inverter 0 count register writes 0
2026-08-17 14:20:03.766249: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 14:20:03.766442: Recompute is saving previous plan...
2026-08-17 14:20:03.769634: Best charge window [ 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0% ]
2026-08-17 14:20:03.769734: Best export window [ ]
2026-08-17 14:20:03.771076: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:20:03.774554: Load divergence over 8.0 hours mean 462.29W, min 370.8W, max 909.0W, std dev 71.93W, divergence 7.78%
2026-08-17 14:20:03.792827: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:20:03.792959: LoadML is_calculating False
2026-08-17 14:20:03.793050: Creating pool of 12 processes to match your CPU count
2026-08-17 14:20:03.880577: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 14:20:03.882363: Optimise levels pass started at 2026-08-17 14:20:03
2026-08-17 14:20:03.882429: Optimise all windows, total charge 94 export 1
2026-08-17 14:20:04.245166: >> Region optimisation pass width 960 gives best_metric 359.65p, best_cost 416.03p, best_cycle 47.11kWh, best_import 33.64kWh
2026-08-17 14:20:04.435207: >> Region optimisation pass width 480 gives best_metric 359.65p, best_cost 416.03p, best_cycle 47.11kWh, best_import 33.64kWh
2026-08-17 14:20:04.756979: >> Region optimisation pass width 240 gives best_metric 356.03p, best_cost 390.52p, best_cycle 48.42kWh, best_import 30.45kWh
2026-08-17 14:20:05.813063: >> Region optimisation pass width 120 gives best_metric 350.74p, best_cost 362.99p, best_cycle 44.34kWh, best_import 27.01kWh
2026-08-17 14:20:05.813341: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 65
2026-08-17 14:20:05.813415: Optimise levels pass ended at 2026-08-17 14:20:05, duration 1.9 seconds tried 152 combinations
2026-08-17 14:20:05.813490: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 350.74p, best_keep 0.11kWh, best_cycle 44.34kWh, best_carbon 0kg, best_import 27.01kWh
2026-08-17 14:20:05.834273: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 14:20:10.435829: Tweak plan optimisation started metric 259.38p, cost 271.26p
2026-08-17 14:20:10.750736: Tweak optimisation finished metric 259.38p, cost 271.26p, metric_keep 0.11kWh, cycle 28.32kWh, carbon 0kg, import 15.54kWh, changed 8 window(s)
2026-08-17 14:20:10.768161: Swap charge optimisation started metric 259.38p, cost 271.26p, min_improvement_swap 0.1p
2026-08-17 14:20:16.421105: Swap charge optimisation finished metric 259.38p, cost 271.26p
2026-08-17 14:20:16.549795: Raw charge windows [ 17-08 14:00:00 - 17-08 14:30:00 @ 33.75p 0%, 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:20:16.551033: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:20:16.551243: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:20:16.551387: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:20:16.597026: Previous plan best metric is 259.73 (cost 271.68) and new plan best metric is 259.38 (cost 271.26)
2026-08-17 14:20:16.597304: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 14:20:16.597501: Plan valid is now true after recompute was False
2026-08-17 14:20:16.625602: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.78p, metric_keep 279.07kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.27kWh, PV 0.0kWh
2026-08-17 14:20:16.737417: Battery has 12.33 hours left - now at 9.92kWh
2026-08-17 14:20:16.780921: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 624.34p, metric_keep 280.65kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.29kWh, PV 0.0kWh
2026-08-17 14:20:16.852099: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 321.93p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.29kWh, PV 0.0kWh
2026-08-17 14:20:16.927578: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 318.31p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.27kWh, PV 0.0kWh
2026-08-17 14:20:16.927653: Saving plan best values to HA entities
2026-08-17 14:20:17.077756: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:20:17.083260: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:20:17.088719: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.59kWh, house 0.0kWh, export 0.0kWh, metric 318.31p, metric10 321.93p
2026-08-17 14:20:17.177851: Marginal costs baseline metric (no standing charge): 271.6776
2026-08-17 14:20:17.453688: Marginal energy costs matrix computed: min=8.0 max=28.86
2026-08-17 14:20:17.520150: Rate array import [{'start': 860, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 860, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:20:17.520863: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:20:17.520907: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:20:17.520930: - The battery is currently at 62% and is in eco mode for the next 9 hours.
2026-08-17 14:20:17.520949: - For the next 48 hours there will be no solar generation.
2026-08-17 14:20:17.520966: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:20:17.520984: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:20:17.521001:
2026-08-17 14:20:17.576594: Plan calculation took 13.81 seconds
2026-08-17 14:20:17.576888: Inverter 0: Type SK Sunsynk
2026-08-17 14:20:17.576924: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:20:17.577095: Reserve min: 7%, battery_min: 7%
2026-08-17 14:20:17.577157: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:20:17.577444: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 376W, current battery voltage 51.2V, grid power -55W, load power 519W, PV Power 0W
2026-08-17 14:20:17.577671: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:20:17.577759: Inverter 0 scheduled charge enable is False
2026-08-17 14:20:17.577784: Inverter 0 charge windows currently []
2026-08-17 14:20:17.577808: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:20:17.577901: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:20:17.577933: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:20:17.577965: Inverter 0 scheduled discharge enable is False
2026-08-17 14:20:17.578071: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:20:17.578101: Inverter 0 discharge windows currently []
2026-08-17 14:20:17.578130: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:20:17.578169: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:20:17.578203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:20:17.628293: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:20:17.628460: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:20:17.628558: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:20:17.628786: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:20:17.628875: No export window planned
2026-08-17 14:20:17.629059: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:20:17.629102: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:20:17.629240: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:20:17.629415: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:20:17.629468: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:20:17.629534: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:20:17.629620: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629659: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629718: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629743: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629768: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629797: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.629994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.630023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:20:17.630043: Inverter 0 count register writes 0
2026-08-17 14:20:17.650023: Total inverter register writes now 861
2026-08-17 14:20:17.678753: Info: Completed run status Demand
2026-08-17 14:20:17.684091: Info: record_status Demand
2026-08-17 14:20:17.689775: Saved current settings to /config/predbat_config.json
2026-08-17 14:20:17.689984: Compare, best tariff: current metric 104.68p
2026-08-17 14:20:48.784392: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:20:48.784961: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:20:48.785035: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:20:48.785198: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:20:48.785250: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:20:48.785273: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:20:48.785308: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:22:49.002986: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:22:49.003213: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:22:49.003254: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:22:49.003468: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:22:49.003529: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:22:49.003571: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:22:49.003608: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:24:49.293626: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:24:49.294178: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:24:49.294325: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:24:49.294646: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:24:49.294774: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:24:49.294821: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:24:49.294843: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:25:00.385807: --------------- PredBat - update at 2026-08-17 14:25:00+01:00 with clock skew 0 minutes, minutes now 865
2026-08-17 14:25:00.386572: Saved current settings to /config/predbat_config.json
2026-08-17 14:25:00.386710: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 14:25:00.386800: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:25:00.386936: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:25:00.402201: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:25:00.402317: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:25:00.402580: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:25:00.403121: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:25:00.403241: Predbat mode is set to Control charge & discharge
2026-08-17 14:25:00.587800: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:25:00.587967: Using load_power data to fill gaps in load_today data
2026-08-17 14:25:01.417014: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:25:01.417186: Zero load period starting at 2026-08-17T10:54:00+0100 (211 minutes) for 189 minutes with base value 214.75
2026-08-17 14:25:01.417641: Processing 721 30-minute periods for power integration
2026-08-17 14:25:01.604856: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:25:01.604979: Car charging hold False, threshold 6.0kWh
2026-08-17 14:25:01.605022: Current data so far today: load 7.8kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:25:01.621359: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:25:01.621476: Cars: SoC: [56.842]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:25:01.622217: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:25:01.622286: Standing charge is set to 46.63p
2026-08-17 14:25:01.711340: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.711631: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.711895: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.712186: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.712377: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.712596: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.712782: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.712977: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.713162: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.713321: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.713499: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.713663: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.713821: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.713978: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.714132: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.714288: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.714473: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.714634: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.714788: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:25:01.714845: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:25:01.714950: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:25:01.720046: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:25:01.720412: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:25:01.763756: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:25:01.763876: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:25:01.765147: High export rate found rates in range 99p to -99p
2026-08-17 14:25:01.862149: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:25:01.863110: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:25:01.882345: Battery level now 9.92kWh, -1hr ago 10.4kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -3.9p, rate_forward 6.87p
2026-08-17 14:25:01.883272: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:25:01.963627: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:25:01.963804: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:25:02.057060: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:25:02.085944: Today's load divergence 98.96%, in-day adjustment 86.78%, damping 0.95x, yesterday 68.37% today 99.01% blend 39.93%
2026-08-17 14:25:02.086034: Today's predicted so far 9.17kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 9.17kWh forecast extra.
2026-08-17 14:25:02.086066: Today's actual load so far 9.01kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 14:25:02.116004: Inverter 0: Type SK Sunsynk
2026-08-17 14:25:02.116082: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:25:02.116248: Reserve min: 7%, battery_min: 7%
2026-08-17 14:25:02.116316: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:25:02.116581: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 414W, current battery voltage 51.2V, grid power -55W, load power 478W, PV Power 0W
2026-08-17 14:25:02.116730: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:25:02.116812: Inverter 0 scheduled charge enable is False
2026-08-17 14:25:02.116841: Inverter 0 charge windows currently []
2026-08-17 14:25:02.116873: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:25:02.116982: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:25:02.117017: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:25:02.117052: Inverter 0 scheduled discharge enable is False
2026-08-17 14:25:02.117169: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:25:02.117231: Inverter 0 discharge windows currently []
2026-08-17 14:25:02.117253: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:25:02.117275: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:25:02.117292: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:25:02.172549: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:25:02.172648: Plan was last updated on 2026-08-17 14:20:00+01:00 and is now 5.0 minutes old
2026-08-17 14:25:02.172875: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:25:02.172961: Best export window [ ]
2026-08-17 14:25:02.173848: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:25:02.177512: Load divergence over 8.0 hours mean 462.78W, min 384.0W, max 905.4W, std dev 70.08W, divergence 7.57%
2026-08-17 14:25:02.197552: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:25:02.197649: LoadML is_calculating False
2026-08-17 14:25:02.197710: Creating pool of 12 processes to match your CPU count
2026-08-17 14:25:02.312221: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 602.5p, metric_keep 279.19kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.39kWh, PV 0.0kWh
2026-08-17 14:25:02.441938: Battery has 12.33 hours left - now at 9.92kWh
2026-08-17 14:25:02.486918: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 625.14p, metric_keep 280.77kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.42kWh, PV 0.0kWh
2026-08-17 14:25:02.556028: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 325.22p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 14:25:02.621500: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 322.12p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.39kWh, PV 0.0kWh
2026-08-17 14:25:02.621577: Saving plan best values to HA entities
2026-08-17 14:25:02.771836: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:25:02.776260: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:25:02.780662: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.07kWh, house 0kWh, export 0.0kWh, metric 322.12p, metric10 325.22p
2026-08-17 14:25:02.851086: Marginal costs baseline metric (no standing charge): 275.4866
2026-08-17 14:25:03.070169: Marginal energy costs matrix computed: min=8.0 max=28.27
2026-08-17 14:25:03.163170: Rate array import [{'start': 865, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 865, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:25:03.164220: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:25:03.164280: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:25:03.164304: - The battery is currently at 62% and is in eco mode for the next 9 hours.
2026-08-17 14:25:03.164323: - For the next 48 hours there will be no solar generation.
2026-08-17 14:25:03.164341: - You will reach a minimum of 12% battery in 33 hours.
2026-08-17 14:25:03.164358: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:25:03.164385:
2026-08-17 14:25:03.222750: Plan calculation took 1.05 seconds
2026-08-17 14:25:03.226295: No high rate period found
2026-08-17 14:25:03.269323: Import threshold used for optimisation was 8.0p
2026-08-17 14:25:03.320596: Low import rate windows [0: 08-17 14:00:00 - 08-17 14:30:00 @ 33.75, 1: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 2: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 3: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 4: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 5: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 6: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 7: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 8: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 9: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 10: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 11: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 12: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 13: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 14: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 15: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 16: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 17: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 18: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 19: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 20: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 21: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 22: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 23: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 24: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 25: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 26: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 27: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 28: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 29: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 30: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 31: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 32: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 33: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 34: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 35: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 36: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 37: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 38: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 39: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 40: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 41: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 42: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 43: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 44: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 45: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 46: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 47: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 48: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 49: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 50: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 51: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 52: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 53: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 54: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 55: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 56: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 57: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 58: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 59: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 60: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 61: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 62: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 63: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 64: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 65: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 66: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 67: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 68: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 69: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 70: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 71: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 72: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 73: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 74: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 75: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 76: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 77: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 78: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 79: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 80: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 81: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 82: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 83: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 84: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 85: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 86: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 87: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 88: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 89: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 90: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 91: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 92: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 93: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 94: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75]
2026-08-17 14:25:03.325951: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:25:03.326060: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:25:03.326154: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:25:03.326379: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:25:03.326507: No export window planned
2026-08-17 14:25:03.326621: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:25:03.326650: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:25:03.326757: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:25:03.326904: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:25:03.326955: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:25:03.327008: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:25:03.327084: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327111: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327132: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327221: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327272: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:25:03.327422: Inverter 0 count register writes 0
2026-08-17 14:25:03.342239: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 14:25:03.347246: Total inverter register writes now 861
2026-08-17 14:25:03.378796: Info: Completed run status Demand
2026-08-17 14:25:03.384415: Info: record_status Demand
2026-08-17 14:25:03.390722: Saved current settings to /config/predbat_config.json
2026-08-17 14:25:03.391033: Compare, best tariff: current metric 104.68p
2026-08-17 14:25:34.495728: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:25:34.495986: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:25:34.496039: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:25:34.496185: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:25:34.496227: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:25:34.496249: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:25:34.496290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:27:48.773908: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:27:48.774134: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:27:48.774167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:27:48.774290: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:27:48.774328: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:27:48.774349: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:27:48.774375: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:29:48.987192: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:29:48.987473: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:29:48.987541: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:29:48.987688: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:29:48.987728: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:29:48.987750: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:29:48.987768: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:30:00.102870: --------------- PredBat - update at 2026-08-17 14:30:00+01:00 with clock skew 0 minutes, minutes now 870
2026-08-17 14:30:00.104326: Saved current settings to /config/predbat_config.json
2026-08-17 14:30:00.104638: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 14:30:00.104754: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:30:00.104923: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:30:00.136585: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:30:00.136775: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:30:00.137128: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:30:00.138005: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:30:00.138471: Predbat mode is set to Control charge & discharge
2026-08-17 14:30:00.461102: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:30:00.461321: Using load_power data to fill gaps in load_today data
2026-08-17 14:30:01.657495: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:30:01.657775: Zero load period starting at 2026-08-17T10:54:00+0100 (216 minutes) for 189 minutes with base value 214.725
2026-08-17 14:30:01.658264: Processing 721 30-minute periods for power integration
2026-08-17 14:30:01.916325: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:30:01.916756: Car charging hold False, threshold 6.0kWh
2026-08-17 14:30:01.916849: Current data so far today: load 7.85kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:30:01.942118: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:30:01.942286: Cars: SoC: [56.256]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:30:01.943280: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:30:01.943420: Standing charge is set to 46.63p
2026-08-17 14:30:02.055155: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.055451: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.055696: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.055941: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.056160: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.056375: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.056622: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.056829: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.057039: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.057234: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.057433: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.057667: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.057870: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.058076: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.058276: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.058471: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.058677: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.058872: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.059077: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:30:02.059146: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:30:02.059279: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:30:02.065790: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:30:02.066249: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:30:02.114030: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:30:02.114211: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:30:02.116809: High export rate found rates in range 99p to -99p
2026-08-17 14:30:02.218238: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:30:02.218774: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:30:02.242415: Battery level now 9.92kWh, -1hr ago 10.4kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -3.9p, rate_forward 6.87p
2026-08-17 14:30:02.243082: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:30:02.326636: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:30:02.326871: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:30:02.430354: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:30:02.464539: Today's load divergence 98.7%, in-day adjustment 86.74%, damping 0.95x, yesterday 68.37% today 98.77% blend 39.58%
2026-08-17 14:30:02.464631: Today's predicted so far 9.29kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 9.29kWh forecast extra.
2026-08-17 14:30:02.464658: Today's actual load so far 9.08kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 14:30:02.522709: Inverter 0: Type SK Sunsynk
2026-08-17 14:30:02.522791: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:30:02.522944: Reserve min: 7%, battery_min: 7%
2026-08-17 14:30:02.523011: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:30:02.523324: Inverter 0 SoC: 9.92kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 413W, current battery voltage 51.2V, grid power -55W, load power 476W, PV Power 0W
2026-08-17 14:30:02.523549: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:30:02.523669: Inverter 0 scheduled charge enable is False
2026-08-17 14:30:02.523719: Inverter 0 charge windows currently []
2026-08-17 14:30:02.523757: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:30:02.523945: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:30:02.523996: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:30:02.524059: Inverter 0 scheduled discharge enable is False
2026-08-17 14:30:02.524234: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:30:02.524283: Inverter 0 discharge windows currently []
2026-08-17 14:30:02.524313: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:30:02.524335: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:30:02.524373: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:30:02.630494: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:30:02.630825: Plan was last updated on 2026-08-17 14:20:00+01:00 and is now 10.0 minutes old
2026-08-17 14:30:02.631350: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:30:02.631571: Best export window [ ]
2026-08-17 14:30:02.633120: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:30:02.637528: Load divergence over 8.0 hours mean 461.14W, min 359.4W, max 794.4W, std dev 61.93W, divergence 6.71%
2026-08-17 14:30:02.662343: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:30:02.662510: LoadML is_calculating False
2026-08-17 14:30:02.662617: Creating pool of 12 processes to match your CPU count
2026-08-17 14:30:02.808465: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 602.8p, metric_keep 279.38kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.5kWh, PV 0.0kWh
2026-08-17 14:30:03.001713: Battery has 12.25 hours left - now at 9.92kWh
2026-08-17 14:30:03.064347: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.43p, metric_keep 280.94kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.53kWh, PV 0.0kWh
2026-08-17 14:30:03.161004: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 328.51p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.53kWh, PV 0.0kWh
2026-08-17 14:30:03.290197: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 326.03p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.5kWh, PV 0.0kWh
2026-08-17 14:30:03.290297: Saving plan best values to HA entities
2026-08-17 14:30:03.514558: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:30:03.521570: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:30:03.528931: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.56kWh, house 0.0kWh, export 0.0kWh, metric 326.03p, metric10 328.51p
2026-08-17 14:30:03.642232: Marginal costs baseline metric (no standing charge): 279.3953
2026-08-17 14:30:04.031534: Marginal energy costs matrix computed: min=8.0 max=27.64
2026-08-17 14:30:04.151486: Rate array import [{'start': 870, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 870, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:30:04.152362: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 14:30:04.152425: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:30:04.152449: - The battery is currently at 62% and is in eco mode for the next 9 hours.
2026-08-17 14:30:04.152468: - For the next 48 hours there will be no solar generation.
2026-08-17 14:30:04.152485: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:30:04.152507: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:30:04.152542:
2026-08-17 14:30:04.234760: Plan calculation took 1.60 seconds
2026-08-17 14:30:04.240445: No high rate period found
2026-08-17 14:30:04.316115: Import threshold used for optimisation was 8.0p
2026-08-17 14:30:04.390002: Low import rate windows [0: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 1: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 2: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 3: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 4: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 5: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 6: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 7: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 8: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 9: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 10: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 11: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 12: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 13: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 14: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 15: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 16: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 17: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 18: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 19: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 20: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 21: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 22: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 23: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 24: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 25: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 26: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 27: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 28: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 29: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 30: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 31: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 32: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 33: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 34: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 35: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 36: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 37: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 38: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 39: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 40: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 41: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 42: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 43: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 44: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 45: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 46: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 47: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 48: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 49: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 50: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 51: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 52: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 53: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 54: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 55: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 56: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 57: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 58: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 59: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 60: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 61: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 62: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 63: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 64: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 65: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 66: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 67: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 68: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 69: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 70: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 71: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 72: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 73: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 74: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 75: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 76: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 77: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 78: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 79: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 80: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 81: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 82: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 83: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 84: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 85: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 86: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 87: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 88: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 89: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 90: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 91: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 92: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 93: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75]
2026-08-17 14:30:04.397238: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:30:04.397380: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:30:04.397503: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:30:04.397816: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:30:04.397938: No export window planned
2026-08-17 14:30:04.398124: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:30:04.398167: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:30:04.398342: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:30:04.398600: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:30:04.398676: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:30:04.398788: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:30:04.398919: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.398985: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399106: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399156: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399254: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:04.399691: Inverter 0 count register writes 0
2026-08-17 14:30:04.421873: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 14:30:04.422074: Recompute is saving previous plan...
2026-08-17 14:30:04.425663: Best charge window [ 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0% ]
2026-08-17 14:30:04.425753: Best export window [ ]
2026-08-17 14:30:04.426609: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:30:04.431267: Load divergence over 8.0 hours mean 461.14W, min 359.4W, max 794.4W, std dev 61.93W, divergence 6.71%
2026-08-17 14:30:04.452001: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:30:04.452177: LoadML is_calculating False
2026-08-17 14:30:04.452274: Creating pool of 12 processes to match your CPU count
2026-08-17 14:30:04.560033: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 14:30:04.562289: Optimise levels pass started at 2026-08-17 14:30:04
2026-08-17 14:30:04.562363: Optimise all windows, total charge 94 export 1
2026-08-17 14:30:05.523528: >> Region optimisation pass width 960 gives best_metric 359.68p, best_cost 415.5p, best_cycle 47.05kWh, best_import 33.57kWh
2026-08-17 14:30:05.819312: >> Region optimisation pass width 480 gives best_metric 359.68p, best_cost 415.5p, best_cycle 47.05kWh, best_import 33.57kWh
2026-08-17 14:30:06.643551: >> Region optimisation pass width 240 gives best_metric 352.34p, best_cost 363.74p, best_cycle 46.49kWh, best_import 27.1kWh
2026-08-17 14:30:08.526066: >> Region optimisation pass width 120 gives best_metric 350.86p, best_cost 362.48p, best_cycle 44.28kWh, best_import 26.94kWh
2026-08-17 14:30:08.526433: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 64
2026-08-17 14:30:08.526549: Optimise levels pass ended at 2026-08-17 14:30:08, duration 4.0 seconds tried 293 combinations
2026-08-17 14:30:08.526650: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 350.86p, best_keep 0.03kWh, best_cycle 44.28kWh, best_carbon 0kg, best_import 26.94kWh
2026-08-17 14:30:08.554033: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 14:30:15.346024: Tweak plan optimisation started metric 259.91p, cost 272.66p
2026-08-17 14:30:15.853329: Tweak optimisation finished metric 259.91p, cost 272.66p, metric_keep 0kWh, cycle 30.07kWh, carbon 0kg, import 15.71kWh, changed 8 window(s)
2026-08-17 14:30:15.881658: Swap charge optimisation started metric 259.91p, cost 272.66p, min_improvement_swap 0.1p
2026-08-17 14:30:22.474735: Swap charge optimisation finished metric 259.91p, cost 272.66p
2026-08-17 14:30:22.607761: Raw charge windows [ 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:30:22.608504: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:30:22.608946: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:30:22.609374: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 14:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:30:22.655016: Previous plan best metric is 259.24 (cost 271.21) and new plan best metric is 259.91 (cost 272.66)
2026-08-17 14:30:22.655316: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 14:30:22.655493: Plan valid is now true after recompute was False
2026-08-17 14:30:22.698237: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.29p, metric_keep 278.79kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.31kWh, PV 0.0kWh
2026-08-17 14:30:22.902590: Battery has 12.25 hours left - now at 9.92kWh
2026-08-17 14:30:22.963493: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 623.84p, metric_keep 280.35kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.33kWh, PV 0.0kWh
2026-08-17 14:30:23.071771: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 321.36p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.33kWh, PV 0.0kWh
2026-08-17 14:30:23.180180: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 317.85p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.31kWh, PV 0.0kWh
2026-08-17 14:30:23.180268: Saving plan best values to HA entities
2026-08-17 14:30:23.407212: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:30:23.417832: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:30:23.426810: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.53kWh, house 0.0kWh, export 0.0kWh, metric 317.85p, metric10 321.36p
2026-08-17 14:30:23.550501: Marginal costs baseline metric (no standing charge): 271.2127
2026-08-17 14:30:23.897372: Marginal energy costs matrix computed: min=8.0 max=27.64
2026-08-17 14:30:24.041087: Rate array import [{'start': 870, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 870, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:30:24.041919: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 14:30:24.041972: - Import rates are very expensive (33.8p - 46.4p) for the next 9 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:30:24.042001: - The battery is currently at 62% and is in eco mode for the next 9 hours.
2026-08-17 14:30:24.042036: - For the next 48 hours there will be no solar generation.
2026-08-17 14:30:24.042062: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:30:24.042080: - Your next charge slot will be in 9 hours where import rates will be cheap (8.0p).
2026-08-17 14:30:24.042102:
2026-08-17 14:30:24.130763: Plan calculation took 19.71 seconds
2026-08-17 14:30:24.131074: Inverter 0: Type SK Sunsynk
2026-08-17 14:30:24.131128: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:30:24.131386: Reserve min: 7%, battery_min: 7%
2026-08-17 14:30:24.131501: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:30:24.131959: Inverter 0 SoC: 9.85kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 410W, current battery voltage 51.2V, grid power -55W, load power 473W, PV Power 0W
2026-08-17 14:30:24.132237: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:30:24.132329: Inverter 0 scheduled charge enable is False
2026-08-17 14:30:24.132371: Inverter 0 charge windows currently []
2026-08-17 14:30:24.132415: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:30:24.132565: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:30:24.132621: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:30:24.132682: Inverter 0 scheduled discharge enable is False
2026-08-17 14:30:24.132855: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:30:24.132905: Inverter 0 discharge windows currently []
2026-08-17 14:30:24.132942: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:30:24.133005: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:30:24.133033: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:30:24.214564: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:30:24.214759: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:30:24.214846: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:30:24.215047: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:30:24.215137: No export window planned
2026-08-17 14:30:24.215261: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:30:24.215305: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:30:24.215428: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:30:24.215576: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:30:24.215624: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:30:24.215688: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:30:24.215799: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.215850: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.215896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.215978: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216013: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216052: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216087: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216361: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:30:24.216474: Inverter 0 count register writes 0
2026-08-17 14:30:24.248238: Total inverter register writes now 861
2026-08-17 14:30:24.307693: Info: Completed run status Demand
2026-08-17 14:30:24.316842: Info: record_status Demand
2026-08-17 14:30:24.327044: Saved current settings to /config/predbat_config.json
2026-08-17 14:30:24.327371: Compare, best tariff: current metric 104.68p
2026-08-17 14:31:04.491251: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:31:04.491523: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:31:04.491592: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:31:04.491734: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:31:04.491773: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:31:04.491794: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:31:04.491813: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:33:18.757958: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:33:18.758180: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:33:18.758221: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:33:18.758380: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:33:18.758433: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:33:18.758466: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:33:18.758496: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:35:00.958143: --------------- PredBat - update at 2026-08-17 14:35:00+01:00 with clock skew 0 minutes, minutes now 875
2026-08-17 14:35:00.958924: Saved current settings to /config/predbat_config.json
2026-08-17 14:35:00.959064: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 14:35:00.959185: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:35:00.959281: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:35:00.977936: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:35:00.978076: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:35:00.978294: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:35:00.978844: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:35:00.979002: Predbat mode is set to Control charge & discharge
2026-08-17 14:35:01.172513: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:35:01.172664: Using load_power data to fill gaps in load_today data
2026-08-17 14:35:02.033187: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:35:02.033389: Zero load period starting at 2026-08-17T10:54:00+0100 (221 minutes) for 189 minutes with base value 214.7
2026-08-17 14:35:02.033946: Processing 721 30-minute periods for power integration
2026-08-17 14:35:02.213841: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:35:02.213952: Car charging hold False, threshold 6.0kWh
2026-08-17 14:35:02.213997: Current data so far today: load 7.9kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:35:02.227940: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:35:02.228030: Cars: SoC: [56.256]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:35:02.228706: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:35:02.228779: Standing charge is set to 46.63p
2026-08-17 14:35:02.311071: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.311344: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.311556: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.311786: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.311998: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.312171: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.312348: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.312509: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.312691: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.312852: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.313007: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.313166: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.313320: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.313499: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.313675: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.313835: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.313991: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.314586: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.314761: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:35:02.314821: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:35:02.314910: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:35:02.321306: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:35:02.321796: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:35:02.368757: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:35:02.369329: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:35:02.370616: High export rate found rates in range 99p to -99p
2026-08-17 14:35:02.473898: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:35:02.474067: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:35:02.485814: Battery level now 9.92kWh, -1hr ago 10.4kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -3.9p, rate_forward 6.87p
2026-08-17 14:35:02.486190: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:35:02.544011: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:35:02.544145: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:35:02.633165: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:35:02.660441: Today's load divergence 98.52%, in-day adjustment 86.74%, damping 0.95x, yesterday 68.37% today 98.59% blend 39.24%
2026-08-17 14:35:02.660548: Today's predicted so far 9.38kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.38kWh forecast extra.
2026-08-17 14:35:02.660600: Today's actual load so far 9.15kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 14:35:02.694154: Inverter 0: Type SK Sunsynk
2026-08-17 14:35:02.694234: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:35:02.694430: Reserve min: 7%, battery_min: 7%
2026-08-17 14:35:02.694506: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:35:02.694772: Inverter 0 SoC: 9.85kW 62%, current charge rate 5000W, current discharge rate 5250W, current battery power 402W, current battery voltage 51.2V, grid power -54W, load power 466W, PV Power 0W
2026-08-17 14:35:02.694951: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:35:02.695064: Inverter 0 scheduled charge enable is False
2026-08-17 14:35:02.695110: Inverter 0 charge windows currently []
2026-08-17 14:35:02.695138: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:35:02.695252: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:35:02.695287: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:35:02.695323: Inverter 0 scheduled discharge enable is False
2026-08-17 14:35:02.695505: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:35:02.695556: Inverter 0 discharge windows currently []
2026-08-17 14:35:02.695603: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:35:02.695624: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:35:02.695642: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:35:02.763588: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:35:02.763710: Plan was last updated on 2026-08-17 14:30:00+01:00 and is now 5.0 minutes old
2026-08-17 14:35:02.764047: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:35:02.764104: Best export window [ ]
2026-08-17 14:35:02.765580: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:35:02.769709: Load divergence over 8.0 hours mean 459.82W, min 334.8W, max 886.8W, std dev 77.24W, divergence 8.4%
2026-08-17 14:35:02.789654: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:35:02.789784: LoadML is_calculating False
2026-08-17 14:35:02.789843: Creating pool of 12 processes to match your CPU count
2026-08-17 14:35:02.911690: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 602.23p, metric_keep 279.23kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.42kWh, PV 0.0kWh
2026-08-17 14:35:03.039780: Battery has 12.08 hours left - now at 9.85kWh
2026-08-17 14:35:03.088336: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 624.78p, metric_keep 280.76kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.45kWh, PV 0.0kWh
2026-08-17 14:35:03.160698: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 325.28p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.45kWh, PV 0.0kWh
2026-08-17 14:35:03.238881: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 322.29p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.42kWh, PV 0.0kWh
2026-08-17 14:35:03.240689: Saving plan best values to HA entities
2026-08-17 14:35:03.435883: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:35:03.441061: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:35:03.446119: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.09kWh, house 0.0kWh, export 0.0kWh, metric 322.29p, metric10 325.28p
2026-08-17 14:35:03.521974: Marginal costs baseline metric (no standing charge): 275.6545
2026-08-17 14:35:03.800192: Marginal energy costs matrix computed: min=7.95 max=27.17
2026-08-17 14:35:03.874052: Rate array import [{'start': 875, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 875, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:35:03.874864: - Your estimated bill for today is £1.70 and tomorrow is £1.72
2026-08-17 14:35:03.874921: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:35:03.874963: - The battery is currently at 62% and is in eco mode for the next 8 hours.
2026-08-17 14:35:03.875000: - For the next 48 hours there will be no solar generation.
2026-08-17 14:35:03.875042: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:35:03.875068: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 14:35:03.875092:
2026-08-17 14:35:03.929342: Plan calculation took 1.17 seconds
2026-08-17 14:35:03.934059: No high rate period found
2026-08-17 14:35:03.994927: Import threshold used for optimisation was 8.0p
2026-08-17 14:35:04.070005: Low import rate windows [0: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 1: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 2: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 3: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 4: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 5: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 6: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 7: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 8: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 9: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 10: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 11: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 12: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 13: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 14: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 15: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 16: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 17: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 18: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 19: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 20: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 21: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 22: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 23: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 24: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 25: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 26: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 27: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 28: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 29: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 30: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 31: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 32: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 33: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 34: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 35: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 36: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 37: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 38: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 39: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 40: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 41: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 42: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 43: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 44: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 45: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 46: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 47: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 48: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 49: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 50: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 51: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 52: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 53: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 54: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 55: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 56: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 57: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 58: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 59: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 60: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 61: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 62: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 63: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 64: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 65: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 66: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 67: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 68: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 69: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 70: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 71: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 72: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 73: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 74: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 75: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 76: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 77: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 78: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 79: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 80: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 81: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 82: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 83: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 84: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 85: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 86: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 87: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 88: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 89: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 90: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 91: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 92: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 93: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 94: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75]
2026-08-17 14:35:04.076358: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 62%, target 100%
2026-08-17 14:35:04.076532: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:35:04.076686: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:35:04.076997: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:35:04.077120: No export window planned
2026-08-17 14:35:04.077306: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:35:04.077357: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:35:04.077577: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:35:04.077812: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:35:04.077916: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:35:04.078013: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:35:04.078149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078207: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078261: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078295: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078350: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078440: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:35:04.078898: Inverter 0 count register writes 0
2026-08-17 14:35:04.096023: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 14:35:04.101679: Total inverter register writes now 861
2026-08-17 14:35:04.134340: Info: Completed run status Demand
2026-08-17 14:35:04.140119: Info: record_status Demand
2026-08-17 14:35:04.146757: Saved current settings to /config/predbat_config.json
2026-08-17 14:35:04.147101: Compare, best tariff: current metric 104.68p
2026-08-17 14:35:34.248914: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:35:34.249134: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:35:34.249182: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:35:34.249336: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:35:34.249388: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:35:34.249421: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:35:34.250267: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:37:34.486049: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:37:34.486276: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:37:34.486318: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:37:34.486450: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:37:34.486488: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:37:34.486546: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:37:34.486593: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:39:31.656896: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 14:39:32.609515: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:39:32.609687: Zero load period starting at 2026-08-17T10:54:00+0100 (221 minutes) for 189 minutes with base value 411.6
2026-08-17 14:39:32.610123: Processing 1345 30-minute periods for power integration
2026-08-17 14:39:32.696258: ML Component: Car charging hold False, car energy reported load False
2026-08-17 14:39:32.780099: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:39:32.865042: ML Temperature data points: 49526
2026-08-17 14:39:33.093233: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 14:39:33.128630: ML Component: Data fetch completed, load data age 59.0 days, 16999 data points
2026-08-17 14:39:33.128744: ML Component: No training needed, model age is 0.33 hours
2026-08-17 14:39:33.128800: ML Component: Generating predictions load data age 59.0 days, 16999 data points
2026-08-17 14:39:33.241869: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0507 max_dow {0: 0.08182500006258488, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 14:39:33.796097: ML Component: Generated 576 predictions (total 25.98 kWh over 48h)
2026-08-17 14:39:33.821763: ML Component: Prediction cycle completed
2026-08-17 14:39:33.899803: ML Component: Saved 16999 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 14:39:49.263553: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:39:49.263938: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:39:49.263989: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:39:49.264135: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:39:49.264173: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:39:49.264194: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:39:49.264212: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:40:00.354881: --------------- PredBat - update at 2026-08-17 14:40:00+01:00 with clock skew 0 minutes, minutes now 880
2026-08-17 14:40:00.355586: Saved current settings to /config/predbat_config.json
2026-08-17 14:40:00.355709: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 14:40:00.355780: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:40:00.355884: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:40:00.375619: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:40:00.375768: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:40:00.376030: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:40:00.376546: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:40:00.376688: Predbat mode is set to Control charge & discharge
2026-08-17 14:40:00.569221: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:40:00.569357: Using load_power data to fill gaps in load_today data
2026-08-17 14:40:01.432795: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:40:01.433313: Zero load period starting at 2026-08-17T10:54:00+0100 (226 minutes) for 189 minutes with base value 214.65
2026-08-17 14:40:01.433848: Processing 721 30-minute periods for power integration
2026-08-17 14:40:01.638596: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:40:01.640679: Car charging hold False, threshold 6.0kWh
2026-08-17 14:40:01.640759: Current data so far today: load 7.95kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:40:01.658064: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:40:01.658189: Cars: SoC: [55.67]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:40:01.659017: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:40:01.659107: Standing charge is set to 46.63p
2026-08-17 14:40:01.757017: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.757507: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.757891: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.758133: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.759259: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.759481: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.760998: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.761250: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.761434: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.761666: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.761976: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.762151: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.762325: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.763159: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.764644: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.764870: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.766169: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.766384: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.766729: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:40:01.766827: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:40:01.766972: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:40:01.772792: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:40:01.773993: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:40:01.824366: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:40:01.824522: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:40:01.825833: High export rate found rates in range 99p to -99p
2026-08-17 14:40:01.933796: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:40:01.933972: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:40:01.949872: Battery level now 9.85kWh, -1hr ago 10.25kWh, at midnight 10.49kWh, battery value change in the last hour -2.75p, change today -4.4p, rate_forward 6.87p
2026-08-17 14:40:01.950243: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.16p, import 0.16p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:40:02.001269: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:40:02.001411: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:40:02.091140: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:40:02.119775: Today's load divergence 98.65%, in-day adjustment 86.91%, damping 0.95x, yesterday 68.37% today 98.71% blend 38.89%
2026-08-17 14:40:02.119869: Today's predicted so far 9.39kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 9.39kWh forecast extra.
2026-08-17 14:40:02.119942: Today's actual load so far 9.18kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 14:40:02.151739: Inverter 0: Type SK Sunsynk
2026-08-17 14:40:02.151825: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:40:02.152083: Reserve min: 7%, battery_min: 7%
2026-08-17 14:40:02.152177: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:40:02.152439: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 415W, current battery voltage 51.2V, grid power -53W, load power 477W, PV Power 0W
2026-08-17 14:40:02.152612: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:40:02.152701: Inverter 0 scheduled charge enable is False
2026-08-17 14:40:02.152759: Inverter 0 charge windows currently []
2026-08-17 14:40:02.152810: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:40:02.152949: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:40:02.152990: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:40:02.153040: Inverter 0 scheduled discharge enable is False
2026-08-17 14:40:02.153198: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:40:02.153238: Inverter 0 discharge windows currently []
2026-08-17 14:40:02.153308: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:40:02.153344: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:40:02.153391: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:40:02.210708: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:40:02.210807: Plan was last updated on 2026-08-17 14:30:00+01:00 and is now 10.0 minutes old
2026-08-17 14:40:02.211019: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:40:02.211060: Best export window [ ]
2026-08-17 14:40:02.211869: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:40:02.215066: Load divergence over 8.0 hours mean 458.04W, min 336.6W, max 898.2W, std dev 79.49W, divergence 8.68%
2026-08-17 14:40:02.234011: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:40:02.234127: LoadML is_calculating False
2026-08-17 14:40:02.234191: Creating pool of 12 processes to match your CPU count
2026-08-17 14:40:02.349638: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 603.38p, metric_keep 279.73kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.54kWh, PV 0.0kWh
2026-08-17 14:40:02.465536: Battery has 12.0 hours left - now at 9.76kWh
2026-08-17 14:40:02.512075: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.97p, metric_keep 281.25kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.56kWh, PV 0.0kWh
2026-08-17 14:40:02.597104: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 329.27p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.56kWh, PV 0.0kWh
2026-08-17 14:40:02.665102: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 326.75p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.54kWh, PV 0.0kWh
2026-08-17 14:40:02.665186: Saving plan best values to HA entities
2026-08-17 14:40:04.178773: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:40:04.199098: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:40:04.204517: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.65kWh, house 0.0kWh, export 0.0kWh, metric 326.75p, metric10 329.27p
2026-08-17 14:40:04.299777: Marginal costs baseline metric (no standing charge): 280.1136
2026-08-17 14:40:04.524893: Marginal energy costs matrix computed: min=8.0 max=26.82
2026-08-17 14:40:04.590848: Rate array import [{'start': 880, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 880, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:40:04.591417: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:40:04.591458: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:40:04.591476: - The battery is currently at 61% and is in eco mode for the next 8 hours.
2026-08-17 14:40:04.591491: - For the next 48 hours there will be no solar generation.
2026-08-17 14:40:04.591505: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:40:04.591519: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 14:40:04.591537:
2026-08-17 14:40:04.638792: Plan calculation took 2.43 seconds
2026-08-17 14:40:04.643109: No high rate period found
2026-08-17 14:40:04.687065: Import threshold used for optimisation was 8.0p
2026-08-17 14:40:04.739015: Low import rate windows [0: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 1: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 2: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 3: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 4: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 5: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 6: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 7: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 8: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 9: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 10: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 11: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 12: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 13: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 14: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 15: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 16: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 17: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 18: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 19: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 20: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 21: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 22: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 23: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 24: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 25: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 26: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 27: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 28: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 29: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 30: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 31: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 32: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 33: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 34: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 35: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 36: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 37: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 38: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 39: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 40: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 41: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 42: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 43: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 44: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 45: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 46: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 47: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 48: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 49: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 50: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 51: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 52: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 53: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 54: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 55: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 56: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 57: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 58: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 59: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 60: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 61: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 62: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 63: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 64: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 65: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 66: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 67: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 68: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 69: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 70: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 71: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 72: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 73: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 74: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 75: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 76: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 77: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 78: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 79: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 80: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 81: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 82: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 83: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 84: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 85: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 86: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 87: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 88: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 89: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 90: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 91: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 92: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 93: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 94: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75]
2026-08-17 14:40:04.747744: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-17 14:40:04.747892: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:40:04.748061: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:40:04.748402: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:40:04.748506: No export window planned
2026-08-17 14:40:04.748726: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:40:04.748785: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:40:04.748989: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:40:04.749220: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:40:04.749292: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:40:04.749396: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:40:04.749536: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.749603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.749660: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.749725: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.749782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.749834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.749877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.749996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.750053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.750108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.750160: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.750225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.750293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.750348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:04.750374: Inverter 0 count register writes 0
2026-08-17 14:40:04.770662: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 14:40:04.770868: Recompute is saving previous plan...
2026-08-17 14:40:04.775350: Best charge window [ 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0% ]
2026-08-17 14:40:04.775480: Best export window [ ]
2026-08-17 14:40:04.776638: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:40:04.780917: Load divergence over 8.0 hours mean 458.04W, min 336.6W, max 898.2W, std dev 79.49W, divergence 8.68%
2026-08-17 14:40:04.800097: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:40:04.800210: LoadML is_calculating False
2026-08-17 14:40:04.800272: Creating pool of 12 processes to match your CPU count
2026-08-17 14:40:04.890165: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 14:40:04.892026: Optimise levels pass started at 2026-08-17 14:40:04
2026-08-17 14:40:04.892092: Optimise all windows, total charge 94 export 1
2026-08-17 14:40:05.286727: >> Region optimisation pass width 960 gives best_metric 361.17p, best_cost 416.11p, best_cycle 47.15kWh, best_import 33.65kWh
2026-08-17 14:40:05.475557: >> Region optimisation pass width 480 gives best_metric 361.17p, best_cost 416.11p, best_cycle 47.15kWh, best_import 33.65kWh
2026-08-17 14:40:05.791753: >> Region optimisation pass width 240 gives best_metric 361.17p, best_cost 416.11p, best_cycle 47.15kWh, best_import 33.65kWh
2026-08-17 14:40:06.727784: >> Region optimisation pass width 120 gives best_metric 357.24p, best_cost 386.68p, best_cycle 48.98kWh, best_import 29.97kWh
2026-08-17 14:40:06.728142: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 64
2026-08-17 14:40:06.728495: Optimise levels pass ended at 2026-08-17 14:40:06, duration 1.8 seconds tried 216 combinations
2026-08-17 14:40:06.728609: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 357.24p, best_keep 0.1kWh, best_cycle 48.98kWh, best_carbon 0kg, best_import 29.97kWh
2026-08-17 14:40:06.746864: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 14:40:11.304373: Tweak plan optimisation started metric 259.47p, cost 271.4p
2026-08-17 14:40:11.609107: Tweak optimisation finished metric 259.47p, cost 271.4p, metric_keep 0.1kWh, cycle 28.17kWh, carbon 0kg, import 15.56kWh, changed 8 window(s)
2026-08-17 14:40:11.625942: Swap charge optimisation started metric 259.47p, cost 271.4p, min_improvement_swap 0.1p
2026-08-17 14:40:17.094776: Swap charge optimisation finished metric 259.47p, cost 271.4p
2026-08-17 14:40:17.237357: Raw charge windows [ 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:40:17.237938: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:40:17.238160: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:40:17.238304: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:40:17.269644: Previous plan best metric is 259.83 (cost 271.83) and new plan best metric is 259.47 (cost 271.4)
2026-08-17 14:40:17.269863: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 14:40:17.269983: Plan valid is now true after recompute was False
2026-08-17 14:40:17.293121: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.76p, metric_keep 279.14kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.33kWh, PV 0.0kWh
2026-08-17 14:40:17.421788: Battery has 12.0 hours left - now at 9.76kWh
2026-08-17 14:40:17.460731: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 624.27p, metric_keep 280.66kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.35kWh, PV 0.0kWh
2026-08-17 14:40:17.530895: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 322.02p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 14:40:17.598130: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 318.46p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.33kWh, PV 0.0kWh
2026-08-17 14:40:17.598202: Saving plan best values to HA entities
2026-08-17 14:40:17.734983: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:40:17.740234: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:40:17.745243: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.61kWh, house 0.0kWh, export 0.0kWh, metric 318.46p, metric10 322.02p
2026-08-17 14:40:17.813622: Marginal costs baseline metric (no standing charge): 271.8293
2026-08-17 14:40:18.031210: Marginal energy costs matrix computed: min=8.0 max=26.82
2026-08-17 14:40:18.092427: Rate array import [{'start': 880, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 880, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:40:18.093124: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:40:18.093167: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:40:18.093190: - The battery is currently at 61% and is in eco mode for the next 8 hours.
2026-08-17 14:40:18.093208: - For the next 48 hours there will be no solar generation.
2026-08-17 14:40:18.093225: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:40:18.093246: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 14:40:18.093267:
2026-08-17 14:40:18.145464: Plan calculation took 13.37 seconds
2026-08-17 14:40:18.145818: Inverter 0: Type SK Sunsynk
2026-08-17 14:40:18.145864: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:40:18.146060: Reserve min: 7%, battery_min: 7%
2026-08-17 14:40:18.146144: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:40:18.146510: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 415W, current battery voltage 51.2V, grid power -53W, load power 477W, PV Power 0W
2026-08-17 14:40:18.146771: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:40:18.146902: Inverter 0 scheduled charge enable is False
2026-08-17 14:40:18.146953: Inverter 0 charge windows currently []
2026-08-17 14:40:18.146985: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:40:18.147105: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:40:18.147144: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:40:18.147184: Inverter 0 scheduled discharge enable is False
2026-08-17 14:40:18.147316: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:40:18.147352: Inverter 0 discharge windows currently []
2026-08-17 14:40:18.147374: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:40:18.147393: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:40:18.147410: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:40:18.209601: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-17 14:40:18.209750: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:40:18.209827: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:40:18.210001: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:40:18.210081: No export window planned
2026-08-17 14:40:18.210188: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:40:18.210277: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:40:18.210473: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:40:18.210682: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:40:18.210734: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:40:18.210784: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:40:18.210857: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.210891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.210915: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.210952: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.210993: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211238: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:40:18.211470: Inverter 0 count register writes 0
2026-08-17 14:40:18.236848: Total inverter register writes now 861
2026-08-17 14:40:18.274316: Info: Completed run status Demand
2026-08-17 14:40:18.280090: Info: record_status Demand
2026-08-17 14:40:18.286707: Saved current settings to /config/predbat_config.json
2026-08-17 14:40:18.287014: Compare, best tariff: current metric 104.68p
2026-08-17 14:40:49.385646: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:40:49.385878: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:40:49.385920: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:40:49.386063: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:40:49.386123: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:40:49.386143: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:40:49.386162: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:42:49.596119: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:42:49.596311: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:42:49.596339: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:42:49.596454: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:42:49.596526: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:42:49.596544: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:42:49.596573: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:45:00.822530: --------------- PredBat - update at 2026-08-17 14:45:00+01:00 with clock skew 0 minutes, minutes now 885
2026-08-17 14:45:00.823145: Saved current settings to /config/predbat_config.json
2026-08-17 14:45:00.823242: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 14:45:00.823305: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:45:00.823376: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:45:00.838534: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:45:00.838655: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:45:00.838840: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:45:00.839280: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:45:00.839411: Predbat mode is set to Control charge & discharge
2026-08-17 14:45:00.998104: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:45:00.998238: Using load_power data to fill gaps in load_today data
2026-08-17 14:45:01.705825: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:45:01.706007: Zero load period starting at 2026-08-17T10:54:00+0100 (231 minutes) for 189 minutes with base value 214.6
2026-08-17 14:45:01.706371: Processing 721 30-minute periods for power integration
2026-08-17 14:45:01.862929: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:45:01.863046: Car charging hold False, threshold 6.0kWh
2026-08-17 14:45:01.863102: Current data so far today: load 8.0kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:45:01.877279: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:45:01.877368: Cars: SoC: [55.084]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:45:01.877982: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:45:01.878043: Standing charge is set to 46.63p
2026-08-17 14:45:01.949560: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.949778: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.949921: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.950068: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.950212: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.950353: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.950496: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.950650: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.950786: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.950917: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.951045: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.951180: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.951313: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.951444: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.951590: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.951725: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.951854: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.952036: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.952171: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:45:01.952220: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:45:01.952295: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:45:01.956770: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:45:01.957170: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:45:01.993905: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:45:01.994008: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:45:01.995097: High export rate found rates in range 99p to -99p
2026-08-17 14:45:02.080565: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:45:02.081455: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:45:02.102388: Battery level now 9.76kWh, -1hr ago 10.24kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -5.0p, rate_forward 6.87p
2026-08-17 14:45:02.102724: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:45:02.174047: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:45:02.174204: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:45:02.250382: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:45:02.275511: Today's load divergence 98.86%, in-day adjustment 87.14%, damping 0.95x, yesterday 68.37% today 98.91% blend 38.54%
2026-08-17 14:45:02.275894: Today's predicted so far 9.4kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 9.4kWh forecast extra.
2026-08-17 14:45:02.275959: Today's actual load so far 9.22kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 14:45:02.313997: Inverter 0: Type SK Sunsynk
2026-08-17 14:45:02.314077: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:45:02.314330: Reserve min: 7%, battery_min: 7%
2026-08-17 14:45:02.314470: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:45:02.314769: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 410W, current battery voltage 51.2V, grid power -53W, load power 472W, PV Power 0W
2026-08-17 14:45:02.314924: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:45:02.315011: Inverter 0 scheduled charge enable is False
2026-08-17 14:45:02.315045: Inverter 0 charge windows currently []
2026-08-17 14:45:02.315071: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:45:02.315183: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:45:02.315218: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:45:02.315254: Inverter 0 scheduled discharge enable is False
2026-08-17 14:45:02.315372: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:45:02.315409: Inverter 0 discharge windows currently []
2026-08-17 14:45:02.315431: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:45:02.315449: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:45:02.315467: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:45:02.375506: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:45:02.375625: Plan was last updated on 2026-08-17 14:40:00+01:00 and is now 5.0 minutes old
2026-08-17 14:45:02.375824: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:45:02.375865: Best export window [ ]
2026-08-17 14:45:02.376742: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:45:02.379815: Load divergence over 8.0 hours mean 456.35W, min 331.2W, max 912.0W, std dev 81.57W, divergence 8.94%
2026-08-17 14:45:02.396154: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:45:02.396258: LoadML is_calculating False
2026-08-17 14:45:02.396327: Creating pool of 12 processes to match your CPU count
2026-08-17 14:45:02.507941: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 602.73p, metric_keep 279.26kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.46kWh, PV 0.0kWh
2026-08-17 14:45:02.607637: Battery has 11.92 hours left - now at 9.76kWh
2026-08-17 14:45:02.643823: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 625.24p, metric_keep 280.8kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.48kWh, PV 0.0kWh
2026-08-17 14:45:02.714542: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 325.27p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.48kWh, PV 0.0kWh
2026-08-17 14:45:02.790284: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 322.23p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.46kWh, PV 0.0kWh
2026-08-17 14:45:02.790373: Saving plan best values to HA entities
2026-08-17 14:45:02.937897: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:45:02.943738: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:45:02.949921: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.08kWh, house 0.0kWh, export 0.0kWh, metric 322.23p, metric10 325.27p
2026-08-17 14:45:03.029764: Marginal costs baseline metric (no standing charge): 275.5991
2026-08-17 14:45:03.255362: Marginal energy costs matrix computed: min=8.0 max=26.23
2026-08-17 14:45:03.318635: Rate array import [{'start': 885, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 885, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:45:03.319308: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:45:03.319353: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:45:03.319378: - The battery is currently at 61% and is in eco mode for the next 8 hours.
2026-08-17 14:45:03.319410: - For the next 48 hours there will be no solar generation.
2026-08-17 14:45:03.319432: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:45:03.319451: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 14:45:03.319470:
2026-08-17 14:45:03.368003: Plan calculation took 0.99 seconds
2026-08-17 14:45:03.371440: No high rate period found
2026-08-17 14:45:03.415181: Import threshold used for optimisation was 8.0p
2026-08-17 14:45:03.462066: Low import rate windows [0: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 1: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 2: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 3: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 4: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 5: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 6: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 7: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 8: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 9: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 10: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 11: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 12: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 13: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 14: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 15: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 16: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 17: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 18: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 19: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 20: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 21: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 22: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 23: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 24: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 25: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 26: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 27: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 28: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 29: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 30: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 31: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 32: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 33: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 34: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 35: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 36: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 37: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 38: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 39: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 40: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 41: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 42: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 43: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 44: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 45: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 46: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 47: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 48: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 49: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 50: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 51: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 52: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 53: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 54: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 55: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 56: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 57: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 58: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 59: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 60: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 61: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 62: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 63: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 64: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 65: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 66: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 67: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 68: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 69: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 70: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 71: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 72: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 73: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 74: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 75: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 76: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 77: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 78: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 79: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 80: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 81: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 82: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 83: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 84: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 85: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 86: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 87: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 88: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 89: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 90: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 91: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 92: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 93: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 94: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75]
2026-08-17 14:45:03.467752: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-17 14:45:03.467878: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:45:03.468051: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:45:03.468337: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:45:03.468431: No export window planned
2026-08-17 14:45:03.468568: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:45:03.468606: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:45:03.468737: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:45:03.468907: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:45:03.468967: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:45:03.469025: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:45:03.469113: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469235: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469283: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469380: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469405: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:45:03.469523: Inverter 0 count register writes 0
2026-08-17 14:45:03.486110: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 14:45:03.491434: Total inverter register writes now 861
2026-08-17 14:45:03.524836: Info: Completed run status Demand
2026-08-17 14:45:03.531447: Info: record_status Demand
2026-08-17 14:45:03.538864: Saved current settings to /config/predbat_config.json
2026-08-17 14:45:03.539214: Compare, best tariff: current metric 104.68p
2026-08-17 14:45:34.637858: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:45:34.638236: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:45:34.638313: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:45:34.638582: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:45:34.638643: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:45:34.638669: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:45:34.638713: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:47:48.927221: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:47:48.927587: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:47:48.927649: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:47:48.927880: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:47:48.928018: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:47:48.928049: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:47:48.928103: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:49:49.173267: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:49:49.173485: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:49:49.173519: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:49:49.173686: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:49:49.173725: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:49:49.173747: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:49:49.173765: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:50:00.276505: --------------- PredBat - update at 2026-08-17 14:50:00+01:00 with clock skew 0 minutes, minutes now 890
2026-08-17 14:50:00.277575: Saved current settings to /config/predbat_config.json
2026-08-17 14:50:00.277742: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 14:50:00.277838: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:50:00.277925: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:50:00.300939: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:50:00.301063: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:50:00.301227: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:50:00.301732: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:50:00.301851: Predbat mode is set to Control charge & discharge
2026-08-17 14:50:00.481422: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:50:00.481571: Using load_power data to fill gaps in load_today data
2026-08-17 14:50:01.177433: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:50:01.177628: Zero load period starting at 2026-08-17T10:54:00+0100 (236 minutes) for 189 minutes with base value 214.575
2026-08-17 14:50:01.178058: Processing 721 30-minute periods for power integration
2026-08-17 14:50:01.327985: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:50:01.328100: Car charging hold False, threshold 6.0kWh
2026-08-17 14:50:01.328160: Current data so far today: load 7.9kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:50:01.341462: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:50:01.341548: Cars: SoC: [55.084]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:50:01.342131: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:50:01.342187: Standing charge is set to 46.63p
2026-08-17 14:50:01.440195: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.440446: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.440709: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.440973: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.441298: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.441615: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.441926: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.442231: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.442544: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.442852: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.443147: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.443382: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.443641: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.443975: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.444221: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.444458: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.444709: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.444980: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.445207: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:50:01.445331: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:50:01.445533: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:50:01.452277: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:50:01.452802: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:50:01.503668: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:50:01.503786: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:50:01.505141: High export rate found rates in range 99p to -99p
2026-08-17 14:50:01.599826: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:50:01.599961: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:50:01.610761: Battery level now 9.76kWh, -1hr ago 10.24kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -5.0p, rate_forward 6.87p
2026-08-17 14:50:01.611125: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:50:01.664917: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:50:01.665058: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:50:01.737022: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:50:01.759385: Today's load divergence 98.18%, in-day adjustment 86.85%, damping 0.95x, yesterday 68.37% today 98.27% blend 38.19%
2026-08-17 14:50:01.759475: Today's predicted so far 9.41kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.41kWh forecast extra.
2026-08-17 14:50:01.759531: Today's actual load so far 9.13kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 14:50:01.789341: Inverter 0: Type SK Sunsynk
2026-08-17 14:50:01.789415: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:50:01.789576: Reserve min: 7%, battery_min: 7%
2026-08-17 14:50:01.789640: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:50:01.789858: Inverter 0 SoC: 9.76kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 410W, current battery voltage 51.2V, grid power -54W, load power 475W, PV Power 0W
2026-08-17 14:50:01.789980: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:50:01.790050: Inverter 0 scheduled charge enable is False
2026-08-17 14:50:01.790078: Inverter 0 charge windows currently []
2026-08-17 14:50:01.790100: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:50:01.790181: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:50:01.790210: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:50:01.790239: Inverter 0 scheduled discharge enable is False
2026-08-17 14:50:01.790333: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:50:01.790363: Inverter 0 discharge windows currently []
2026-08-17 14:50:01.790381: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:50:01.790396: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:50:01.790409: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:50:01.842354: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:50:01.842453: Plan was last updated on 2026-08-17 14:40:00+01:00 and is now 10.0 minutes old
2026-08-17 14:50:01.842706: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:50:01.842843: Best export window [ ]
2026-08-17 14:50:01.844022: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:50:01.847274: Load divergence over 8.0 hours mean 458.98W, min 361.2W, max 909.0W, std dev 72.9W, divergence 7.94%
2026-08-17 14:50:01.866304: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:50:01.866407: LoadML is_calculating False
2026-08-17 14:50:01.866465: Creating pool of 12 processes to match your CPU count
2026-08-17 14:50:01.987098: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 602.75p, metric_keep 279.29kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.39kWh, PV 0.0kWh
2026-08-17 14:50:02.108243: Battery has 12.0 hours left - now at 9.76kWh
2026-08-17 14:50:02.149453: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.31p, metric_keep 280.84kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.41kWh, PV 0.0kWh
2026-08-17 14:50:02.226876: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 328.34p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.41kWh, PV 0.0kWh
2026-08-17 14:50:02.301776: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 325.92p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.39kWh, PV 0.0kWh
2026-08-17 14:50:02.301852: Saving plan best values to HA entities
2026-08-17 14:50:02.453781: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:50:02.460021: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:50:02.466213: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.54kWh, house 0.0kWh, export 0.0kWh, metric 325.92p, metric10 328.34p
2026-08-17 14:50:02.562184: Marginal costs baseline metric (no standing charge): 279.2813
2026-08-17 14:50:02.874082: Marginal energy costs matrix computed: min=8.0 max=25.55
2026-08-17 14:50:02.949551: Rate array import [{'start': 890, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 890, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:50:02.950337: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 14:50:02.950447: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:50:02.950486: - The battery is currently at 61% and is in eco mode for the next 8 hours.
2026-08-17 14:50:02.950508: - For the next 48 hours there will be no solar generation.
2026-08-17 14:50:02.950553: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:50:02.950574: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 14:50:02.950592:
2026-08-17 14:50:03.021193: Plan calculation took 1.18 seconds
2026-08-17 14:50:03.024950: No high rate period found
2026-08-17 14:50:03.101617: Import threshold used for optimisation was 8.0p
2026-08-17 14:50:03.151256: Low import rate windows [0: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 1: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 2: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 3: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 4: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 5: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 6: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 7: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 8: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 9: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 10: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 11: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 12: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 13: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 14: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 15: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 16: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 17: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 18: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 19: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 20: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 21: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 22: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 23: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 24: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 25: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 26: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 27: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 28: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 29: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 30: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 31: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 32: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 33: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 34: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 35: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 36: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 37: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 38: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 39: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 40: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 41: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 42: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 43: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 44: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 45: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 46: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 47: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 48: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 49: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 50: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 51: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 52: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 53: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 54: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 55: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 56: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 57: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 58: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 59: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 60: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 61: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 62: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 63: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 64: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 65: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 66: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 67: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 68: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 69: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 70: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 71: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 72: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 73: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 74: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 75: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 76: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 77: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 78: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 79: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 80: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 81: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 82: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 83: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 84: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 85: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 86: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 87: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 88: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 89: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 90: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 91: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 92: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 93: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 94: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75]
2026-08-17 14:50:03.156639: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-17 14:50:03.156741: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:50:03.156817: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:50:03.157035: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:50:03.157114: No export window planned
2026-08-17 14:50:03.157209: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:50:03.157238: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:50:03.157345: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:50:03.157488: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:50:03.157550: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:50:03.157600: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:50:03.157673: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157700: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157747: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157787: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.157997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.158041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.158090: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.158129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.158166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:03.158204: Inverter 0 count register writes 0
2026-08-17 14:50:03.172190: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 14:50:03.172376: Recompute is saving previous plan...
2026-08-17 14:50:03.175635: Best charge window [ 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0% ]
2026-08-17 14:50:03.175713: Best export window [ ]
2026-08-17 14:50:03.176680: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:50:03.180045: Load divergence over 8.0 hours mean 458.98W, min 361.2W, max 909.0W, std dev 72.9W, divergence 7.94%
2026-08-17 14:50:03.194859: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:50:03.194938: LoadML is_calculating False
2026-08-17 14:50:03.195023: Creating pool of 12 processes to match your CPU count
2026-08-17 14:50:03.267799: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 14:50:03.269569: Optimise levels pass started at 2026-08-17 14:50:03
2026-08-17 14:50:03.269636: Optimise all windows, total charge 94 export 1
2026-08-17 14:50:03.658949: >> Region optimisation pass width 960 gives best_metric 360.98p, best_cost 415.27p, best_cycle 47.07kWh, best_import 33.54kWh
2026-08-17 14:50:03.861539: >> Region optimisation pass width 480 gives best_metric 360.98p, best_cost 415.27p, best_cycle 47.07kWh, best_import 33.54kWh
2026-08-17 14:50:04.194763: >> Region optimisation pass width 240 gives best_metric 360.98p, best_cost 415.27p, best_cycle 47.07kWh, best_import 33.54kWh
2026-08-17 14:50:05.122255: >> Region optimisation pass width 120 gives best_metric 357.05p, best_cost 385.83p, best_cycle 48.89kWh, best_import 29.86kWh
2026-08-17 14:50:05.122613: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 64
2026-08-17 14:50:05.122709: Optimise levels pass ended at 2026-08-17 14:50:05, duration 1.9 seconds tried 216 combinations
2026-08-17 14:50:05.122806: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 357.05p, best_keep 0.11kWh, best_cycle 48.89kWh, best_carbon 0kg, best_import 29.86kWh
2026-08-17 14:50:05.140382: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 14:50:09.665641: Tweak plan optimisation started metric 258.6p, cost 270.5p
2026-08-17 14:50:09.940909: Tweak optimisation finished metric 258.6p, cost 270.5p, metric_keep 0.11kWh, cycle 27.99kWh, carbon 0kg, import 15.44kWh, changed 8 window(s)
2026-08-17 14:50:09.963816: Swap charge optimisation started metric 258.6p, cost 270.5p, min_improvement_swap 0.1p
2026-08-17 14:50:15.696897: Swap charge optimisation finished metric 258.6p, cost 270.5p
2026-08-17 14:50:15.825665: Raw charge windows [ 17-08 14:30:00 - 17-08 15:00:00 @ 33.75p 0%, 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:50:15.826189: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:50:15.826401: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:50:15.826611: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 14:50:15.864511: Previous plan best metric is 259.02 (cost 270.99) and new plan best metric is 258.6 (cost 270.5)
2026-08-17 14:50:15.864767: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 14:50:15.864941: Plan valid is now true after recompute was False
2026-08-17 14:50:15.893855: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.12p, metric_keep 278.7kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.19kWh, PV 0.0kWh
2026-08-17 14:50:16.015256: Battery has 12.0 hours left - now at 9.76kWh
2026-08-17 14:50:16.063447: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 623.6p, metric_keep 280.26kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.2kWh, PV 0.0kWh
2026-08-17 14:50:16.126354: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 321.08p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.2kWh, PV 0.0kWh
2026-08-17 14:50:16.190246: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 317.62p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.19kWh, PV 0.0kWh
2026-08-17 14:50:16.190339: Saving plan best values to HA entities
2026-08-17 14:50:16.312855: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:50:16.317166: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 14:50:16.321939: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0.0kWh, export 0.0kWh, metric 317.62p, metric10 321.08p
2026-08-17 14:50:16.381690: Marginal costs baseline metric (no standing charge): 270.989
2026-08-17 14:50:16.599785: Marginal energy costs matrix computed: min=8.0 max=25.55
2026-08-17 14:50:16.658261: Rate array import [{'start': 890, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 890, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:50:16.658830: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 14:50:16.658870: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:50:16.658889: - The battery is currently at 61% and is in eco mode for the next 8 hours.
2026-08-17 14:50:16.658904: - For the next 48 hours there will be no solar generation.
2026-08-17 14:50:16.658918: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:50:16.658933: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 14:50:16.658951:
2026-08-17 14:50:16.707022: Plan calculation took 13.53 seconds
2026-08-17 14:50:16.707351: Inverter 0: Type SK Sunsynk
2026-08-17 14:50:16.707400: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:50:16.707625: Reserve min: 7%, battery_min: 7%
2026-08-17 14:50:16.707712: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:50:16.708062: Inverter 0 SoC: 9.75kW 61%, current charge rate 5000W, current discharge rate 5250W, current battery power 414W, current battery voltage 51.2V, grid power -54W, load power 479W, PV Power 0W
2026-08-17 14:50:16.708306: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:50:16.708421: Inverter 0 scheduled charge enable is False
2026-08-17 14:50:16.708460: Inverter 0 charge windows currently []
2026-08-17 14:50:16.708509: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:50:16.708665: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:50:16.708717: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:50:16.708795: Inverter 0 scheduled discharge enable is False
2026-08-17 14:50:16.708966: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:50:16.709003: Inverter 0 discharge windows currently []
2026-08-17 14:50:16.709030: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:50:16.709064: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:50:16.709083: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:50:16.755816: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 61%, target 100%
2026-08-17 14:50:16.755996: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:50:16.756073: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:50:16.756227: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:50:16.756296: No export window planned
2026-08-17 14:50:16.756416: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:50:16.756444: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:50:16.756572: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:50:16.756704: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:50:16.756746: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:50:16.756791: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:50:16.756865: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.756896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.756918: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.756942: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.756963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.756982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757006: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757124: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:50:16.757207: Inverter 0 count register writes 0
2026-08-17 14:50:16.774656: Total inverter register writes now 861
2026-08-17 14:50:16.801824: Info: Completed run status Demand
2026-08-17 14:50:16.806792: Info: record_status Demand
2026-08-17 14:50:16.812503: Saved current settings to /config/predbat_config.json
2026-08-17 14:50:16.812749: Compare, best tariff: current metric 104.68p
2026-08-17 14:50:48.908434: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:50:48.908686: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:50:48.908880: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:50:48.908997: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:50:48.909052: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:50:48.909120: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:50:48.909151: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:52:49.112345: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:52:49.112709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:52:49.112767: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:52:49.112966: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:52:49.113017: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:52:49.113059: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:52:49.113095: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:54:48.090499: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 14:54:48.250382: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 14:54:49.324143: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:54:49.324369: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:54:49.324411: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:54:49.324567: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:54:49.324608: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:54:49.324629: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:54:49.324648: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:55:00.413081: --------------- PredBat - update at 2026-08-17 14:55:00+01:00 with clock skew 0 minutes, minutes now 895
2026-08-17 14:55:00.413758: Saved current settings to /config/predbat_config.json
2026-08-17 14:55:00.413850: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 14:55:00.413934: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.5, latest beta is v8.48.5
2026-08-17 14:55:00.413999: Autoupdate: There is an update pending v8.48.5 Fix Solis crash that prevented any plan being produced - auto update is off
2026-08-17 14:55:00.430021: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 14:55:00.430142: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 14:55:00.430329: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 14:55:00.430815: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 14:55:00.430914: Predbat mode is set to Control charge & discharge
2026-08-17 14:55:00.590664: Found 21602 load_today datapoints going back 28 days
2026-08-17 14:55:00.590798: Using load_power data to fill gaps in load_today data
2026-08-17 14:55:01.381246: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 14:55:01.381470: Zero load period starting at 2026-08-17T10:54:00+0100 (241 minutes) for 189 minutes with base value 214.55
2026-08-17 14:55:01.381921: Processing 721 30-minute periods for power integration
2026-08-17 14:55:01.572298: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 14:55:01.572432: Car charging hold False, threshold 6.0kWh
2026-08-17 14:55:01.572495: Current data so far today: load 7.9kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 14:55:01.589441: Car 0 using Octopus Intelligent is unplugged
2026-08-17 14:55:01.589561: Cars: SoC: [54.498000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 14:55:01.590391: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 14:55:01.590506: Standing charge is set to 46.63p
2026-08-17 14:55:01.670028: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.670272: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.670479: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.670660: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.670830: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.671012: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.671181: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.671342: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.671518: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.671678: Octopus: Intelligent slot at 08-17 02:30:00-08-17 03:00:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.671833: Octopus: Intelligent slot at 08-17 03:00:00-08-17 03:30:00, assumed price 8.0, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.672093: Octopus: Intelligent slot at 08-17 03:30:00-08-17 04:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.672266: Octopus: Intelligent slot at 08-17 04:00:00-08-17 04:30:00, assumed price 33.75, amount 3.26, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.672421: Octopus: Intelligent slot at 08-17 04:30:00-08-17 05:00:00, assumed price 33.75, amount 3.48, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.672603: Octopus: Intelligent slot at 08-17 07:30:00-08-17 08:00:00, assumed price 33.75, amount 1.61, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.672763: Octopus: Intelligent slot at 08-17 08:00:00-08-17 08:30:00, assumed price 33.75, amount 0.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.672946: Octopus: Intelligent slot at 08-17 08:30:00-08-17 09:00:00, assumed price 33.75, amount 0.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.673105: Octopus: Intelligent slot at 08-17 09:00:00-08-17 09:30:00, assumed price 33.75, amount 0.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.673300: Octopus: Intelligent slot at 08-17 09:30:00-08-17 10:00:00, assumed price 33.75, amount 0.2, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 14:55:01.673373: Octopus: Intelligent slots for day -1: 12 of 12 max
2026-08-17 14:55:01.673485: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 14:55:01.678923: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 14:55:01.679255: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 14:55:01.730516: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 14:55:01.730889: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 14:55:01.732404: High export rate found rates in range 99p to -99p
2026-08-17 14:55:01.842303: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 14:55:01.842428: Car 0 on Octopus Intelligent, no active plan
2026-08-17 14:55:01.860678: Battery level now 9.76kWh, -1hr ago 10.14kWh, at midnight 10.49kWh, battery value change in the last hour -2.58p, change today -5.0p, rate_forward 6.87p
2026-08-17 14:55:01.861791: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 14:55:01.944201: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 14:55:01.944360: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 14:55:02.027554: Using weighted-bucket historical load forecast over 14 days
2026-08-17 14:55:02.049875: Today's load divergence 98.14%, in-day adjustment 86.93%, damping 0.95x, yesterday 68.37% today 98.23% blend 37.85%
2026-08-17 14:55:02.049942: Today's predicted so far 9.42kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 9.42kWh forecast extra.
2026-08-17 14:55:02.049967: Today's actual load so far 9.14kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 14:55:02.082660: Inverter 0: Type SK Sunsynk
2026-08-17 14:55:02.082732: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 14:55:02.082874: Reserve min: 7%, battery_min: 7%
2026-08-17 14:55:02.082930: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 14:55:02.083141: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 402W, current battery voltage 51.2V, grid power -54W, load power 467W, PV Power 0W
2026-08-17 14:55:02.083264: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:55:02.083336: Inverter 0 scheduled charge enable is False
2026-08-17 14:55:02.083360: Inverter 0 charge windows currently []
2026-08-17 14:55:02.083381: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 14:55:02.083486: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:55:02.083518: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:55:02.083547: Inverter 0 scheduled discharge enable is False
2026-08-17 14:55:02.083651: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:55:02.083681: Inverter 0 discharge windows currently []
2026-08-17 14:55:02.083699: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:55:02.083730: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:55:02.083744: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:55:02.133547: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 14:55:02.133628: Plan was last updated on 2026-08-17 14:50:00+01:00 and is now 5.0 minutes old
2026-08-17 14:55:02.133795: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 14:55:02.133857: Best export window [ ]
2026-08-17 14:55:02.134539: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 14:55:02.137043: Load divergence over 8.0 hours mean 461.79W, min 344.4W, max 905.4W, std dev 77.89W, divergence 8.43%
2026-08-17 14:55:02.152388: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 14:55:02.152500: LoadML is_calculating False
2026-08-17 14:55:02.152551: Creating pool of 12 processes to match your CPU count
2026-08-17 14:55:02.248279: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 603.12p, metric_keep 279.54kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 29.27kWh, PV 0.0kWh
2026-08-17 14:55:02.354133: Battery has 11.67 hours left - now at 9.6kWh
2026-08-17 14:55:02.391113: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 625.67p, metric_keep 281.05kWh, min_soc 1.12kWh @ 08-18 02:10:00, load 30.29kWh, PV 0.0kWh
2026-08-17 14:55:02.455107: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 325.82p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.29kWh, PV 0.0kWh
2026-08-17 14:55:02.522174: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 322.76p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.27kWh, PV 0.0kWh
2026-08-17 14:55:02.522254: Saving plan best values to HA entities
2026-08-17 14:55:02.660807: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 14:55:02.665880: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 14:55:02.670537: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.15kWh, house 0kWh, export 0.0kWh, metric 322.76p, metric10 325.82p
2026-08-17 14:55:02.739753: Marginal costs baseline metric (no standing charge): 276.1214
2026-08-17 14:55:02.963575: Marginal energy costs matrix computed: min=8.0 max=25.47
2026-08-17 14:55:03.041854: Rate array import [{'start': 895, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 895, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 14:55:03.042912: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 14:55:03.042970: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 14:55:03.042996: - The battery is currently at 60% and is in eco mode for the next 8 hours.
2026-08-17 14:55:03.043015: - For the next 48 hours there will be no solar generation.
2026-08-17 14:55:03.043032: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 14:55:03.043051: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 14:55:03.043072:
2026-08-17 14:55:03.105855: Plan calculation took 0.97 seconds
2026-08-17 14:55:03.111056: No high rate period found
2026-08-17 14:55:03.157331: Import threshold used for optimisation was 8.0p
2026-08-17 14:55:03.204316: Low import rate windows [0: 08-17 14:30:00 - 08-17 15:00:00 @ 33.75, 1: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 2: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 3: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 4: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 5: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 6: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 7: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 8: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 9: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 10: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 11: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 12: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 13: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 14: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 15: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 16: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 17: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 18: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 19: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 20: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 21: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 22: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 23: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 24: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 25: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 26: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 27: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 28: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 29: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 30: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 31: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 32: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 33: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 34: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 35: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 36: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 37: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 38: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 39: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 40: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 41: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 42: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 43: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 44: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 45: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 46: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 47: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 48: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 49: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 50: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 51: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 52: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 53: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 54: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 55: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 56: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 57: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 58: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 59: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 60: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 61: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 62: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 63: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 64: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 65: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 66: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 67: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 68: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 69: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 70: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 71: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 72: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 73: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 74: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 75: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 76: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 77: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 78: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 79: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 80: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 81: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 82: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 83: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 84: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 85: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 86: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 87: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 88: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 89: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 90: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 91: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 92: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 93: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 94: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75]
2026-08-17 14:55:03.209829: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-17 14:55:03.209955: Inverter 0 disabled charge window while waiting for schedule (now 08-17 14:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 14:55:03.210056: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:55:03.210298: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:55:03.210392: No export window planned
2026-08-17 14:55:03.210538: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 14:55:03.210576: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 14:55:03.210711: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 14:55:03.210886: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 14:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 14:55:03.210947: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 14:55:03.211011: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 14:55:03.211102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211141: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211170: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211201: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211227: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211257: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211287: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211483: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 14:55:03.211556: Inverter 0 count register writes 0
2026-08-17 14:55:03.225976: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 14:55:03.230616: Total inverter register writes now 861
2026-08-17 14:55:03.339808: Info: Completed run status Demand
2026-08-17 14:55:03.346149: Info: record_status Demand
2026-08-17 14:55:03.352576: Saved current settings to /config/predbat_config.json
2026-08-17 14:55:03.352941: Compare, best tariff: current metric 104.68p
2026-08-17 14:55:15.919141: Info: HAHistory: Pruning history data started.
2026-08-17 14:55:15.926881: Info: HAHistory: Pruning history data completed.
2026-08-17 14:55:34.453573: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:55:34.453807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:55:34.453868: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:55:34.454024: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:55:34.454065: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:55:34.454088: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:55:34.454106: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:57:48.677903: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:57:48.678127: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:57:48.678164: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:57:48.678301: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:57:48.678337: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:57:48.678355: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:57:48.678385: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 14:59:48.912707: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 14:59:48.912929: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 14:59:48.912975: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 14:59:48.913149: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 14:59:48.913195: Note: Inverter does not support discharge freeze - disabled
2026-08-17 14:59:48.913217: Note: Inverter does not support charge freeze - disabled
2026-08-17 14:59:48.913235: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:00:00.993120: --------------- PredBat - update at 2026-08-17 15:00:00+01:00 with clock skew 0 minutes, minutes now 900
2026-08-17 15:00:00.994183: Saved current settings to /config/predbat_config.json
2026-08-17 15:00:01.109740: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:00:01.137571: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:00:01.137703: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:00:01.137862: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:00:01.138339: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:00:01.138473: Predbat mode is set to Control charge & discharge
2026-08-17 15:00:01.364215: Found 21602 load_today datapoints going back 27 days
2026-08-17 15:00:01.364357: Using load_power data to fill gaps in load_today data
2026-08-17 15:00:02.266819: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:00:02.267048: Zero load period starting at 2026-08-17T10:54:00+0100 (246 minutes) for 189 minutes with base value 214.525
2026-08-17 15:00:02.267603: Processing 721 30-minute periods for power integration
2026-08-17 15:00:02.463403: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:00:02.463528: Car charging hold False, threshold 6.0kWh
2026-08-17 15:00:02.463593: Current data so far today: load 8.03kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:00:02.480776: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:00:02.480902: Cars: SoC: [54.498000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:00:02.481767: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:00:02.481862: Standing charge is set to 46.63p
2026-08-17 15:00:02.569752: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.570006: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.570227: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.570450: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.570651: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.570856: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.571058: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.571284: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.571496: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:00:02.572502: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:00:02.572645: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:00:02.577213: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:00:02.577611: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:00:02.616322: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:00:02.616435: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:00:02.617504: High export rate found rates in range 99p to -99p
2026-08-17 15:00:02.706223: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:00:02.706722: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:00:02.716846: Battery level now 9.6kWh, -1hr ago 10.08kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -6.1p, rate_forward 6.87p
2026-08-17 15:00:02.717180: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:00:02.776408: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:00:02.776532: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:00:02.864059: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:00:02.896656: Today's load divergence 98.21%, in-day adjustment 87.08%, damping 0.95x, yesterday 68.37% today 98.3% blend 37.5%
2026-08-17 15:00:02.896801: Today's predicted so far 9.55kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 9.55kWh forecast extra.
2026-08-17 15:00:02.896838: Today's actual load so far 9.27kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 15:00:02.936673: Octopus slots changed from [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.61, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T08:00:00+01:00', 'end': '2026-08-17T08:30:00+01:00', 'charge_in_kwh': -0.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T08:30:00+01:00', 'end': '2026-08-17T09:00:00+01:00', 'charge_in_kwh': -0.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T09:00:00+01:00', 'end': '2026-08-17T09:30:00+01:00', 'charge_in_kwh': -0.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T09:30:00+01:00', 'end': '2026-08-17T10:00:00+01:00', 'charge_in_kwh': -0.2, 'source': 'unknown', 'location': 'AT_HOME'}]] to [[{'start': '2026-08-16T12:30:00+01:00', 'end': '2026-08-16T13:00:00+01:00', 'charge_in_kwh': -2.73, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T14:00:00+01:00', 'end': '2026-08-16T14:30:00+01:00', 'charge_in_kwh': -3.4, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:00:00+01:00', 'end': '2026-08-16T15:30:00+01:00', 'charge_in_kwh': -3.3, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T15:30:00+01:00', 'end': '2026-08-16T16:00:00+01:00', 'charge_in_kwh': -3.49, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T16:30:00+01:00', 'end': '2026-08-16T17:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-16T17:30:00+01:00', 'end': '2026-08-16T18:00:00+01:00', 'charge_in_kwh': -0.0, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T00:30:00+01:00', 'end': '2026-08-17T01:00:00+01:00', 'charge_in_kwh': -3.38, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T01:30:00+01:00', 'end': '2026-08-17T02:00:00+01:00', 'charge_in_kwh': -3.37, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:00:00+01:00', 'end': '2026-08-17T02:30:00+01:00', 'charge_in_kwh': -3.5, 'source': 'unknown', 'location': 'AT_HOME'}, {'start': '2026-08-17T02:30:00+01:00', 'end': '2026-08-17T03:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T03:00:00+01:00', 'end': '2026-08-17T03:30:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T03:30:00+01:00', 'end': '2026-08-17T04:00:00+01:00', 'charge_in_kwh': -3.41, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T04:00:00+01:00', 'end': '2026-08-17T04:30:00+01:00', 'charge_in_kwh': -3.26, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T04:30:00+01:00', 'end': '2026-08-17T05:00:00+01:00', 'charge_in_kwh': -3.48, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T07:30:00+01:00', 'end': '2026-08-17T08:00:00+01:00', 'charge_in_kwh': -1.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T08:00:00+01:00', 'end': '2026-08-17T08:30:00+01:00', 'charge_in_kwh': -0.37, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T08:30:00+01:00', 'end': '2026-08-17T09:00:00+01:00', 'charge_in_kwh': -0.41, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T09:00:00+01:00', 'end': '2026-08-17T09:30:00+01:00', 'charge_in_kwh': -0.5, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T09:30:00+01:00', 'end': '2026-08-17T10:00:00+01:00', 'charge_in_kwh': -0.54, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T10:00:00+01:00', 'end': '2026-08-17T10:30:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T10:30:00+01:00', 'end': '2026-08-17T11:00:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T11:00:00+01:00', 'end': '2026-08-17T11:30:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T11:30:00+01:00', 'end': '2026-08-17T12:00:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T12:00:00+01:00', 'end': '2026-08-17T12:30:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T12:30:00+01:00', 'end': '2026-08-17T13:00:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T13:00:00+01:00', 'end': '2026-08-17T13:30:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T13:30:00+01:00', 'end': '2026-08-17T14:00:00+01:00', 'charge_in_kwh': -0.6, 'source': 'unknown', 'location': 'AWAY'}, {'start': '2026-08-17T14:00:00+01:00', 'end': '2026-08-17T14:30:00+01:00', 'charge_in_kwh': -0.3, 'source': 'unknown', 'location': 'AWAY'}]]
2026-08-17 15:00:02.937178: Sensor changes require a replan, will recompute the plan
2026-08-17 15:00:02.937334: Inverter 0: Type SK Sunsynk
2026-08-17 15:00:02.937388: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:00:02.937562: Reserve min: 7%, battery_min: 7%
2026-08-17 15:00:02.937631: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:00:02.937923: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 406W, current battery voltage 51.2V, grid power -58W, load power 472W, PV Power 0W
2026-08-17 15:00:02.938098: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:00:02.938185: Inverter 0 scheduled charge enable is False
2026-08-17 15:00:02.938225: Inverter 0 charge windows currently []
2026-08-17 15:00:02.938254: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:00:02.938408: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:00:02.938444: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:00:02.938495: Inverter 0 scheduled discharge enable is False
2026-08-17 15:00:02.938668: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:00:02.938705: Inverter 0 discharge windows currently []
2026-08-17 15:00:02.938729: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:00:02.938758: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:00:02.938788: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:00:02.991345: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:00:02.991427: Will recompute the plan as it is invalid
2026-08-17 15:00:02.991507: Recompute is saving previous plan...
2026-08-17 15:00:02.994163: Best charge window [ 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0% ]
2026-08-17 15:00:02.994234: Best export window [ ]
2026-08-17 15:00:02.994946: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:00:02.997695: Load divergence over 8.0 hours mean 463.02W, min 353.4W, max 842.4W, std dev 79.95W, divergence 8.63%
2026-08-17 15:00:03.012517: Calculating data from yesterday for savings calculation
2026-08-17 15:00:03.023275: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 15:00:03.062494: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 15:00:03.075385: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 15:00:03.094075: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 15:00:03.127032: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 15:00:03.198570: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 15:00:03.198680: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 15:00:03.208117: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:00:03.208217: LoadML is_calculating False
2026-08-17 15:00:03.208270: Creating pool of 12 processes to match your CPU count
2026-08-17 15:00:03.281734: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 15:00:03.283546: Optimise levels pass started at 2026-08-17 15:00:03
2026-08-17 15:00:03.283612: Optimise all windows, total charge 94 export 1
2026-08-17 15:00:03.963271: >> Region optimisation pass width 960 gives best_metric 362.45p, best_cost 416.2p, best_cycle 47.19kWh, best_import 33.66kWh
2026-08-17 15:00:04.224382: >> Region optimisation pass width 480 gives best_metric 362.45p, best_cost 416.2p, best_cycle 47.19kWh, best_import 33.66kWh
2026-08-17 15:00:04.882054: >> Region optimisation pass width 240 gives best_metric 357.58p, best_cost 368.0p, best_cycle 47.33kWh, best_import 27.63kWh
2026-08-17 15:00:06.357251: >> Region optimisation pass width 120 gives best_metric 353.83p, best_cost 366.12p, best_cycle 44.04kWh, best_import 27.4kWh
2026-08-17 15:00:06.357775: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 63
2026-08-17 15:00:06.357865: Optimise levels pass ended at 2026-08-17 15:00:06, duration 3.1 seconds tried 294 combinations
2026-08-17 15:00:06.357939: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 353.83p, best_keep 0kWh, best_cycle 44.04kWh, best_carbon 0kg, best_import 27.4kWh
2026-08-17 15:00:06.379847: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 15:00:11.409567: Tweak plan optimisation started metric 260.61p, cost 273.37p
2026-08-17 15:00:11.712950: Tweak optimisation finished metric 260.61p, cost 273.37p, metric_keep 0kWh, cycle 29.92kWh, carbon 0kg, import 15.8kWh, changed 8 window(s)
2026-08-17 15:00:11.740106: Swap charge optimisation started metric 260.61p, cost 273.37p, min_improvement_swap 0.1p
2026-08-17 15:00:16.774783: Swap charge optimisation finished metric 260.61p, cost 273.37p
2026-08-17 15:00:16.882963: Raw charge windows [ 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:00:16.883614: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:00:16.883935: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:00:16.884170: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:00:16.920850: Previous plan best metric is 259.88 (cost 271.85) and new plan best metric is 260.61 (cost 273.37)
2026-08-17 15:00:16.921075: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 15:00:16.921239: Plan valid is now true after recompute was False
2026-08-17 15:00:16.951378: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.9p, metric_keep 279.13kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.26kWh, PV 0.0kWh
2026-08-17 15:00:17.070253: Battery has 11.67 hours left - now at 9.6kWh
2026-08-17 15:00:17.107165: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 624.37p, metric_keep 280.63kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.28kWh, PV 0.0kWh
2026-08-17 15:00:17.195266: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 321.98p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.28kWh, PV 0.0kWh
2026-08-17 15:00:17.292284: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 318.48p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.26kWh, PV 0.0kWh
2026-08-17 15:00:17.293177: Saving plan best values to HA entities
2026-08-17 15:00:17.450526: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:00:17.455503: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:00:17.460469: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.61kWh, house 0.0kWh, export 0.0kWh, metric 318.48p, metric10 321.98p
2026-08-17 15:00:17.538295: Marginal costs baseline metric (no standing charge): 271.8487
2026-08-17 15:00:17.816016: Marginal energy costs matrix computed: min=8.0 max=24.85
2026-08-17 15:00:17.889025: Rate array import [{'start': 900, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 900, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:00:17.889692: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 15:00:17.889739: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:00:17.889773: - The battery is currently at 60% and is in eco mode for the next 8 hours.
2026-08-17 15:00:17.889802: - For the next 48 hours there will be no solar generation.
2026-08-17 15:00:17.889839: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:00:17.889927: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:00:17.889972:
2026-08-17 15:00:17.951014: Plan calculation took 14.96 seconds
2026-08-17 15:00:17.956357: Saved plan to storage
2026-08-17 15:00:17.960202: No high rate period found
2026-08-17 15:00:18.012536: Import threshold used for optimisation was 8.0p
2026-08-17 15:00:18.062255: Low import rate windows [0: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 1: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 2: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 3: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 4: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 5: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 6: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 7: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 8: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 9: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 10: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 11: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 12: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 13: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 14: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 15: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 16: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 17: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 18: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 19: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 20: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 21: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 22: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 23: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 24: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 25: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 26: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 27: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 28: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 29: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 30: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 31: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 32: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 33: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 34: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 35: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 36: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 37: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 38: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 39: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 40: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 41: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 42: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 43: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 44: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 45: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 46: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 47: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 48: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 49: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 50: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 51: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 52: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 53: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 54: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 55: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 56: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 57: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 58: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 59: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 60: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 61: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 62: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 63: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 64: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 65: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 66: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 67: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 68: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 69: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 70: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 71: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 72: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 73: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 74: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 75: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 76: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 77: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 78: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 79: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 80: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 81: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 82: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 83: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 84: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 85: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 86: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 87: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 88: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 89: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 90: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 91: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 92: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 93: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75]
2026-08-17 15:00:18.069129: Inverter 0: Type SK Sunsynk
2026-08-17 15:00:18.069208: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:00:18.069415: Reserve min: 7%, battery_min: 7%
2026-08-17 15:00:18.069494: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:00:18.069863: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 406W, current battery voltage 51.2V, grid power -58W, load power 472W, PV Power 0W
2026-08-17 15:00:18.070086: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:00:18.070180: Inverter 0 scheduled charge enable is False
2026-08-17 15:00:18.070216: Inverter 0 charge windows currently []
2026-08-17 15:00:18.070248: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:00:18.070356: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:00:18.070419: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:00:18.070460: Inverter 0 scheduled discharge enable is False
2026-08-17 15:00:18.070589: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:00:18.070627: Inverter 0 discharge windows currently []
2026-08-17 15:00:18.070649: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:00:18.070672: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:00:18.070690: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:00:18.125436: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-17 15:00:18.125582: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:00:18.125674: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:00:18.125910: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:00:18.126007: No export window planned
2026-08-17 15:00:18.126170: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:00:18.126212: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:00:18.126399: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:00:18.126595: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:00:18.126655: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:00:18.126761: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:00:18.126888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.126938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.126980: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127035: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127089: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127134: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:00:18.127645: Inverter 0 count register writes 0
2026-08-17 15:00:18.151514: Total inverter register writes now 861
2026-08-17 15:00:18.182903: Info: Completed run status Demand
2026-08-17 15:00:18.189071: Info: record_status Demand
2026-08-17 15:00:18.200252: Saved current settings to /config/predbat_config.json
2026-08-17 15:00:18.200554: Compare, best tariff: current metric 104.68p
2026-08-17 15:00:49.309860: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:00:49.310092: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:00:49.310153: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:00:49.310293: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:00:49.310332: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:00:49.310382: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:00:49.310408: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:02:49.530770: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:02:49.530997: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:02:49.531039: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:02:49.531171: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:02:49.531212: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:02:49.531235: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:02:49.531253: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:05:00.756831: --------------- PredBat - update at 2026-08-17 15:05:00+01:00 with clock skew 0 minutes, minutes now 905
2026-08-17 15:05:00.757795: Saved current settings to /config/predbat_config.json
2026-08-17 15:05:00.757951: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 15:05:00.758003: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:05:00.773953: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:05:00.774118: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:05:00.774426: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:05:00.775082: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:05:00.775208: Predbat mode is set to Control charge & discharge
2026-08-17 15:05:00.963054: Found 21602 load_today datapoints going back 27 days
2026-08-17 15:05:00.963190: Using load_power data to fill gaps in load_today data
2026-08-17 15:05:01.697915: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:05:01.698091: Zero load period starting at 2026-08-17T10:54:00+0100 (251 minutes) for 189 minutes with base value 214.5
2026-08-17 15:05:01.698526: Processing 721 30-minute periods for power integration
2026-08-17 15:05:01.881544: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:05:01.881689: Car charging hold False, threshold 6.0kWh
2026-08-17 15:05:01.881746: Current data so far today: load 8.05kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:05:01.908826: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:05:01.909005: Cars: SoC: [53.912]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:05:01.910052: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:05:01.910136: Standing charge is set to 46.63p
2026-08-17 15:05:02.002969: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.003214: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.003416: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.003628: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.003800: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.004031: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.004216: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.004401: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.004563: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:05:02.005603: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:05:02.005703: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:05:02.011291: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:05:02.011664: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:05:02.055009: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:05:02.055129: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:05:02.056465: High export rate found rates in range 99p to -99p
2026-08-17 15:05:02.156274: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:05:02.156431: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:05:02.167600: Battery level now 9.6kWh, -1hr ago 10.08kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -6.1p, rate_forward 6.87p
2026-08-17 15:05:02.168124: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:05:02.221000: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:05:02.221153: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:05:02.310538: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:05:02.337448: Today's load divergence 97.86%, in-day adjustment 86.97%, damping 0.95x, yesterday 68.37% today 97.97% blend 37.15%
2026-08-17 15:05:02.337538: Today's predicted so far 9.65kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.65kWh forecast extra.
2026-08-17 15:05:02.337570: Today's actual load so far 9.32kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 15:05:02.369424: Inverter 0: Type SK Sunsynk
2026-08-17 15:05:02.369504: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:05:02.369670: Reserve min: 7%, battery_min: 7%
2026-08-17 15:05:02.369739: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:05:02.369984: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 407W, current battery voltage 51.2V, grid power -54W, load power 471W, PV Power 0W
2026-08-17 15:05:02.370131: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:05:02.370216: Inverter 0 scheduled charge enable is False
2026-08-17 15:05:02.370270: Inverter 0 charge windows currently []
2026-08-17 15:05:02.370313: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:05:02.370431: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:05:02.370467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:05:02.370502: Inverter 0 scheduled discharge enable is False
2026-08-17 15:05:02.370620: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:05:02.370658: Inverter 0 discharge windows currently []
2026-08-17 15:05:02.370681: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:05:02.370700: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:05:02.370717: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:05:02.429952: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:05:02.430061: Plan was last updated on 2026-08-17 15:00:00+01:00 and is now 5.0 minutes old
2026-08-17 15:05:02.430323: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:05:02.430371: Best export window [ ]
2026-08-17 15:05:02.431245: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:05:02.434715: Load divergence over 8.0 hours mean 462.61W, min 334.8W, max 987.6W, std dev 100.69W, divergence 10.88%
2026-08-17 15:05:02.453985: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:05:02.454088: LoadML is_calculating False
2026-08-17 15:05:02.454146: Creating pool of 12 processes to match your CPU count
2026-08-17 15:05:02.573559: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 602.23p, metric_keep 279.23kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.34kWh, PV 0.0kWh
2026-08-17 15:05:02.702837: Battery has 11.67 hours left - now at 9.6kWh
2026-08-17 15:05:02.746014: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 624.69p, metric_keep 280.72kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.36kWh, PV 0.0kWh
2026-08-17 15:05:02.811832: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 325.16p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.36kWh, PV 0.0kWh
2026-08-17 15:05:02.890517: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 322.28p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.34kWh, PV 0.0kWh
2026-08-17 15:05:02.890602: Saving plan best values to HA entities
2026-08-17 15:05:03.071800: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:05:03.077316: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:05:03.082676: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.09kWh, house 0.0kWh, export 0.0kWh, metric 322.28p, metric10 325.16p
2026-08-17 15:05:03.158256: Marginal costs baseline metric (no standing charge): 275.6439
2026-08-17 15:05:03.428115: Marginal energy costs matrix computed: min=8.0 max=25.17
2026-08-17 15:05:03.500888: Rate array import [{'start': 905, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 905, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:05:03.501617: - Your estimated bill for today is £1.70 and tomorrow is £1.72
2026-08-17 15:05:03.501667: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:05:03.501707: - The battery is currently at 60% and is in eco mode for the next 8 hours.
2026-08-17 15:05:03.501729: - For the next 48 hours there will be no solar generation.
2026-08-17 15:05:03.501746: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:05:03.501768: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:05:03.501785:
2026-08-17 15:05:03.559017: Plan calculation took 1.13 seconds
2026-08-17 15:05:03.562717: No high rate period found
2026-08-17 15:05:03.615278: Import threshold used for optimisation was 8.0p
2026-08-17 15:05:03.670581: Low import rate windows [0: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 1: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 2: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 3: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 4: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 5: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 6: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 7: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 8: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 9: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 10: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 11: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 12: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 13: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 14: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 15: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 16: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 17: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 18: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 19: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 20: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 21: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 22: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 23: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 24: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 25: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 26: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 27: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 28: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 29: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 30: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 31: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 32: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 33: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 34: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 35: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 36: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 37: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 38: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 39: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 40: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 41: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 42: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 43: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 44: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 45: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 46: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 47: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 48: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 49: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 50: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 51: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 52: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 53: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 54: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 55: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 56: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 57: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 58: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 59: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 60: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 61: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 62: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 63: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 64: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 65: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 66: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 67: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 68: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 69: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 70: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 71: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 72: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 73: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 74: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 75: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 76: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 77: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 78: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 79: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 80: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 81: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 82: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 83: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 84: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 85: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 86: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 87: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 88: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 89: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 90: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 91: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 92: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 93: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 94: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75]
2026-08-17 15:05:03.677690: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-17 15:05:03.677812: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:05:03.677893: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:05:03.678086: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:05:03.678166: No export window planned
2026-08-17 15:05:03.678263: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:05:03.678292: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:05:03.678422: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:05:03.678566: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:05:03.678617: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:05:03.678670: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:05:03.678746: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678778: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678851: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678875: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678900: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.678982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.679002: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.679027: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.679048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.679067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.679140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:05:03.679178: Inverter 0 count register writes 0
2026-08-17 15:05:03.695560: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 15:05:03.700961: Total inverter register writes now 861
2026-08-17 15:05:03.729372: Info: Completed run status Demand
2026-08-17 15:05:03.734720: Info: record_status Demand
2026-08-17 15:05:03.740839: Saved current settings to /config/predbat_config.json
2026-08-17 15:05:03.741166: Compare, best tariff: current metric 104.68p
2026-08-17 15:05:33.856319: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:05:33.856554: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:05:33.856601: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:05:33.856740: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:05:33.856781: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:05:33.856803: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:05:33.856821: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:07:34.119966: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:07:34.120209: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:07:34.120261: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:07:34.120481: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:07:34.120526: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:07:34.120548: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:07:34.120567: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:09:34.383118: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:09:34.383367: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:09:34.383412: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:09:34.383572: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:09:34.383618: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:09:34.383656: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:09:34.383674: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:09:35.446183: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 15:09:36.350752: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:09:36.350930: Zero load period starting at 2026-08-17T10:54:00+0100 (251 minutes) for 189 minutes with base value 396.8
2026-08-17 15:09:36.351330: Processing 1297 30-minute periods for power integration
2026-08-17 15:09:36.448428: ML Component: Car charging hold False, car energy reported load False
2026-08-17 15:09:36.529042: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:09:36.607509: ML Temperature data points: 48056
2026-08-17 15:09:36.818326: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 15:09:36.851861: ML Component: Data fetch completed, load data age 59.0 days, 17005 data points
2026-08-17 15:09:36.851980: ML Component: No training needed, model age is 0.83 hours
2026-08-17 15:09:36.852030: ML Component: Generating predictions load data age 59.0 days, 17005 data points
2026-08-17 15:09:36.968044: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0334 max_dow {0: 0.08182500006258488, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 15:09:37.477280: ML Component: Generated 576 predictions (total 25.97 kWh over 48h)
2026-08-17 15:09:37.523738: ML Component: Prediction cycle completed
2026-08-17 15:09:37.636472: ML Component: Saved 17005 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 15:10:00.523404: --------------- PredBat - update at 2026-08-17 15:10:00+01:00 with clock skew 0 minutes, minutes now 910
2026-08-17 15:10:00.524234: Saved current settings to /config/predbat_config.json
2026-08-17 15:10:00.524390: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 15:10:00.524427: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:10:00.536568: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:10:00.536681: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:10:00.536842: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:10:00.537348: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:10:00.537464: Predbat mode is set to Control charge & discharge
2026-08-17 15:10:00.726115: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:10:00.726261: Using load_power data to fill gaps in load_today data
2026-08-17 15:10:01.442939: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:10:01.443097: Zero load period starting at 2026-08-17T10:54:00+0100 (256 minutes) for 189 minutes with base value 214.475
2026-08-17 15:10:01.443490: Processing 721 30-minute periods for power integration
2026-08-17 15:10:01.623959: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:10:01.624089: Car charging hold False, threshold 6.0kWh
2026-08-17 15:10:01.624124: Current data so far today: load 8.15kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:10:01.637837: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:10:01.637935: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:10:01.638634: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:10:01.638710: Standing charge is set to 46.63p
2026-08-17 15:10:01.730340: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.730548: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.730734: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.730889: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.731033: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.731177: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.731341: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.731504: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.731667: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:10:01.732577: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:10:01.732692: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:10:01.737278: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:10:01.737590: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:10:01.773931: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:10:01.774045: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:10:01.775515: High export rate found rates in range 99p to -99p
2026-08-17 15:10:01.858588: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:10:01.858706: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:10:01.869719: Battery level now 9.6kWh, -1hr ago 10.08kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -6.1p, rate_forward 6.87p
2026-08-17 15:10:01.870040: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:10:01.926483: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:10:01.926659: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:10:02.014717: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:10:02.041128: Today's load divergence 98.18%, in-day adjustment 87.26%, damping 0.95x, yesterday 68.37% today 98.27% blend 36.81%
2026-08-17 15:10:02.041208: Today's predicted so far 9.67kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 9.67kWh forecast extra.
2026-08-17 15:10:02.041234: Today's actual load so far 9.39kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 15:10:02.071892: Inverter 0: Type SK Sunsynk
2026-08-17 15:10:02.071998: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:10:02.072177: Reserve min: 7%, battery_min: 7%
2026-08-17 15:10:02.072266: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:10:02.072534: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 405W, current battery voltage 51.2V, grid power -56W, load power 470W, PV Power 0W
2026-08-17 15:10:02.072680: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:10:02.072763: Inverter 0 scheduled charge enable is False
2026-08-17 15:10:02.072797: Inverter 0 charge windows currently []
2026-08-17 15:10:02.072823: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:10:02.072934: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:10:02.072969: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:10:02.073003: Inverter 0 scheduled discharge enable is False
2026-08-17 15:10:02.073128: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:10:02.073184: Inverter 0 discharge windows currently []
2026-08-17 15:10:02.073224: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:10:02.073277: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:10:02.073319: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:10:02.130102: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:10:02.130202: Plan was last updated on 2026-08-17 15:00:00+01:00 and is now 10.0 minutes old
2026-08-17 15:10:02.130431: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:10:02.130476: Best export window [ ]
2026-08-17 15:10:02.131280: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:10:02.134410: Load divergence over 8.0 hours mean 462.59W, min 336.6W, max 1039.2W, std dev 107.02W, divergence 11.57%
2026-08-17 15:10:02.153824: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:10:02.153924: LoadML is_calculating False
2026-08-17 15:10:02.153981: Creating pool of 12 processes to match your CPU count
2026-08-17 15:10:02.267647: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 602.69p, metric_keep 279.35kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.5kWh, PV 0.0kWh
2026-08-17 15:10:02.395069: Battery has 11.58 hours left - now at 9.6kWh
2026-08-17 15:10:02.437214: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.19p, metric_keep 280.84kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.52kWh, PV 0.0kWh
2026-08-17 15:10:02.510466: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 328.38p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.52kWh, PV 0.0kWh
2026-08-17 15:10:02.585004: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 326.03p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.5kWh, PV 0.0kWh
2026-08-17 15:10:02.585093: Saving plan best values to HA entities
2026-08-17 15:10:02.742928: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:10:02.747986: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:10:02.753056: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.56kWh, house 0.0kWh, export 0.0kWh, metric 326.03p, metric10 328.38p
2026-08-17 15:10:02.836073: Marginal costs baseline metric (no standing charge): 279.3937
2026-08-17 15:10:03.068812: Marginal energy costs matrix computed: min=7.99 max=25.56
2026-08-17 15:10:03.130102: Rate array import [{'start': 910, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 910, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:10:03.130725: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 15:10:03.130784: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:10:03.130835: - The battery is currently at 60% and is in eco mode for the next 8 hours.
2026-08-17 15:10:03.130855: - For the next 48 hours there will be no solar generation.
2026-08-17 15:10:03.130869: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:10:03.130883: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:10:03.130906:
2026-08-17 15:10:03.187749: Plan calculation took 1.06 seconds
2026-08-17 15:10:03.191258: No high rate period found
2026-08-17 15:10:03.243092: Import threshold used for optimisation was 8.0p
2026-08-17 15:10:03.290088: Low import rate windows [0: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 1: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 2: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 3: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 4: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 5: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 6: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 7: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 8: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 9: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 10: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 11: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 12: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 13: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 14: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 15: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 16: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 17: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 18: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 19: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 20: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 21: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 22: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 23: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 24: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 25: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 26: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 27: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 28: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 29: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 30: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 31: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 32: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 33: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 34: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 35: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 36: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 37: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 38: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 39: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 40: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 41: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 42: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 43: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 44: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 45: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 46: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 47: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 48: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 49: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 50: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 51: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 52: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 53: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 54: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 55: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 56: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 57: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 58: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 59: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 60: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 61: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 62: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 63: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 64: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 65: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 66: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 67: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 68: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 69: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 70: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 71: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 72: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 73: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 74: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 75: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 76: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 77: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 78: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 79: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 80: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 81: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 82: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 83: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 84: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 85: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 86: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 87: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 88: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 89: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 90: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 91: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 92: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 93: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 94: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75]
2026-08-17 15:10:03.295381: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-17 15:10:03.295487: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:10:03.295564: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:10:03.295769: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:10:03.295850: No export window planned
2026-08-17 15:10:03.296002: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:10:03.296041: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:10:03.296156: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:10:03.296325: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:10:03.296378: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:10:03.296432: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:10:03.296507: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296534: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296580: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296600: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296619: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296785: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:03.296849: Inverter 0 count register writes 0
2026-08-17 15:10:03.309489: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 15:10:03.309624: Recompute is saving previous plan...
2026-08-17 15:10:03.312255: Best charge window [ 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0% ]
2026-08-17 15:10:03.312321: Best export window [ ]
2026-08-17 15:10:03.313019: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:10:03.315535: Load divergence over 8.0 hours mean 462.59W, min 336.6W, max 1039.2W, std dev 107.02W, divergence 11.57%
2026-08-17 15:10:03.329996: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:10:03.330088: LoadML is_calculating False
2026-08-17 15:10:03.330139: Creating pool of 12 processes to match your CPU count
2026-08-17 15:10:03.400255: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 15:10:03.401716: Optimise levels pass started at 2026-08-17 15:10:03
2026-08-17 15:10:03.401762: Optimise all windows, total charge 94 export 1
2026-08-17 15:10:03.759618: >> Region optimisation pass width 960 gives best_metric 362.56p, best_cost 415.32p, best_cycle 47.11kWh, best_import 33.55kWh
2026-08-17 15:10:03.947888: >> Region optimisation pass width 480 gives best_metric 362.56p, best_cost 415.32p, best_cycle 47.11kWh, best_import 33.55kWh
2026-08-17 15:10:04.282520: >> Region optimisation pass width 240 gives best_metric 362.56p, best_cost 415.32p, best_cycle 47.11kWh, best_import 33.55kWh
2026-08-17 15:10:05.397648: >> Region optimisation pass width 120 gives best_metric 362.3p, best_cost 413.33p, best_cycle 47.37kWh, best_import 33.3kWh
2026-08-17 15:10:05.397948: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 63
2026-08-17 15:10:05.398056: Optimise levels pass ended at 2026-08-17 15:10:05, duration 2.0 seconds tried 211 combinations
2026-08-17 15:10:05.398148: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 362.3p, best_keep 0kWh, best_cycle 47.37kWh, best_carbon 0kg, best_import 33.3kWh
2026-08-17 15:10:05.415416: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 15:10:09.931630: Tweak plan optimisation started metric 258.66p, cost 270.61p
2026-08-17 15:10:10.217483: Tweak optimisation finished metric 258.66p, cost 270.61p, metric_keep 0.1kWh, cycle 27.82kWh, carbon 0kg, import 15.46kWh, changed 8 window(s)
2026-08-17 15:10:10.238782: Swap charge optimisation started metric 258.66p, cost 270.61p, min_improvement_swap 0.1p
2026-08-17 15:10:16.085329: Swap charge optimisation finished metric 258.66p, cost 270.61p
2026-08-17 15:10:16.200819: Raw charge windows [ 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:10:16.201338: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:10:16.201564: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:10:16.201753: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:10:16.233296: Previous plan best metric is 259.09 (cost 271.11) and new plan best metric is 258.66 (cost 270.61)
2026-08-17 15:10:16.233584: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 15:10:16.233740: Plan valid is now true after recompute was False
2026-08-17 15:10:16.264443: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.07p, metric_keep 278.76kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.3kWh, PV 0.0kWh
2026-08-17 15:10:16.391617: Battery has 11.58 hours left - now at 9.6kWh
2026-08-17 15:10:16.433701: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 623.5p, metric_keep 280.26kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.31kWh, PV 0.0kWh
2026-08-17 15:10:16.496652: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 321.13p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-17 15:10:16.564528: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 317.74p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.3kWh, PV 0.0kWh
2026-08-17 15:10:16.564606: Saving plan best values to HA entities
2026-08-17 15:10:16.702008: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:10:16.706203: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:10:16.711008: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.52kWh, house 0.0kWh, export 0.0kWh, metric 317.74p, metric10 321.13p
2026-08-17 15:10:16.781188: Marginal costs baseline metric (no standing charge): 271.1094
2026-08-17 15:10:17.045054: Marginal energy costs matrix computed: min=7.99 max=25.56
2026-08-17 15:10:17.118203: Rate array import [{'start': 910, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 910, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:10:17.118915: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 15:10:17.118959: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:10:17.118990: - The battery is currently at 60% and is in eco mode for the next 8 hours.
2026-08-17 15:10:17.119014: - For the next 48 hours there will be no solar generation.
2026-08-17 15:10:17.119032: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:10:17.119052: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:10:17.119069:
2026-08-17 15:10:17.172539: Plan calculation took 13.86 seconds
2026-08-17 15:10:17.172843: Inverter 0: Type SK Sunsynk
2026-08-17 15:10:17.172886: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:10:17.173095: Reserve min: 7%, battery_min: 7%
2026-08-17 15:10:17.173182: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:10:17.173514: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 405W, current battery voltage 51.2V, grid power -56W, load power 470W, PV Power 0W
2026-08-17 15:10:17.173742: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:10:17.173869: Inverter 0 scheduled charge enable is False
2026-08-17 15:10:17.173906: Inverter 0 charge windows currently []
2026-08-17 15:10:17.173948: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:10:17.174093: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:10:17.174132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:10:17.174167: Inverter 0 scheduled discharge enable is False
2026-08-17 15:10:17.174288: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:10:17.174320: Inverter 0 discharge windows currently []
2026-08-17 15:10:17.174339: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:10:17.174355: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:10:17.174376: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:10:17.225177: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-17 15:10:17.225320: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:10:17.225384: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:10:17.225535: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:10:17.225608: No export window planned
2026-08-17 15:10:17.225698: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:10:17.225727: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:10:17.225836: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:10:17.225965: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:10:17.226008: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:10:17.226059: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:10:17.226133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226160: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226202: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226227: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226269: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226296: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226428: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:10:17.226532: Inverter 0 count register writes 0
2026-08-17 15:10:17.245903: Total inverter register writes now 861
2026-08-17 15:10:17.273129: Info: Completed run status Demand
2026-08-17 15:10:17.279942: Info: record_status Demand
2026-08-17 15:10:17.287255: Saved current settings to /config/predbat_config.json
2026-08-17 15:10:17.287639: Compare, best tariff: current metric 104.68p
2026-08-17 15:10:49.388196: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:10:49.388566: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:10:49.388646: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:10:49.388898: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:10:49.388949: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:10:49.388989: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:10:49.389031: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:13:03.657715: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:13:03.657940: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:13:03.658005: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:13:03.658154: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:13:03.658192: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:13:03.658229: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:13:03.658257: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:15:00.918795: --------------- PredBat - update at 2026-08-17 15:15:00+01:00 with clock skew 0 minutes, minutes now 915
2026-08-17 15:15:00.919549: Saved current settings to /config/predbat_config.json
2026-08-17 15:15:00.919687: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 15:15:00.919726: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:15:00.931708: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:15:00.931826: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:15:00.932013: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:15:00.932574: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:15:00.932720: Predbat mode is set to Control charge & discharge
2026-08-17 15:15:01.120663: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:15:01.120818: Using load_power data to fill gaps in load_today data
2026-08-17 15:15:01.955969: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:15:01.956138: Zero load period starting at 2026-08-17T10:54:00+0100 (261 minutes) for 189 minutes with base value 214.45
2026-08-17 15:15:01.956611: Processing 721 30-minute periods for power integration
2026-08-17 15:15:02.144674: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:15:02.144803: Car charging hold False, threshold 6.0kWh
2026-08-17 15:15:02.144846: Current data so far today: load 8.2kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:15:02.161405: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:15:02.161504: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:15:02.162298: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:15:02.162372: Standing charge is set to 46.63p
2026-08-17 15:15:02.248760: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.249673: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.249882: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.250072: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.250273: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.250452: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.250623: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.250788: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.250949: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:15:02.252368: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:15:02.252558: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:15:02.258594: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:15:02.258980: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:15:02.302162: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:15:02.302287: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:15:02.303627: High export rate found rates in range 99p to -99p
2026-08-17 15:15:02.402386: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:15:02.402516: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:15:02.413856: Battery level now 9.6kWh, -1hr ago 9.92kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -6.1p, rate_forward 6.87p
2026-08-17 15:15:02.414250: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:15:02.474584: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:15:02.474728: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:15:02.575459: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:15:02.604617: Today's load divergence 98.29%, in-day adjustment 87.44%, damping 0.95x, yesterday 68.37% today 98.38% blend 36.46%
2026-08-17 15:15:02.604707: Today's predicted so far 9.69kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 9.69kWh forecast extra.
2026-08-17 15:15:02.604738: Today's actual load so far 9.42kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 15:15:02.636327: Inverter 0: Type SK Sunsynk
2026-08-17 15:15:02.636405: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:15:02.636625: Reserve min: 7%, battery_min: 7%
2026-08-17 15:15:02.636723: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:15:02.637047: Inverter 0 SoC: 9.6kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power 404W, current battery voltage 51.2V, grid power -56W, load power 467W, PV Power 0W
2026-08-17 15:15:02.637291: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:15:02.637406: Inverter 0 scheduled charge enable is False
2026-08-17 15:15:02.637453: Inverter 0 charge windows currently []
2026-08-17 15:15:02.637510: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:15:02.637685: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:15:02.637732: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:15:02.637790: Inverter 0 scheduled discharge enable is False
2026-08-17 15:15:02.637968: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:15:02.638012: Inverter 0 discharge windows currently []
2026-08-17 15:15:02.638049: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:15:02.638088: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:15:02.638109: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:15:02.694746: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:15:02.694843: Plan was last updated on 2026-08-17 15:10:00+01:00 and is now 5.0 minutes old
2026-08-17 15:15:02.695105: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:15:02.695153: Best export window [ ]
2026-08-17 15:15:02.696197: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:15:02.699691: Load divergence over 8.0 hours mean 461.71W, min 331.2W, max 975.0W, std dev 103.99W, divergence 11.26%
2026-08-17 15:15:02.718358: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:15:02.718464: LoadML is_calculating False
2026-08-17 15:15:02.718522: Creating pool of 12 processes to match your CPU count
2026-08-17 15:15:02.831726: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 601.92p, metric_keep 278.8kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.41kWh, PV 0.0kWh
2026-08-17 15:15:02.946001: Battery has 11.58 hours left - now at 9.6kWh
2026-08-17 15:15:02.989287: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 624.33p, metric_keep 280.32kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 15:15:03.063997: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 324.23p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 15:15:03.145886: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 321.46p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.41kWh, PV 0.0kWh
2026-08-17 15:15:03.145967: Saving plan best values to HA entities
2026-08-17 15:15:03.318899: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:15:03.324895: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 15:15:03.330390: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.98kWh, house 0.0kWh, export 0.0kWh, metric 321.46p, metric10 324.23p
2026-08-17 15:15:03.412202: Marginal costs baseline metric (no standing charge): 274.8242
2026-08-17 15:15:03.730453: Marginal energy costs matrix computed: min=7.99 max=25.93
2026-08-17 15:15:03.808344: Rate array import [{'start': 915, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 915, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:15:03.809069: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 15:15:03.809116: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:15:03.809571: - The battery is currently at 60% and is in eco mode for the next 8 hours.
2026-08-17 15:15:03.809610: - For the next 48 hours there will be no solar generation.
2026-08-17 15:15:03.809631: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:15:03.809648: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:15:03.809667:
2026-08-17 15:15:03.870408: Plan calculation took 1.18 seconds
2026-08-17 15:15:03.874010: No high rate period found
2026-08-17 15:15:03.929545: Import threshold used for optimisation was 8.0p
2026-08-17 15:15:03.989133: Low import rate windows [0: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 1: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 2: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 3: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 4: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 5: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 6: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 7: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 8: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 9: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 10: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 11: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 12: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 13: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 14: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 15: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 16: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 17: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 18: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 19: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 20: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 21: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 22: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 23: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 24: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 25: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 26: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 27: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 28: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 29: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 30: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 31: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 32: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 33: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 34: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 35: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 36: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 37: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 38: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 39: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 40: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 41: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 42: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 43: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 44: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 45: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 46: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 47: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 48: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 49: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 50: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 51: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 52: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 53: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 54: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 55: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 56: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 57: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 58: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 59: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 60: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 61: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 62: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 63: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 64: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 65: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 66: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 67: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 68: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 69: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 70: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 71: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 72: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 73: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 74: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 75: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 76: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 77: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 78: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 79: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 80: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 81: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 82: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 83: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 84: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 85: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 86: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 87: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 88: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 89: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 90: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 91: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 92: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 93: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 94: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75]
2026-08-17 15:15:03.996104: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 60%, target 100%
2026-08-17 15:15:03.996274: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:15:03.996394: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:15:03.996680: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:15:03.996817: No export window planned
2026-08-17 15:15:03.997021: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:15:03.997072: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:15:03.997315: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:15:03.997577: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:15:03.997676: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:15:03.997781: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:15:03.997887: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.997922: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.997960: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.997986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998016: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998041: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998066: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:15:03.998511: Inverter 0 count register writes 0
2026-08-17 15:15:04.016806: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 15:15:04.021934: Total inverter register writes now 861
2026-08-17 15:15:04.058277: Info: Completed run status Demand
2026-08-17 15:15:04.064595: Info: record_status Demand
2026-08-17 15:15:04.071437: Saved current settings to /config/predbat_config.json
2026-08-17 15:15:04.071757: Compare, best tariff: current metric 104.68p
2026-08-17 15:15:34.178915: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:15:34.179138: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:15:34.179216: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:15:34.179452: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:15:34.179498: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:15:34.179518: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:15:34.179532: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:17:34.384800: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:17:34.385031: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:17:34.385087: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:17:34.385364: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:17:34.385423: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:17:34.385448: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:17:34.385467: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:19:34.608718: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:19:34.608964: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:19:34.609537: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:19:34.609694: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:19:34.609732: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:19:34.609754: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:19:34.609772: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:20:00.700179: --------------- PredBat - update at 2026-08-17 15:20:00+01:00 with clock skew 0 minutes, minutes now 920
2026-08-17 15:20:00.701012: Saved current settings to /config/predbat_config.json
2026-08-17 15:20:00.701214: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 15:20:00.701289: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:20:00.712982: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:20:00.713102: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:20:00.713290: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:20:00.713796: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:20:00.713919: Predbat mode is set to Control charge & discharge
2026-08-17 15:20:00.878316: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:20:00.878465: Using load_power data to fill gaps in load_today data
2026-08-17 15:20:01.753668: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:20:01.753861: Zero load period starting at 2026-08-17T10:54:00+0100 (266 minutes) for 189 minutes with base value 214.425
2026-08-17 15:20:01.754600: Processing 721 30-minute periods for power integration
2026-08-17 15:20:01.942100: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:20:01.942253: Car charging hold False, threshold 6.0kWh
2026-08-17 15:20:01.942296: Current data so far today: load 8.25kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:20:01.959428: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:20:01.959527: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:20:01.960285: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:20:01.960359: Standing charge is set to 46.63p
2026-08-17 15:20:02.057228: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.057549: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.057864: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.058207: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.058470: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.058733: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.058997: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.059207: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.059380: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:20:02.060569: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:20:02.060689: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:20:02.067001: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:20:02.067664: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:20:02.121927: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:20:02.122035: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:20:02.123281: High export rate found rates in range 99p to -99p
2026-08-17 15:20:02.228268: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:20:02.228409: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:20:02.239397: Battery level now 9.6kWh, -1hr ago 9.92kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -6.1p, rate_forward 6.87p
2026-08-17 15:20:02.239823: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:20:02.288146: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:20:02.288293: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:20:02.378075: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:20:02.405741: Today's load divergence 98.39%, in-day adjustment 87.6%, damping 0.95x, yesterday 68.37% today 98.47% blend 36.11%
2026-08-17 15:20:02.405843: Today's predicted so far 9.72kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.72kWh forecast extra.
2026-08-17 15:20:02.405876: Today's actual load so far 9.46kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 15:20:02.438398: Inverter 0: Type SK Sunsynk
2026-08-17 15:20:02.438489: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:20:02.438665: Reserve min: 7%, battery_min: 7%
2026-08-17 15:20:02.438737: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:20:02.438986: Inverter 0 SoC: 9.49kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 402W, current battery voltage 51.2V, grid power -55W, load power 466W, PV Power 0W
2026-08-17 15:20:02.439150: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:20:02.439237: Inverter 0 scheduled charge enable is False
2026-08-17 15:20:02.439266: Inverter 0 charge windows currently []
2026-08-17 15:20:02.439300: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:20:02.439413: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:20:02.439448: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:20:02.439484: Inverter 0 scheduled discharge enable is False
2026-08-17 15:20:02.439630: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:20:02.439666: Inverter 0 discharge windows currently []
2026-08-17 15:20:02.439688: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:20:02.439706: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:20:02.439726: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:20:02.494789: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:20:02.494898: Plan was last updated on 2026-08-17 15:10:00+01:00 and is now 10.0 minutes old
2026-08-17 15:20:02.495177: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:20:02.495228: Best export window [ ]
2026-08-17 15:20:02.496081: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:20:02.499204: Load divergence over 8.0 hours mean 468.02W, min 361.2W, max 949.2W, std dev 106.25W, divergence 11.35%
2026-08-17 15:20:02.518138: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:20:02.518250: LoadML is_calculating False
2026-08-17 15:20:02.518319: Creating pool of 12 processes to match your CPU count
2026-08-17 15:20:02.631404: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 602.95p, metric_keep 279.4kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.51kWh, PV 0.0kWh
2026-08-17 15:20:02.751039: Battery has 11.42 hours left - now at 9.49kWh
2026-08-17 15:20:02.799306: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.41p, metric_keep 280.9kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.52kWh, PV 0.0kWh
2026-08-17 15:20:02.880358: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 328.45p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.52kWh, PV 0.0kWh
2026-08-17 15:20:02.963383: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 326.14p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.51kWh, PV 0.0kWh
2026-08-17 15:20:02.963471: Saving plan best values to HA entities
2026-08-17 15:20:03.124265: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:20:03.132505: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:20:03.138881: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.57kWh, house 0.0kWh, export 0.0kWh, metric 326.14p, metric10 328.45p
2026-08-17 15:20:03.225975: Marginal costs baseline metric (no standing charge): 279.506
2026-08-17 15:20:03.451613: Marginal energy costs matrix computed: min=7.97 max=26.65
2026-08-17 15:20:03.515137: Rate array import [{'start': 920, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 920, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:20:03.515748: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 15:20:03.515782: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:20:03.515800: - The battery is currently at 59% and is in eco mode for the next 8 hours.
2026-08-17 15:20:03.515815: - For the next 48 hours there will be no solar generation.
2026-08-17 15:20:03.515829: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:20:03.515845: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:20:03.515860:
2026-08-17 15:20:03.564018: Plan calculation took 1.07 seconds
2026-08-17 15:20:03.567547: No high rate period found
2026-08-17 15:20:03.612975: Import threshold used for optimisation was 8.0p
2026-08-17 15:20:03.664838: Low import rate windows [0: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 1: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 2: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 3: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 4: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 5: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 6: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 7: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 8: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 9: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 10: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 11: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 12: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 13: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 14: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 15: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 16: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 17: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 18: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 19: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 20: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 21: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 22: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 23: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 24: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 25: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 26: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 27: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 28: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 29: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 30: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 31: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 32: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 33: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 34: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 35: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 36: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 37: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 38: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 39: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 40: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 41: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 42: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 43: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 44: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 45: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 46: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 47: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 48: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 49: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 50: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 51: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 52: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 53: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 54: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 55: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 56: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 57: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 58: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 59: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 60: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 61: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 62: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 63: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 64: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 65: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 66: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 67: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 68: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 69: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 70: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 71: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 72: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 73: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 74: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 75: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 76: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 77: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 78: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 79: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 80: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 81: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 82: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 83: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 84: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 85: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 86: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 87: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 88: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 89: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 90: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 91: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 92: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 93: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 94: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75]
2026-08-17 15:20:03.670804: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-17 15:20:03.670944: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:20:03.671073: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:20:03.671405: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:20:03.671530: No export window planned
2026-08-17 15:20:03.671717: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:20:03.671784: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:20:03.672020: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:20:03.672274: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:20:03.672354: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:20:03.672448: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:20:03.672588: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.672656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.672702: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.672743: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.672794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.672826: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.672882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.672977: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.673046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.673098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.673163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.673210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.673255: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.673312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:03.673346: Inverter 0 count register writes 0
2026-08-17 15:20:03.688175: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 15:20:03.688338: Recompute is saving previous plan...
2026-08-17 15:20:03.691418: Best charge window [ 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0% ]
2026-08-17 15:20:03.691495: Best export window [ ]
2026-08-17 15:20:03.692350: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:20:03.695597: Load divergence over 8.0 hours mean 468.02W, min 361.2W, max 949.2W, std dev 106.25W, divergence 11.35%
2026-08-17 15:20:03.713119: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:20:03.713203: LoadML is_calculating False
2026-08-17 15:20:03.713255: Creating pool of 12 processes to match your CPU count
2026-08-17 15:20:03.790360: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 15:20:03.791883: Optimise levels pass started at 2026-08-17 15:20:03
2026-08-17 15:20:03.791987: Optimise all windows, total charge 94 export 1
2026-08-17 15:20:04.154582: >> Region optimisation pass width 960 gives best_metric 363.54p, best_cost 415.5p, best_cycle 47.18kWh, best_import 33.57kWh
2026-08-17 15:20:04.370387: >> Region optimisation pass width 480 gives best_metric 363.54p, best_cost 415.5p, best_cycle 47.18kWh, best_import 33.57kWh
2026-08-17 15:20:04.699497: >> Region optimisation pass width 240 gives best_metric 363.54p, best_cost 415.5p, best_cycle 47.18kWh, best_import 33.57kWh
2026-08-17 15:20:05.809492: >> Region optimisation pass width 120 gives best_metric 363.28p, best_cost 413.54p, best_cycle 47.43kWh, best_import 33.32kWh
2026-08-17 15:20:05.810076: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 63
2026-08-17 15:20:05.810262: Optimise levels pass ended at 2026-08-17 15:20:05, duration 2.0 seconds tried 211 combinations
2026-08-17 15:20:05.810363: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 363.28p, best_keep 0kWh, best_cycle 47.43kWh, best_carbon 0kg, best_import 33.32kWh
2026-08-17 15:20:05.827993: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 15:20:10.401251: Tweak plan optimisation started metric 258.81p, cost 270.72p
2026-08-17 15:20:10.689358: Tweak optimisation finished metric 258.81p, cost 270.72p, metric_keep 0.11kWh, cycle 27.77kWh, carbon 0kg, import 15.47kWh, changed 8 window(s)
2026-08-17 15:20:10.705997: Swap charge optimisation started metric 258.81p, cost 270.72p, min_improvement_swap 0.1p
2026-08-17 15:20:16.808274: Swap charge optimisation finished metric 258.81p, cost 270.72p
2026-08-17 15:20:16.925966: Raw charge windows [ 17-08 15:00:00 - 17-08 15:30:00 @ 33.75p 0%, 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:20:16.926434: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:20:16.927508: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:20:16.927640: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:20:16.965470: Previous plan best metric is 259.23 (cost 271.21) and new plan best metric is 258.81 (cost 270.72)
2026-08-17 15:20:16.965873: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 15:20:16.966033: Plan valid is now true after recompute was False
2026-08-17 15:20:16.993734: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.32p, metric_keep 278.81kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.31kWh, PV 0.0kWh
2026-08-17 15:20:17.111615: Battery has 11.42 hours left - now at 9.49kWh
2026-08-17 15:20:17.155310: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 623.71p, metric_keep 280.31kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.31kWh, PV 0.0kWh
2026-08-17 15:20:17.231243: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 321.19p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-17 15:20:17.302858: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 317.85p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.31kWh, PV 0.0kWh
2026-08-17 15:20:17.302944: Saving plan best values to HA entities
2026-08-17 15:20:17.444965: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:20:17.449959: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:20:17.454995: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.53kWh, house 0.0kWh, export 0.0kWh, metric 317.85p, metric10 321.19p
2026-08-17 15:20:17.524720: Marginal costs baseline metric (no standing charge): 271.2137
2026-08-17 15:20:17.814959: Marginal energy costs matrix computed: min=7.97 max=26.65
2026-08-17 15:20:17.889777: Rate array import [{'start': 920, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 920, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:20:17.890462: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 15:20:17.890505: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:20:17.890529: - The battery is currently at 59% and is in eco mode for the next 8 hours.
2026-08-17 15:20:17.890548: - For the next 48 hours there will be no solar generation.
2026-08-17 15:20:17.890566: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:20:17.890587: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:20:17.890609:
2026-08-17 15:20:17.940887: Plan calculation took 14.25 seconds
2026-08-17 15:20:17.941256: Inverter 0: Type SK Sunsynk
2026-08-17 15:20:17.941322: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:20:17.941521: Reserve min: 7%, battery_min: 7%
2026-08-17 15:20:17.941596: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:20:17.941893: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 408W, current battery voltage 51.2V, grid power -52W, load power 468W, PV Power 0W
2026-08-17 15:20:17.942143: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:20:17.942249: Inverter 0 scheduled charge enable is False
2026-08-17 15:20:17.942280: Inverter 0 charge windows currently []
2026-08-17 15:20:17.942310: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:20:17.942420: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:20:17.942459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:20:17.942499: Inverter 0 scheduled discharge enable is False
2026-08-17 15:20:17.942624: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:20:17.942661: Inverter 0 discharge windows currently []
2026-08-17 15:20:17.942703: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:20:17.942729: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:20:17.942747: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:20:18.002968: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-17 15:20:18.003141: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:20:18.003243: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:20:18.003459: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:20:18.003560: No export window planned
2026-08-17 15:20:18.003725: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:20:18.003766: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:20:18.003999: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:20:18.004220: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:20:18.004278: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:20:18.004334: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:20:18.004415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004474: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004649: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:20:18.004911: Inverter 0 count register writes 0
2026-08-17 15:20:18.024841: Total inverter register writes now 861
2026-08-17 15:20:18.056264: Info: Completed run status Demand
2026-08-17 15:20:18.061995: Info: record_status Demand
2026-08-17 15:20:18.067756: Saved current settings to /config/predbat_config.json
2026-08-17 15:20:18.068073: Compare, best tariff: current metric 104.68p
2026-08-17 15:20:49.166623: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:20:49.166868: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:20:49.166931: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:20:49.167083: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:20:49.167224: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:20:49.167272: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:20:49.167329: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:22:49.378178: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:22:49.378423: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:22:49.378458: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:22:49.378589: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:22:49.378628: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:22:49.378650: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:22:49.378668: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:24:49.603551: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:24:49.603857: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:24:49.603967: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:24:49.604191: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:24:49.604237: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:24:49.604262: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:24:49.604303: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:25:00.685764: --------------- PredBat - update at 2026-08-17 15:25:00+01:00 with clock skew 0 minutes, minutes now 925
2026-08-17 15:25:00.686599: Saved current settings to /config/predbat_config.json
2026-08-17 15:25:00.686745: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 15:25:00.686807: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:25:00.703557: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:25:00.703686: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:25:00.703932: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:25:00.704534: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:25:00.704704: Predbat mode is set to Control charge & discharge
2026-08-17 15:25:00.892189: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:25:00.892319: Using load_power data to fill gaps in load_today data
2026-08-17 15:25:01.628923: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:25:01.629356: Zero load period starting at 2026-08-17T10:54:00+0100 (271 minutes) for 189 minutes with base value 214.4
2026-08-17 15:25:01.629731: Processing 721 30-minute periods for power integration
2026-08-17 15:25:01.789738: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:25:01.789864: Car charging hold False, threshold 6.0kWh
2026-08-17 15:25:01.789939: Current data so far today: load 8.3kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:25:01.806387: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:25:01.806500: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:25:01.807192: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:25:01.807269: Standing charge is set to 46.63p
2026-08-17 15:25:01.889769: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.890034: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.890256: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.890414: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.890554: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.890745: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.890897: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.891028: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.891253: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:25:01.892528: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:25:01.892630: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:25:01.897153: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:25:01.897536: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:25:01.937991: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:25:01.938101: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:25:01.939245: High export rate found rates in range 99p to -99p
2026-08-17 15:25:02.025322: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:25:02.025428: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:25:02.035460: Battery level now 9.49kWh, -1hr ago 9.92kWh, at midnight 10.49kWh, battery value change in the last hour -2.97p, change today -6.87p, rate_forward 6.87p
2026-08-17 15:25:02.035774: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:25:02.082007: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:25:02.082145: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:25:02.153416: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:25:02.175112: Today's load divergence 98.53%, in-day adjustment 87.79%, damping 0.95x, yesterday 68.37% today 98.6% blend 35.76%
2026-08-17 15:25:02.175179: Today's predicted so far 9.74kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 9.74kWh forecast extra.
2026-08-17 15:25:02.175204: Today's actual load so far 9.51kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 15:25:02.205233: Inverter 0: Type SK Sunsynk
2026-08-17 15:25:02.205302: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:25:02.205443: Reserve min: 7%, battery_min: 7%
2026-08-17 15:25:02.205499: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:25:02.205706: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 401W, current battery voltage 51.2V, grid power -53W, load power 461W, PV Power 0W
2026-08-17 15:25:02.205827: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:25:02.205897: Inverter 0 scheduled charge enable is False
2026-08-17 15:25:02.205920: Inverter 0 charge windows currently []
2026-08-17 15:25:02.205940: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:25:02.206024: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:25:02.206067: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:25:02.206098: Inverter 0 scheduled discharge enable is False
2026-08-17 15:25:02.206201: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:25:02.206236: Inverter 0 discharge windows currently []
2026-08-17 15:25:02.206255: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:25:02.206270: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:25:02.206288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:25:02.253790: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:25:02.253873: Plan was last updated on 2026-08-17 15:20:00+01:00 and is now 5.0 minutes old
2026-08-17 15:25:02.254036: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:25:02.254086: Best export window [ ]
2026-08-17 15:25:02.254749: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:25:02.257457: Load divergence over 8.0 hours mean 474.16W, min 344.4W, max 1017.6W, std dev 119.62W, divergence 12.61%
2026-08-17 15:25:02.272695: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:25:02.272780: LoadML is_calculating False
2026-08-17 15:25:02.272832: Creating pool of 12 processes to match your CPU count
2026-08-17 15:25:02.368617: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 602.45p, metric_keep 279.16kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.44kWh, PV 0.0kWh
2026-08-17 15:25:02.483099: Battery has 11.33 hours left - now at 9.44kWh
2026-08-17 15:25:02.521935: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 624.92p, metric_keep 280.65kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.44kWh, PV 0.0kWh
2026-08-17 15:25:02.595481: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 324.94p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.44kWh, PV 0.0kWh
2026-08-17 15:25:02.668243: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 322.12p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.44kWh, PV 0.0kWh
2026-08-17 15:25:02.668331: Saving plan best values to HA entities
2026-08-17 15:25:02.845498: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 15:25:02.851547: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 15:25:02.860339: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.07kWh, house 0kWh, export 0.0kWh, metric 322.12p, metric10 324.94p
2026-08-17 15:25:02.937076: Marginal costs baseline metric (no standing charge): 275.4911
2026-08-17 15:25:03.205677: Marginal energy costs matrix computed: min=7.95 max=27.2
2026-08-17 15:25:03.306424: Rate array import [{'start': 925, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 925, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:25:03.306998: - Your estimated bill for today is £1.71 and tomorrow is £1.72
2026-08-17 15:25:03.307034: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:25:03.307066: - The battery is currently at 59% and is in eco mode for the next 8 hours.
2026-08-17 15:25:03.307082: - For the next 48 hours there will be no solar generation.
2026-08-17 15:25:03.307096: - You will reach a minimum of 12% battery in 32 hours.
2026-08-17 15:25:03.307110: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:25:03.307128:
2026-08-17 15:25:03.352703: Plan calculation took 1.10 seconds
2026-08-17 15:25:03.355606: No high rate period found
2026-08-17 15:25:03.396358: Import threshold used for optimisation was 8.0p
2026-08-17 15:25:03.439513: Low import rate windows [0: 08-17 15:00:00 - 08-17 15:30:00 @ 33.75, 1: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 2: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 3: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 4: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 5: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 6: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 7: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 8: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 9: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 10: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 11: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 12: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 13: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 14: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 15: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 16: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 17: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 18: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 19: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 20: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 21: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 22: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 23: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 24: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 25: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 26: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 27: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 28: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 29: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 30: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 31: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 32: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 33: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 34: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 35: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 36: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 37: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 38: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 39: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 40: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 41: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 42: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 43: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 44: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 45: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 46: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 47: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 48: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 49: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 50: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 51: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 52: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 53: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 54: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 55: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 56: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 57: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 58: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 59: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 60: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 61: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 62: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 63: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 64: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 65: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 66: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 67: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 68: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 69: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 70: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 71: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 72: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 73: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 74: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 75: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 76: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 77: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 78: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 79: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 80: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 81: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 82: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 83: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 84: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 85: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 86: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 87: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 88: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 89: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 90: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 91: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 92: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 93: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 94: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75]
2026-08-17 15:25:03.444939: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-17 15:25:03.445059: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:25:03.445133: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:25:03.445344: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:25:03.445423: No export window planned
2026-08-17 15:25:03.445526: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:25:03.445555: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:25:03.445664: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:25:03.445811: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:25:03.445863: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:25:03.445917: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:25:03.445988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446082: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446141: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446242: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:25:03.446367: Inverter 0 count register writes 0
2026-08-17 15:25:03.459253: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 15:25:03.463542: Total inverter register writes now 861
2026-08-17 15:25:03.491240: Info: Completed run status Demand
2026-08-17 15:25:03.496948: Info: record_status Demand
2026-08-17 15:25:03.502448: Saved current settings to /config/predbat_config.json
2026-08-17 15:25:03.502762: Compare, best tariff: current metric 104.68p
2026-08-17 15:25:34.594960: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:25:34.595228: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:25:34.595276: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:25:34.595423: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:25:34.595464: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:25:34.595486: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:25:34.595505: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:27:48.821453: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:27:48.821757: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:27:48.821841: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:27:48.822069: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:27:48.822121: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:27:48.822164: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:27:48.822201: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:29:49.034375: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:29:49.034596: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:29:49.034638: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:29:49.034791: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:29:49.034829: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:29:49.034850: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:29:49.034882: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:30:00.135317: --------------- PredBat - update at 2026-08-17 15:30:00+01:00 with clock skew 0 minutes, minutes now 930
2026-08-17 15:30:00.136170: Saved current settings to /config/predbat_config.json
2026-08-17 15:30:00.136291: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 15:30:00.136350: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:30:00.150052: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:30:00.150172: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:30:00.150378: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:30:00.150970: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:30:00.151153: Predbat mode is set to Control charge & discharge
2026-08-17 15:30:00.360523: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:30:00.360714: Using load_power data to fill gaps in load_today data
2026-08-17 15:30:01.201426: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:30:01.201640: Zero load period starting at 2026-08-17T10:54:00+0100 (276 minutes) for 189 minutes with base value 214.375
2026-08-17 15:30:01.202193: Processing 721 30-minute periods for power integration
2026-08-17 15:30:01.375549: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:30:01.375690: Car charging hold False, threshold 6.0kWh
2026-08-17 15:30:01.375727: Current data so far today: load 8.35kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:30:01.390068: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:30:01.390160: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:30:01.390796: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:30:01.390856: Standing charge is set to 46.63p
2026-08-17 15:30:01.482364: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.482652: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.482936: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.483132: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.483414: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.483710: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.483896: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.484118: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.484283: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:30:01.485421: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:30:01.485563: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:30:01.494161: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:30:01.494828: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:30:01.551800: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:30:01.551957: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:30:01.553275: High export rate found rates in range 99p to -99p
2026-08-17 15:30:01.641885: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:30:01.642009: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:30:01.655824: Battery level now 9.44kWh, -1hr ago 9.92kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -7.2p, rate_forward 6.87p
2026-08-17 15:30:01.656268: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:30:01.708361: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:30:01.708504: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:30:01.803390: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:30:01.832527: Today's load divergence 98.22%, in-day adjustment 87.71%, damping 0.95x, yesterday 68.37% today 98.31% blend 35.42%
2026-08-17 15:30:01.832623: Today's predicted so far 9.86kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 9.86kWh forecast extra.
2026-08-17 15:30:01.832656: Today's actual load so far 9.58kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 15:30:01.870566: Inverter 0: Type SK Sunsynk
2026-08-17 15:30:01.870679: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:30:01.870986: Reserve min: 7%, battery_min: 7%
2026-08-17 15:30:01.871116: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:30:01.871560: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 439W, current battery voltage 51.2V, grid power -55W, load power 504W, PV Power 0W
2026-08-17 15:30:01.871796: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:30:01.871972: Inverter 0 scheduled charge enable is False
2026-08-17 15:30:01.872037: Inverter 0 charge windows currently []
2026-08-17 15:30:01.872085: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:30:01.872272: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:30:01.872331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:30:01.872397: Inverter 0 scheduled discharge enable is False
2026-08-17 15:30:01.872624: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:30:01.872677: Inverter 0 discharge windows currently []
2026-08-17 15:30:01.872714: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:30:01.872754: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:30:01.872795: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:30:01.934737: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:30:01.934834: Plan was last updated on 2026-08-17 15:20:00+01:00 and is now 10.0 minutes old
2026-08-17 15:30:01.935066: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:30:01.935109: Best export window [ ]
2026-08-17 15:30:01.935943: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:30:01.939032: Load divergence over 8.0 hours mean 479.97W, min 353.4W, max 1063.8W, std dev 129.37W, divergence 13.48%
2026-08-17 15:30:01.957595: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:30:01.957706: LoadML is_calculating False
2026-08-17 15:30:01.957763: Creating pool of 12 processes to match your CPU count
2026-08-17 15:30:02.070234: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 602.68p, metric_keep 279.31kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.54kWh, PV 0.0kWh
2026-08-17 15:30:02.193570: Battery has 11.25 hours left - now at 9.44kWh
2026-08-17 15:30:02.234151: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 625.13p, metric_keep 280.78kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.55kWh, PV 0.0kWh
2026-08-17 15:30:02.315646: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 328.16p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.55kWh, PV 0.0kWh
2026-08-17 15:30:02.393276: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 325.88p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.54kWh, PV 0.0kWh
2026-08-17 15:30:02.393348: Saving plan best values to HA entities
2026-08-17 15:30:02.544254: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:30:02.549243: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:30:02.554606: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.54kWh, house 0.0kWh, export 0.0kWh, metric 325.88p, metric10 328.16p
2026-08-17 15:30:02.645674: Marginal costs baseline metric (no standing charge): 279.2488
2026-08-17 15:30:02.881289: Marginal energy costs matrix computed: min=8.0 max=27.56
2026-08-17 15:30:02.961801: Rate array import [{'start': 930, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 930, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:30:02.962617: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 15:30:02.962673: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:30:02.962715: - The battery is currently at 59% and is in eco mode for the next 8 hours.
2026-08-17 15:30:02.962750: - For the next 48 hours there will be no solar generation.
2026-08-17 15:30:02.962792: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:30:02.962814: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:30:02.962841:
2026-08-17 15:30:03.024592: Plan calculation took 1.09 seconds
2026-08-17 15:30:03.028517: No high rate period found
2026-08-17 15:30:03.077504: Import threshold used for optimisation was 8.0p
2026-08-17 15:30:03.132499: Low import rate windows [0: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 1: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 2: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 3: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 4: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 5: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 6: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 7: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 8: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 9: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 10: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 11: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 12: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 13: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 14: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 15: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 16: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 17: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 18: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 19: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 20: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 21: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 22: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 23: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 24: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 25: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 26: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 27: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 28: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 29: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 30: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 31: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 32: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 33: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 34: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 35: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 36: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 37: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 38: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 39: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 40: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 41: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 42: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 43: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 44: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 45: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 46: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 47: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 48: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 49: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 50: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 51: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 52: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 53: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 54: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 55: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 56: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 57: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 58: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 59: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 60: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 61: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 62: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 63: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 64: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 65: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 66: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 67: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 68: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 69: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 70: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 71: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 72: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 73: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 74: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 75: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 76: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 77: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 78: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 79: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 80: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 81: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 82: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 83: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 84: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 85: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 86: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 87: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 88: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 89: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 90: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 91: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 92: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 93: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75]
2026-08-17 15:30:03.139342: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-17 15:30:03.139473: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:30:03.139573: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:30:03.139818: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:30:03.139985: No export window planned
2026-08-17 15:30:03.140156: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:30:03.140212: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:30:03.140361: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:30:03.140539: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:30:03.140601: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:30:03.140670: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:30:03.140755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.140794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.140822: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.140849: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.140873: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.140903: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.140950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141160: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:03.141209: Inverter 0 count register writes 0
2026-08-17 15:30:03.159540: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 15:30:03.159695: Recompute is saving previous plan...
2026-08-17 15:30:03.162842: Best charge window [ 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0% ]
2026-08-17 15:30:03.162943: Best export window [ ]
2026-08-17 15:30:03.163772: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:30:03.166902: Load divergence over 8.0 hours mean 479.97W, min 353.4W, max 1063.8W, std dev 129.37W, divergence 13.48%
2026-08-17 15:30:03.184887: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:30:03.185017: LoadML is_calculating False
2026-08-17 15:30:03.185082: Creating pool of 12 processes to match your CPU count
2026-08-17 15:30:03.272530: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 15:30:03.274420: Optimise levels pass started at 2026-08-17 15:30:03
2026-08-17 15:30:03.274480: Optimise all windows, total charge 94 export 1
2026-08-17 15:30:03.993770: >> Region optimisation pass width 960 gives best_metric 363.96p, best_cost 415.35p, best_cycle 47.16kWh, best_import 33.55kWh
2026-08-17 15:30:04.226497: >> Region optimisation pass width 480 gives best_metric 363.96p, best_cost 415.35p, best_cycle 47.16kWh, best_import 33.55kWh
2026-08-17 15:30:04.893424: >> Region optimisation pass width 240 gives best_metric 360.84p, best_cost 370.51p, best_cycle 47.95kWh, best_import 27.94kWh
2026-08-17 15:30:06.332098: >> Region optimisation pass width 120 gives best_metric 356.2p, best_cost 368.69p, best_cycle 44.77kWh, best_import 27.72kWh
2026-08-17 15:30:06.332368: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 62
2026-08-17 15:30:06.332478: Optimise levels pass ended at 2026-08-17 15:30:06, duration 3.1 seconds tried 291 combinations
2026-08-17 15:30:06.332564: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 356.2p, best_keep 0kWh, best_cycle 44.77kWh, best_carbon 0kg, best_import 27.72kWh
2026-08-17 15:30:06.354063: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 15:30:11.299159: Tweak plan optimisation started metric 259.74p, cost 272.51p
2026-08-17 15:30:11.628131: Tweak optimisation finished metric 259.74p, cost 272.51p, metric_keep 0kWh, cycle 29.55kWh, carbon 0kg, import 15.69kWh, changed 8 window(s)
2026-08-17 15:30:11.652116: Swap charge optimisation started metric 259.74p, cost 272.51p, min_improvement_swap 0.1p
2026-08-17 15:30:16.787168: Swap charge optimisation finished metric 259.74p, cost 272.51p
2026-08-17 15:30:16.893871: Raw charge windows [ 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:30:16.894501: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:30:16.894785: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:30:16.895051: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 15:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:30:16.933705: Previous plan best metric is 259.07 (cost 271.07) and new plan best metric is 259.74 (cost 272.51)
2026-08-17 15:30:16.933936: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 15:30:16.934107: Plan valid is now true after recompute was False
2026-08-17 15:30:16.964452: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 601.17p, metric_keep 278.73kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.35kWh, PV 0.0kWh
2026-08-17 15:30:17.067701: Battery has 11.25 hours left - now at 9.44kWh
2026-08-17 15:30:17.114726: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 623.54p, metric_keep 280.19kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.35kWh, PV 0.0kWh
2026-08-17 15:30:17.190060: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 321.01p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 15:30:17.283659: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 317.7p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.35kWh, PV 0.0kWh
2026-08-17 15:30:17.283753: Saving plan best values to HA entities
2026-08-17 15:30:17.427309: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:30:17.432480: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:30:17.437635: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.51kWh, house 0.0kWh, export 0.0kWh, metric 317.7p, metric10 321.01p
2026-08-17 15:30:17.507348: Marginal costs baseline metric (no standing charge): 271.0662
2026-08-17 15:30:17.744471: Marginal energy costs matrix computed: min=8.0 max=27.56
2026-08-17 15:30:17.806242: Rate array import [{'start': 930, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 930, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:30:17.806815: - Your estimated bill for today is £1.71 and tomorrow is £1.71
2026-08-17 15:30:17.806854: - Import rates are very expensive (33.8p - 46.4p) for the next 8 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:30:17.806873: - The battery is currently at 59% and is in eco mode for the next 8 hours.
2026-08-17 15:30:17.806888: - For the next 48 hours there will be no solar generation.
2026-08-17 15:30:17.806901: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:30:17.806914: - Your next charge slot will be in 8 hours where import rates will be cheap (8.0p).
2026-08-17 15:30:17.806929:
2026-08-17 15:30:17.863140: Plan calculation took 14.70 seconds
2026-08-17 15:30:17.863458: Inverter 0: Type SK Sunsynk
2026-08-17 15:30:17.863501: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:30:17.863697: Reserve min: 7%, battery_min: 7%
2026-08-17 15:30:17.863772: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:30:17.864537: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 427W, current battery voltage 51.2V, grid power -56W, load power 491W, PV Power 0W
2026-08-17 15:30:17.865004: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:30:17.865107: Inverter 0 scheduled charge enable is False
2026-08-17 15:30:17.865137: Inverter 0 charge windows currently []
2026-08-17 15:30:17.865167: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:30:17.865277: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:30:17.865309: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:30:17.865369: Inverter 0 scheduled discharge enable is False
2026-08-17 15:30:17.865501: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:30:17.865531: Inverter 0 discharge windows currently []
2026-08-17 15:30:17.865553: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:30:17.865571: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:30:17.865588: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:30:17.919423: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-17 15:30:17.919542: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:30:17.919617: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:30:17.919830: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:30:17.919960: No export window planned
2026-08-17 15:30:17.920101: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:30:17.920133: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:30:17.920249: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:30:17.920383: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:30:17.920426: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:30:17.920476: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:30:17.920550: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920576: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920624: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920662: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920735: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920758: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920815: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:30:17.920876: Inverter 0 count register writes 0
2026-08-17 15:30:17.941472: Total inverter register writes now 861
2026-08-17 15:30:17.974265: Info: Completed run status Demand
2026-08-17 15:30:17.979415: Info: record_status Demand
2026-08-17 15:30:17.985107: Saved current settings to /config/predbat_config.json
2026-08-17 15:30:17.985350: Compare, best tariff: current metric 104.68p
2026-08-17 15:30:49.089236: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:30:49.089462: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:30:49.089503: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:30:49.089649: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:30:49.089685: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:30:49.089704: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:30:49.089724: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:32:49.291657: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:32:49.291884: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:32:49.291974: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:32:49.292127: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:32:49.292166: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:32:49.292187: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:32:49.292206: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:34:49.533236: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:34:49.533465: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:34:49.533500: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:34:49.533651: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:34:49.533692: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:34:49.533714: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:34:49.533738: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:35:00.625472: --------------- PredBat - update at 2026-08-17 15:35:00+01:00 with clock skew 0 minutes, minutes now 935
2026-08-17 15:35:00.626378: Saved current settings to /config/predbat_config.json
2026-08-17 15:35:00.626554: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 15:35:00.626600: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:35:00.638874: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:35:00.638985: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:35:00.639231: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:35:00.639794: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:35:00.639982: Predbat mode is set to Control charge & discharge
2026-08-17 15:35:00.816294: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:35:00.816455: Using load_power data to fill gaps in load_today data
2026-08-17 15:35:01.627694: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:35:01.627889: Zero load period starting at 2026-08-17T10:54:00+0100 (281 minutes) for 189 minutes with base value 214.35
2026-08-17 15:35:01.628536: Processing 721 30-minute periods for power integration
2026-08-17 15:35:01.813715: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:35:01.813836: Car charging hold False, threshold 6.0kWh
2026-08-17 15:35:01.813880: Current data so far today: load 8.4kWh, import 7.8kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:35:01.830737: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:35:01.830843: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:35:01.831619: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:35:01.831689: Standing charge is set to 46.63p
2026-08-17 15:35:01.918898: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.919174: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.919357: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.919535: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.919754: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.919980: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.920230: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.920448: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.920674: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:35:01.921750: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:35:01.921888: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:35:01.927724: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:35:01.928144: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:35:01.971480: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:35:01.971629: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:35:01.973058: High export rate found rates in range 99p to -99p
2026-08-17 15:35:02.076389: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:35:02.076515: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:35:02.087453: Battery level now 9.44kWh, -1hr ago 9.85kWh, at midnight 10.49kWh, battery value change in the last hour -2.8p, change today -7.2p, rate_forward 6.87p
2026-08-17 15:35:02.087836: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:35:02.137850: Today's energy total net 7.8kWh, import 7.8kWh, export 0.0kWh, cost 146.95p, import 100.32p, export 0.0p, carbon 0.0kg
2026-08-17 15:35:02.137998: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:35:02.226434: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:35:02.253527: Today's load divergence 98.06%, in-day adjustment 87.71%, damping 0.95x, yesterday 68.37% today 98.15% blend 35.07%
2026-08-17 15:35:02.253625: Today's predicted so far 9.95kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.95kWh forecast extra.
2026-08-17 15:35:02.253676: Today's actual load so far 9.65kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 15:35:02.283500: Inverter 0: Type SK Sunsynk
2026-08-17 15:35:02.283610: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:35:02.283787: Reserve min: 7%, battery_min: 7%
2026-08-17 15:35:02.283873: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:35:02.284206: Inverter 0 SoC: 9.44kW 59%, current charge rate 5000W, current discharge rate 5250W, current battery power 423W, current battery voltage 51.2V, grid power -55W, load power 487W, PV Power 0W
2026-08-17 15:35:02.284376: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:35:02.284462: Inverter 0 scheduled charge enable is False
2026-08-17 15:35:02.284490: Inverter 0 charge windows currently []
2026-08-17 15:35:02.284516: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:35:02.284649: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:35:02.284687: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:35:02.284724: Inverter 0 scheduled discharge enable is False
2026-08-17 15:35:02.284848: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:35:02.284883: Inverter 0 discharge windows currently []
2026-08-17 15:35:02.284907: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:35:02.284932: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:35:02.284950: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:35:02.338987: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:35:02.339086: Plan was last updated on 2026-08-17 15:30:00+01:00 and is now 5.0 minutes old
2026-08-17 15:35:02.339286: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:35:02.339327: Best export window [ ]
2026-08-17 15:35:02.340227: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:35:02.343355: Load divergence over 8.0 hours mean 486.28W, min 334.8W, max 1002.6W, std dev 144.97W, divergence 14.91%
2026-08-17 15:35:02.362253: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:35:02.362344: LoadML is_calculating False
2026-08-17 15:35:02.362403: Creating pool of 12 processes to match your CPU count
2026-08-17 15:35:02.478701: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 601.59p, metric_keep 278.87kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.46kWh, PV 0.0kWh
2026-08-17 15:35:02.579165: Battery has 11.25 hours left - now at 9.44kWh
2026-08-17 15:35:02.614909: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 623.96p, metric_keep 280.34kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.47kWh, PV 0.0kWh
2026-08-17 15:35:02.683783: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 324.32p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.47kWh, PV 0.0kWh
2026-08-17 15:35:02.755018: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 321.62p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.46kWh, PV 0.0kWh
2026-08-17 15:35:02.755094: Saving plan best values to HA entities
2026-08-17 15:35:02.887399: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:35:02.892176: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:35:02.896882: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.0kWh, house 0.0kWh, export 0.0kWh, metric 321.62p, metric10 324.32p
2026-08-17 15:35:02.960610: Marginal costs baseline metric (no standing charge): 274.9877
2026-08-17 15:35:03.182411: Marginal energy costs matrix computed: min=8.0 max=27.96
2026-08-17 15:35:03.246153: Rate array import [{'start': 935, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 935, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:35:03.246738: - Your estimated bill for today is £1.70 and tomorrow is £1.71
2026-08-17 15:35:03.246775: - Import rates are very expensive (33.8p - 46.4p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:35:03.246794: - The battery is currently at 59% and is in eco mode for the next 7 hours.
2026-08-17 15:35:03.246809: - For the next 48 hours there will be no solar generation.
2026-08-17 15:35:03.246823: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:35:03.246836: - Your next charge slot will be in 7 hours where import rates will be cheap (8.0p).
2026-08-17 15:35:03.246855:
2026-08-17 15:35:03.293581: Plan calculation took 0.95 seconds
2026-08-17 15:35:03.296894: No high rate period found
2026-08-17 15:35:03.344524: Import threshold used for optimisation was 8.0p
2026-08-17 15:35:03.391351: Low import rate windows [0: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 1: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 2: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 3: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 4: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 5: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 6: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 7: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 8: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 9: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 10: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 11: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 12: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 13: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 14: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 15: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 16: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 17: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 18: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 19: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 20: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 21: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 22: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 23: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 24: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 25: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 26: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 27: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 28: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 29: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 30: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 31: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 32: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 33: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 34: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 35: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 36: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 37: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 38: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 39: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 40: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 41: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 42: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 43: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 44: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 45: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 46: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 47: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 48: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 49: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 50: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 51: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 52: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 53: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 54: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 55: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 56: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 57: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 58: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 59: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 60: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 61: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 62: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 63: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 64: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 65: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 66: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 67: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 68: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 69: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 70: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 71: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 72: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 73: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 74: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 75: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 76: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 77: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 78: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 79: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 80: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 81: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 82: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 83: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 84: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 85: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 86: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 87: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 88: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 89: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 90: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 91: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 92: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 93: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 94: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75]
2026-08-17 15:35:03.397088: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 59%, target 100%
2026-08-17 15:35:03.397240: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:35:03.397381: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:35:03.397684: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:35:03.397806: No export window planned
2026-08-17 15:35:03.397980: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:35:03.398022: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:35:03.398196: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:35:03.398413: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:35:03.398485: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:35:03.398607: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:35:03.398733: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.398781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.398839: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.398888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.398946: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399084: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399246: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:35:03.399575: Inverter 0 count register writes 0
2026-08-17 15:35:03.417167: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 15:35:03.422540: Total inverter register writes now 861
2026-08-17 15:35:03.449850: Info: Completed run status Demand
2026-08-17 15:35:03.454698: Info: record_status Demand
2026-08-17 15:35:03.460148: Saved current settings to /config/predbat_config.json
2026-08-17 15:35:03.460381: Compare, best tariff: current metric 104.68p
2026-08-17 15:35:34.559670: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:35:34.559953: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:35:34.559999: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:35:34.560172: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:35:34.560227: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:35:34.560262: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:35:34.560294: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:37:48.793293: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:37:48.793518: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:37:48.793559: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:37:48.793688: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:37:48.793726: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:37:48.793747: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:37:48.793765: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:39:39.165522: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 15:39:40.143193: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:39:40.143378: Zero load period starting at 2026-08-17T10:54:00+0100 (281 minutes) for 189 minutes with base value 411.2
2026-08-17 15:39:40.143857: Processing 1345 30-minute periods for power integration
2026-08-17 15:39:40.249690: ML Component: Car charging hold False, car energy reported load False
2026-08-17 15:39:40.349907: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:39:40.446069: ML Temperature data points: 49466
2026-08-17 15:39:40.692597: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 15:39:40.738433: ML Component: Data fetch completed, load data age 59.0 days, 17011 data points
2026-08-17 15:39:40.738572: ML Component: No training needed, model age is 1.33 hours
2026-08-17 15:39:40.738654: ML Component: Generating predictions load data age 59.0 days, 17011 data points
2026-08-17 15:39:40.879189: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0511 max_dow {0: 0.08182500006258488, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 15:39:41.650218: ML Component: Generated 576 predictions (total 26.04 kWh over 48h)
2026-08-17 15:39:41.687454: ML Component: Prediction cycle completed
2026-08-17 15:39:41.805788: ML Component: Saved 17011 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 15:39:49.018190: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:39:49.019384: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:39:49.019433: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:39:49.019546: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:39:49.019587: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:39:49.019609: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:39:49.019631: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:40:00.117207: --------------- PredBat - update at 2026-08-17 15:40:00+01:00 with clock skew 0 minutes, minutes now 940
2026-08-17 15:40:00.118075: Saved current settings to /config/predbat_config.json
2026-08-17 15:40:00.118237: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 15:40:00.118299: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:40:00.132609: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:40:00.132736: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:40:00.132942: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:40:00.133509: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:40:00.133637: Predbat mode is set to Control charge & discharge
2026-08-17 15:40:00.325197: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:40:00.325309: Using load_power data to fill gaps in load_today data
2026-08-17 15:40:01.136768: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:40:01.136960: Zero load period starting at 2026-08-17T10:54:00+0100 (286 minutes) for 189 minutes with base value 214.325
2026-08-17 15:40:01.137458: Processing 721 30-minute periods for power integration
2026-08-17 15:40:01.326805: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:40:01.326919: Car charging hold False, threshold 6.0kWh
2026-08-17 15:40:01.326962: Current data so far today: load 8.3kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:40:01.343783: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:40:01.343879: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:40:01.344629: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:40:01.344701: Standing charge is set to 46.63p
2026-08-17 15:40:01.428379: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.428640: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.428849: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.429046: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.429224: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.429395: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.429567: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.429732: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.429897: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:40:01.430987: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:40:01.431089: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:40:01.436206: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:40:01.436516: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:40:01.479833: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:40:01.479962: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:40:01.481261: High export rate found rates in range 99p to -99p
2026-08-17 15:40:01.577758: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:40:01.577866: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:40:01.589121: Battery level now 9.44kWh, -1hr ago 9.76kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -7.2p, rate_forward 6.87p
2026-08-17 15:40:01.589483: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:40:01.640535: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 15:40:01.640671: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:40:01.731350: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:40:01.759031: Today's load divergence 97.39%, in-day adjustment 87.4%, damping 0.95x, yesterday 68.37% today 97.52% blend 34.72%
2026-08-17 15:40:01.759131: Today's predicted so far 9.95kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 9.95kWh forecast extra.
2026-08-17 15:40:01.759162: Today's actual load so far 9.55kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 15:40:01.792040: Inverter 0: Type SK Sunsynk
2026-08-17 15:40:01.792123: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:40:01.792301: Reserve min: 7%, battery_min: 7%
2026-08-17 15:40:01.792375: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:40:01.792623: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 400W, current battery voltage 51.2V, grid power -53W, load power 461W, PV Power 0W
2026-08-17 15:40:01.792791: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:40:01.792876: Inverter 0 scheduled charge enable is False
2026-08-17 15:40:01.792911: Inverter 0 charge windows currently []
2026-08-17 15:40:01.792937: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:40:01.793060: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:40:01.793098: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:40:01.793133: Inverter 0 scheduled discharge enable is False
2026-08-17 15:40:01.793256: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:40:01.793292: Inverter 0 discharge windows currently []
2026-08-17 15:40:01.793314: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:40:01.793337: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:40:01.793362: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:40:01.857570: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:40:01.857671: Plan was last updated on 2026-08-17 15:30:00+01:00 and is now 10.0 minutes old
2026-08-17 15:40:01.857878: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:40:01.857921: Best export window [ ]
2026-08-17 15:40:01.858710: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:40:01.861965: Load divergence over 8.0 hours mean 489.47W, min 336.6W, max 1039.2W, std dev 149.4W, divergence 15.26%
2026-08-17 15:40:01.880446: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:40:01.880541: LoadML is_calculating False
2026-08-17 15:40:01.880602: Creating pool of 12 processes to match your CPU count
2026-08-17 15:40:01.999563: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.46p, metric_keep 279.57kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.4kWh, PV 0.0kWh
2026-08-17 15:40:02.134585: Battery has 11.0 hours left - now at 9.28kWh
2026-08-17 15:40:02.182914: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.86p, metric_keep 281.0kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.41kWh, PV 0.0kWh
2026-08-17 15:40:02.265360: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 332.09p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.41kWh, PV 0.0kWh
2026-08-17 15:40:02.345078: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.86p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.4kWh, PV 0.0kWh
2026-08-17 15:40:02.345170: Saving plan best values to HA entities
2026-08-17 15:40:02.505483: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:40:02.510475: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 15:40:02.516125: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.61kWh, house 0.0kWh, export 0.0kWh, metric 329.86p, metric10 332.09p
2026-08-17 15:40:02.583320: Marginal costs baseline metric (no standing charge): 283.2217
2026-08-17 15:40:02.829056: Marginal energy costs matrix computed: min=7.98 max=28.78
2026-08-17 15:40:02.896711: Rate array import [{'start': 940, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 940, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:40:02.897307: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 15:40:02.897347: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:40:02.897366: - The battery is currently at 58% and is in eco mode for the next 7 and three quarters hours.
2026-08-17 15:40:02.897381: - For the next 48 hours there will be no solar generation.
2026-08-17 15:40:02.897394: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:40:02.897408: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 15:40:02.897421:
2026-08-17 15:40:02.944376: Plan calculation took 1.09 seconds
2026-08-17 15:40:02.947282: No high rate period found
2026-08-17 15:40:02.995394: Import threshold used for optimisation was 8.0p
2026-08-17 15:40:03.047624: Low import rate windows [0: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 1: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 2: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 3: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 4: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 5: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 6: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 7: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 8: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 9: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 10: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 11: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 12: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 13: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 14: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 15: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 16: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 17: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 18: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 19: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 20: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 21: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 22: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 23: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 24: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 25: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 26: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 27: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 28: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 29: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 30: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 31: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 32: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 33: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 34: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 35: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 36: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 37: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 38: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 39: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 40: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 41: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 42: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 43: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 44: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 45: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 46: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 47: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 48: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 49: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 50: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 51: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 52: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 53: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 54: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 55: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 56: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 57: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 58: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 59: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 60: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 61: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 62: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 63: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 64: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 65: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 66: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 67: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 68: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 69: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 70: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 71: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 72: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 73: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 74: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 75: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 76: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 77: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 78: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 79: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 80: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 81: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 82: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 83: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 84: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 85: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 86: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 87: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 88: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 89: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 90: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 91: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 92: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 93: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 94: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75]
2026-08-17 15:40:03.053757: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-17 15:40:03.053889: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:40:03.054000: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:40:03.054252: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:40:03.054344: No export window planned
2026-08-17 15:40:03.054471: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:40:03.054506: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:40:03.054637: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:40:03.054812: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:40:03.054871: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:40:03.054933: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:40:03.055048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055185: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055210: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055234: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055333: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055394: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055495: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:03.055539: Inverter 0 count register writes 0
2026-08-17 15:40:03.071034: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 15:40:03.071240: Recompute is saving previous plan...
2026-08-17 15:40:03.075010: Best charge window [ 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0% ]
2026-08-17 15:40:03.075186: Best export window [ ]
2026-08-17 15:40:03.076213: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:40:03.080006: Load divergence over 8.0 hours mean 489.47W, min 336.6W, max 1039.2W, std dev 149.4W, divergence 15.26%
2026-08-17 15:40:03.098465: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:40:03.099341: LoadML is_calculating False
2026-08-17 15:40:03.099444: Creating pool of 12 processes to match your CPU count
2026-08-17 15:40:03.196568: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 15:40:03.198408: Optimise levels pass started at 2026-08-17 15:40:03
2026-08-17 15:40:03.198488: Optimise all windows, total charge 94 export 1
2026-08-17 15:40:03.555573: >> Region optimisation pass width 960 gives best_metric 368.55p, best_cost 419.15p, best_cycle 47.21kWh, best_import 33.6kWh
2026-08-17 15:40:03.751130: >> Region optimisation pass width 480 gives best_metric 368.55p, best_cost 419.15p, best_cycle 47.21kWh, best_import 33.6kWh
2026-08-17 15:40:04.071564: >> Region optimisation pass width 240 gives best_metric 368.55p, best_cost 419.15p, best_cycle 47.21kWh, best_import 33.6kWh
2026-08-17 15:40:04.994667: >> Region optimisation pass width 120 gives best_metric 368.55p, best_cost 419.15p, best_cycle 47.21kWh, best_import 33.6kWh
2026-08-17 15:40:04.994886: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 62
2026-08-17 15:40:04.994962: Optimise levels pass ended at 2026-08-17 15:40:04, duration 1.8 seconds tried 188 combinations
2026-08-17 15:40:04.995032: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 368.55p, best_keep 0.1kWh, best_cycle 47.21kWh, best_carbon 0kg, best_import 33.6kWh
2026-08-17 15:40:05.010829: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 15:40:09.470459: Tweak plan optimisation started metric 262.47p, cost 274.44p
2026-08-17 15:40:09.731008: Tweak optimisation finished metric 262.47p, cost 274.44p, metric_keep 0.1kWh, cycle 27.62kWh, carbon 0kg, import 15.51kWh, changed 8 window(s)
2026-08-17 15:40:09.747002: Swap charge optimisation started metric 262.47p, cost 274.44p, min_improvement_swap 0.1p
2026-08-17 15:40:14.851467: Swap charge optimisation finished metric 262.47p, cost 274.44p
2026-08-17 15:40:14.965047: Raw charge windows [ 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:40:14.965520: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:40:14.965701: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:40:14.965819: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:40:14.998625: Previous plan best metric is 262.9 (cost 274.94) and new plan best metric is 262.47 (cost 274.44)
2026-08-17 15:40:14.998893: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 15:40:14.999046: Plan valid is now true after recompute was False
2026-08-17 15:40:15.024321: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.84p, metric_keep 278.98kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.2kWh, PV 0.0kWh
2026-08-17 15:40:15.112877: Battery has 11.0 hours left - now at 9.28kWh
2026-08-17 15:40:15.152555: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 627.17p, metric_keep 280.41kWh, min_soc 1.12kWh @ 08-18 02:15:00, load 30.19kWh, PV 0.0kWh
2026-08-17 15:40:15.243689: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 324.84p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.19kWh, PV 0.0kWh
2026-08-17 15:40:15.317766: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 321.57p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.2kWh, PV 0.0kWh
2026-08-17 15:40:15.317844: Saving plan best values to HA entities
2026-08-17 15:40:15.455011: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:40:15.460773: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 15:40:15.467274: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.58kWh, house 0.0kWh, export 0.0kWh, metric 321.57p, metric10 324.84p
2026-08-17 15:40:15.540409: Marginal costs baseline metric (no standing charge): 274.9375
2026-08-17 15:40:15.765744: Marginal energy costs matrix computed: min=7.98 max=28.78
2026-08-17 15:40:15.823120: Rate array import [{'start': 940, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 940, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:40:15.823662: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 15:40:15.823697: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:40:15.823715: - The battery is currently at 58% and is in eco mode for the next 7 and three quarters hours.
2026-08-17 15:40:15.823753: - For the next 48 hours there will be no solar generation.
2026-08-17 15:40:15.823770: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:40:15.823784: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 15:40:15.823797:
2026-08-17 15:40:15.872126: Plan calculation took 12.80 seconds
2026-08-17 15:40:15.872442: Inverter 0: Type SK Sunsynk
2026-08-17 15:40:15.872495: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:40:15.872692: Reserve min: 7%, battery_min: 7%
2026-08-17 15:40:15.872767: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:40:15.873144: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 400W, current battery voltage 51.2V, grid power -53W, load power 461W, PV Power 0W
2026-08-17 15:40:15.873391: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:40:15.873493: Inverter 0 scheduled charge enable is False
2026-08-17 15:40:15.873527: Inverter 0 charge windows currently []
2026-08-17 15:40:15.873557: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:40:15.873661: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:40:15.873707: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:40:15.873763: Inverter 0 scheduled discharge enable is False
2026-08-17 15:40:15.873892: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:40:15.873928: Inverter 0 discharge windows currently []
2026-08-17 15:40:15.873950: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:40:15.873969: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:40:15.874006: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:40:15.921633: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-17 15:40:15.921780: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:40:15.921845: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:40:15.922044: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:40:15.922143: No export window planned
2026-08-17 15:40:15.922250: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:40:15.922285: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:40:15.922413: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:40:15.922568: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:40:15.922619: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:40:15.922681: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:40:15.922807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.922873: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.922922: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.922959: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:40:15.923448: Inverter 0 count register writes 0
2026-08-17 15:40:15.943068: Total inverter register writes now 861
2026-08-17 15:40:15.972507: Info: Completed run status Demand
2026-08-17 15:40:15.977865: Info: record_status Demand
2026-08-17 15:40:15.984292: Saved current settings to /config/predbat_config.json
2026-08-17 15:40:15.984743: Compare, best tariff: current metric 104.68p
2026-08-17 15:40:49.085506: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:40:49.085721: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:40:49.085762: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:40:49.085889: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:40:49.085926: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:40:49.085947: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:40:49.085965: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:42:49.294292: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:42:49.294550: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:42:49.294584: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:42:49.294709: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:42:49.294747: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:42:49.294769: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:42:49.294786: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:44:49.518188: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:44:49.518517: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:44:49.518567: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:44:49.518788: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:44:49.518847: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:44:49.518891: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:44:49.518927: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:45:00.624070: --------------- PredBat - update at 2026-08-17 15:45:00+01:00 with clock skew 0 minutes, minutes now 945
2026-08-17 15:45:00.624857: Saved current settings to /config/predbat_config.json
2026-08-17 15:45:00.624978: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 15:45:00.625017: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:45:00.638345: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:45:00.638475: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:45:00.638729: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:45:00.639441: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:45:00.639580: Predbat mode is set to Control charge & discharge
2026-08-17 15:45:00.828187: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:45:00.828324: Using load_power data to fill gaps in load_today data
2026-08-17 15:45:01.548366: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:45:01.548513: Zero load period starting at 2026-08-17T10:54:00+0100 (291 minutes) for 189 minutes with base value 214.3
2026-08-17 15:45:01.548901: Processing 721 30-minute periods for power integration
2026-08-17 15:45:01.713068: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:45:01.713186: Car charging hold False, threshold 6.0kWh
2026-08-17 15:45:01.713223: Current data so far today: load 8.3kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:45:01.726733: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:45:01.726842: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:45:01.727561: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:45:01.727640: Standing charge is set to 46.63p
2026-08-17 15:45:01.823304: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.823833: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.824176: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.824473: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.824764: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.825106: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.825409: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.825639: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.825856: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:45:01.827545: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:45:01.827680: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:45:01.834392: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:45:01.834758: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:45:01.883353: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:45:01.883484: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:45:01.884959: High export rate found rates in range 99p to -99p
2026-08-17 15:45:01.993182: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:45:01.993325: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:45:02.003538: Battery level now 9.28kWh, -1hr ago 9.76kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -8.3p, rate_forward 6.87p
2026-08-17 15:45:02.003944: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:45:02.048989: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 15:45:02.049156: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:45:02.123508: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:45:02.146988: Today's load divergence 97.34%, in-day adjustment 87.47%, damping 0.95x, yesterday 68.37% today 97.47% blend 34.38%
2026-08-17 15:45:02.147068: Today's predicted so far 9.95kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 9.95kWh forecast extra.
2026-08-17 15:45:02.147093: Today's actual load so far 9.54kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 15:45:02.174865: Inverter 0: Type SK Sunsynk
2026-08-17 15:45:02.174947: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:45:02.175170: Reserve min: 7%, battery_min: 7%
2026-08-17 15:45:02.175268: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:45:02.175586: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 404W, current battery voltage 51.2V, grid power -52W, load power 462W, PV Power 0W
2026-08-17 15:45:02.175771: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:45:02.175895: Inverter 0 scheduled charge enable is False
2026-08-17 15:45:02.175987: Inverter 0 charge windows currently []
2026-08-17 15:45:02.176027: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:45:02.176190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:45:02.176234: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:45:02.176296: Inverter 0 scheduled discharge enable is False
2026-08-17 15:45:02.176480: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:45:02.176522: Inverter 0 discharge windows currently []
2026-08-17 15:45:02.176546: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:45:02.176588: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:45:02.176624: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:45:02.229536: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:45:02.229638: Plan was last updated on 2026-08-17 15:40:00+01:00 and is now 5.0 minutes old
2026-08-17 15:45:02.229887: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:45:02.229956: Best export window [ ]
2026-08-17 15:45:02.230901: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:45:02.234156: Load divergence over 8.0 hours mean 493.66W, min 331.2W, max 1005.0W, std dev 160.12W, divergence 16.22%
2026-08-17 15:45:02.252569: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:45:02.252676: LoadML is_calculating False
2026-08-17 15:45:02.252744: Creating pool of 12 processes to match your CPU count
2026-08-17 15:45:02.363392: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.74p, metric_keep 279.06kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.27kWh, PV 0.0kWh
2026-08-17 15:45:02.469524: Battery has 11.0 hours left - now at 9.28kWh
2026-08-17 15:45:02.513778: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 628.06p, metric_keep 280.51kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.26kWh, PV 0.0kWh
2026-08-17 15:45:02.585385: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 328.03p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.26kWh, PV 0.0kWh
2026-08-17 15:45:02.651685: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 325.28p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.27kWh, PV 0.0kWh
2026-08-17 15:45:02.651788: Saving plan best values to HA entities
2026-08-17 15:45:02.795775: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:45:02.800414: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:45:02.804893: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.04kWh, house 0.0kWh, export 0.0kWh, metric 325.28p, metric10 328.03p
2026-08-17 15:45:02.873951: Marginal costs baseline metric (no standing charge): 278.6444
2026-08-17 15:45:03.117497: Marginal energy costs matrix computed: min=8.0 max=29.17
2026-08-17 15:45:03.178800: Rate array import [{'start': 945, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 945, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:45:03.179412: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 15:45:03.179449: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:45:03.179468: - The battery is currently at 58% and is in eco mode for the next 7 and three quarters hours.
2026-08-17 15:45:03.179483: - For the next 48 hours there will be no solar generation.
2026-08-17 15:45:03.179497: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:45:03.179511: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 15:45:03.179524:
2026-08-17 15:45:03.226165: Plan calculation took 1.00 seconds
2026-08-17 15:45:03.229219: No high rate period found
2026-08-17 15:45:03.279411: Import threshold used for optimisation was 8.0p
2026-08-17 15:45:03.321462: Low import rate windows [0: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 1: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 2: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 3: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 4: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 5: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 6: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 7: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 8: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 9: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 10: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 11: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 12: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 13: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 14: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 15: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 16: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 17: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 18: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 19: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 20: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 21: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 22: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 23: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 24: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 25: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 26: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 27: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 28: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 29: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 30: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 31: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 32: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 33: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 34: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 35: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 36: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 37: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 38: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 39: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 40: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 41: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 42: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 43: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 44: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 45: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 46: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 47: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 48: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 49: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 50: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 51: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 52: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 53: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 54: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 55: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 56: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 57: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 58: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 59: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 60: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 61: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 62: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 63: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 64: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 65: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 66: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 67: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 68: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 69: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 70: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 71: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 72: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 73: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 74: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 75: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 76: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 77: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 78: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 79: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 80: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 81: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 82: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 83: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 84: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 85: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 86: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 87: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 88: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 89: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 90: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 91: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 92: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 93: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 94: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75]
2026-08-17 15:45:03.326168: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-17 15:45:03.326261: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:45:03.326373: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:45:03.326612: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:45:03.326686: No export window planned
2026-08-17 15:45:03.326809: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:45:03.326841: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:45:03.326948: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:45:03.327087: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:45:03.327136: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:45:03.327186: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:45:03.327261: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327336: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327377: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:45:03.327617: Inverter 0 count register writes 0
2026-08-17 15:45:03.340514: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 15:45:03.344801: Total inverter register writes now 861
2026-08-17 15:45:03.373209: Info: Completed run status Demand
2026-08-17 15:45:03.378769: Info: record_status Demand
2026-08-17 15:45:03.384012: Saved current settings to /config/predbat_config.json
2026-08-17 15:45:03.384334: Compare, best tariff: current metric 104.68p
2026-08-17 15:45:34.478135: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:45:34.478383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:45:34.478431: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:45:34.478573: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:45:34.478637: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:45:34.478661: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:45:34.478688: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:47:48.713199: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:47:48.713527: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:47:48.713581: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:47:48.713802: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:47:48.713844: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:47:48.713871: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:47:48.713904: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:49:48.930337: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:49:48.930595: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:49:48.930681: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:49:48.930888: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:49:48.930933: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:49:48.930967: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:49:48.931009: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:50:00.010822: --------------- PredBat - update at 2026-08-17 15:50:00+01:00 with clock skew 0 minutes, minutes now 950
2026-08-17 15:50:00.011860: Saved current settings to /config/predbat_config.json
2026-08-17 15:50:00.012088: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 15:50:00.012152: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:50:00.042179: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:50:00.042363: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:50:00.042655: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:50:00.043375: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:50:00.043564: Predbat mode is set to Control charge & discharge
2026-08-17 15:50:00.240115: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:50:00.240249: Using load_power data to fill gaps in load_today data
2026-08-17 15:50:00.913967: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:50:00.914134: Zero load period starting at 2026-08-17T10:54:00+0100 (296 minutes) for 189 minutes with base value 214.275
2026-08-17 15:50:00.914584: Processing 721 30-minute periods for power integration
2026-08-17 15:50:01.101856: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:50:01.101994: Car charging hold False, threshold 6.0kWh
2026-08-17 15:50:01.102060: Current data so far today: load 8.43kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:50:01.118627: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:50:01.118729: Cars: SoC: [53.326]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:50:01.119487: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:50:01.119609: Standing charge is set to 46.63p
2026-08-17 15:50:01.203283: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.203524: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.203728: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.203961: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.204175: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.204357: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.204558: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.204733: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.204895: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:50:01.206021: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:50:01.206127: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:50:01.212761: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:50:01.213270: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:50:01.271301: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:50:01.271421: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:50:01.272744: High export rate found rates in range 99p to -99p
2026-08-17 15:50:01.387254: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:50:01.387392: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:50:01.398581: Battery level now 9.28kWh, -1hr ago 9.76kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -8.3p, rate_forward 6.87p
2026-08-17 15:50:01.398886: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:50:01.457434: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 15:50:01.457656: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:50:01.550368: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:50:01.572353: Today's load divergence 97.88%, in-day adjustment 87.91%, damping 0.95x, yesterday 68.37% today 97.99% blend 34.03%
2026-08-17 15:50:01.572428: Today's predicted so far 9.98kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 9.98kWh forecast extra.
2026-08-17 15:50:01.572454: Today's actual load so far 9.65kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 15:50:01.601894: Inverter 0: Type SK Sunsynk
2026-08-17 15:50:01.601971: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:50:01.602118: Reserve min: 7%, battery_min: 7%
2026-08-17 15:50:01.602180: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:50:01.602411: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 407W, current battery voltage 51.2V, grid power -54W, load power 467W, PV Power 0W
2026-08-17 15:50:01.602546: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:50:01.602621: Inverter 0 scheduled charge enable is False
2026-08-17 15:50:01.602649: Inverter 0 charge windows currently []
2026-08-17 15:50:01.602671: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:50:01.602761: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:50:01.602790: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:50:01.602821: Inverter 0 scheduled discharge enable is False
2026-08-17 15:50:01.602918: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:50:01.602943: Inverter 0 discharge windows currently []
2026-08-17 15:50:01.602961: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:50:01.602975: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:50:01.602990: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:50:01.655507: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:50:01.655623: Plan was last updated on 2026-08-17 15:40:00+01:00 and is now 10.0 minutes old
2026-08-17 15:50:01.655826: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:50:01.655868: Best export window [ ]
2026-08-17 15:50:01.656733: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:50:01.659959: Load divergence over 8.0 hours mean 496.82W, min 361.2W, max 977.4W, std dev 152.32W, divergence 15.33%
2026-08-17 15:50:01.678433: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:50:01.678514: LoadML is_calculating False
2026-08-17 15:50:01.678583: Creating pool of 12 processes to match your CPU count
2026-08-17 15:50:01.791100: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.06p, metric_keep 279.25kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.46kWh, PV 0.0kWh
2026-08-17 15:50:01.912094: Battery has 11.0 hours left - now at 9.28kWh
2026-08-17 15:50:01.951088: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.43p, metric_keep 280.71kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.46kWh, PV 0.0kWh
2026-08-17 15:50:02.026695: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 331.42p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.46kWh, PV 0.0kWh
2026-08-17 15:50:02.099659: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.28p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.46kWh, PV 0.0kWh
2026-08-17 15:50:02.099752: Saving plan best values to HA entities
2026-08-17 15:50:02.242780: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:50:02.247879: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:50:02.252908: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.54kWh, house 0.0kWh, export 0.0kWh, metric 329.28p, metric10 331.42p
2026-08-17 15:50:02.326727: Marginal costs baseline metric (no standing charge): 282.65
2026-08-17 15:50:02.598647: Marginal energy costs matrix computed: min=7.95 max=29.58
2026-08-17 15:50:02.666325: Rate array import [{'start': 950, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 950, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:50:02.667090: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 15:50:02.667137: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:50:02.667159: - The battery is currently at 58% and is in eco mode for the next 7 and three quarters hours.
2026-08-17 15:50:02.667178: - For the next 48 hours there will be no solar generation.
2026-08-17 15:50:02.667196: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:50:02.667212: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 15:50:02.667235:
2026-08-17 15:50:02.717886: Plan calculation took 1.06 seconds
2026-08-17 15:50:02.721494: No high rate period found
2026-08-17 15:50:02.769845: Import threshold used for optimisation was 8.0p
2026-08-17 15:50:02.820301: Low import rate windows [0: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 1: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 2: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 3: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 4: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 5: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 6: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 7: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 8: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 9: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 10: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 11: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 12: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 13: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 14: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 15: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 16: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 17: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 18: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 19: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 20: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 21: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 22: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 23: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 24: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 25: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 26: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 27: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 28: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 29: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 30: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 31: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 32: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 33: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 34: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 35: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 36: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 37: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 38: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 39: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 40: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 41: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 42: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 43: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 44: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 45: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 46: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 47: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 48: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 49: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 50: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 51: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 52: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 53: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 54: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 55: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 56: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 57: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 58: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 59: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 60: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 61: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 62: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 63: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 64: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 65: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 66: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 67: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 68: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 69: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 70: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 71: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 72: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 73: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 74: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 75: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 76: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 77: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 78: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 79: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 80: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 81: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 82: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 83: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 84: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 85: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 86: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 87: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 88: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 89: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 90: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 91: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 92: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 93: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 94: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75]
2026-08-17 15:50:02.825864: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-17 15:50:02.825981: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:50:02.826085: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:50:02.826386: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:50:02.826481: No export window planned
2026-08-17 15:50:02.826673: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:50:02.826713: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:50:02.826877: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:50:02.827074: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:50:02.827134: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:50:02.827199: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:50:02.827291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827348: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827411: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827465: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827628: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:02.827864: Inverter 0 count register writes 0
2026-08-17 15:50:02.842829: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 15:50:02.843017: Recompute is saving previous plan...
2026-08-17 15:50:02.845899: Best charge window [ 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0% ]
2026-08-17 15:50:02.845996: Best export window [ ]
2026-08-17 15:50:02.846928: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:50:02.849770: Load divergence over 8.0 hours mean 496.82W, min 361.2W, max 977.4W, std dev 152.32W, divergence 15.33%
2026-08-17 15:50:02.865037: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:50:02.865134: LoadML is_calculating False
2026-08-17 15:50:02.865188: Creating pool of 12 processes to match your CPU count
2026-08-17 15:50:02.939182: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 15:50:02.941160: Optimise levels pass started at 2026-08-17 15:50:02
2026-08-17 15:50:02.941237: Optimise all windows, total charge 94 export 1
2026-08-17 15:50:03.308017: >> Region optimisation pass width 960 gives best_metric 368.66p, best_cost 418.56p, best_cycle 47.19kWh, best_import 33.53kWh
2026-08-17 15:50:03.549372: >> Region optimisation pass width 480 gives best_metric 368.66p, best_cost 418.56p, best_cycle 47.19kWh, best_import 33.53kWh
2026-08-17 15:50:03.916969: >> Region optimisation pass width 240 gives best_metric 368.66p, best_cost 418.56p, best_cycle 47.19kWh, best_import 33.53kWh
2026-08-17 15:50:04.878187: >> Region optimisation pass width 120 gives best_metric 368.66p, best_cost 418.56p, best_cycle 47.19kWh, best_import 33.53kWh
2026-08-17 15:50:04.878460: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 62
2026-08-17 15:50:04.878561: Optimise levels pass ended at 2026-08-17 15:50:04, duration 1.9 seconds tried 188 combinations
2026-08-17 15:50:04.878651: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 368.66p, best_keep 0.11kWh, best_cycle 47.19kWh, best_carbon 0kg, best_import 33.53kWh
2026-08-17 15:50:04.899349: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 15:50:09.599050: Tweak plan optimisation started metric 261.86p, cost 273.79p
2026-08-17 15:50:09.885968: Tweak optimisation finished metric 261.86p, cost 273.79p, metric_keep 0.11kWh, cycle 27.49kWh, carbon 0kg, import 15.43kWh, changed 8 window(s)
2026-08-17 15:50:09.905787: Swap charge optimisation started metric 261.86p, cost 273.79p, min_improvement_swap 0.1p
2026-08-17 15:50:16.081680: Swap charge optimisation finished metric 261.86p, cost 273.79p
2026-08-17 15:50:16.215126: Raw charge windows [ 17-08 15:30:00 - 17-08 16:00:00 @ 33.75p 0%, 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:50:16.215539: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:50:16.215729: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:50:16.215845: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 15:50:16.252669: Previous plan best metric is 262.35 (cost 274.36) and new plan best metric is 261.86 (cost 273.79)
2026-08-17 15:50:16.252950: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 15:50:16.253170: Plan valid is now true after recompute was False
2026-08-17 15:50:16.282435: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.43p, metric_keep 278.66kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.26kWh, PV 0.0kWh
2026-08-17 15:50:16.377841: Battery has 11.0 hours left - now at 9.28kWh
2026-08-17 15:50:16.419734: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.73p, metric_keep 280.12kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.25kWh, PV 0.0kWh
2026-08-17 15:50:16.490329: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 324.16p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.25kWh, PV 0.0kWh
2026-08-17 15:50:16.562090: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 320.99p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.26kWh, PV 0.0kWh
2026-08-17 15:50:16.562186: Saving plan best values to HA entities
2026-08-17 15:50:16.707776: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:50:16.712161: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 15:50:16.716437: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0.0kWh, export 0.0kWh, metric 320.99p, metric10 324.16p
2026-08-17 15:50:16.785967: Marginal costs baseline metric (no standing charge): 274.3577
2026-08-17 15:50:17.093154: Marginal energy costs matrix computed: min=7.95 max=29.58
2026-08-17 15:50:17.177782: Rate array import [{'start': 950, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 950, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:50:17.178346: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 15:50:17.178387: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:50:17.178421: - The battery is currently at 58% and is in eco mode for the next 7 and three quarters hours.
2026-08-17 15:50:17.178437: - For the next 48 hours there will be no solar generation.
2026-08-17 15:50:17.178451: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:50:17.178465: - Your next charge slot will be in 7 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 15:50:17.178482:
2026-08-17 15:50:17.225317: Plan calculation took 14.38 seconds
2026-08-17 15:50:17.225628: Inverter 0: Type SK Sunsynk
2026-08-17 15:50:17.225668: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:50:17.225831: Reserve min: 7%, battery_min: 7%
2026-08-17 15:50:17.225893: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:50:17.226152: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 413W, current battery voltage 51.2V, grid power -55W, load power 474W, PV Power 0W
2026-08-17 15:50:17.226335: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:50:17.226421: Inverter 0 scheduled charge enable is False
2026-08-17 15:50:17.226445: Inverter 0 charge windows currently []
2026-08-17 15:50:17.226470: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:50:17.226575: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:50:17.226609: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:50:17.226642: Inverter 0 scheduled discharge enable is False
2026-08-17 15:50:17.226747: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:50:17.226776: Inverter 0 discharge windows currently []
2026-08-17 15:50:17.226794: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:50:17.226809: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:50:17.226826: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:50:17.271502: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-17 15:50:17.271644: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:50:17.271706: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:50:17.271856: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:50:17.271949: No export window planned
2026-08-17 15:50:17.272050: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:50:17.272079: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:50:17.272191: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:50:17.272322: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:50:17.272366: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:50:17.272413: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:50:17.272487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272543: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272633: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272677: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:50:17.272898: Inverter 0 count register writes 0
2026-08-17 15:50:17.289909: Total inverter register writes now 861
2026-08-17 15:50:17.316623: Info: Completed run status Demand
2026-08-17 15:50:17.321896: Info: record_status Demand
2026-08-17 15:50:17.327604: Saved current settings to /config/predbat_config.json
2026-08-17 15:50:17.327858: Compare, best tariff: current metric 104.68p
2026-08-17 15:50:49.428140: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:50:49.428367: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:50:49.428413: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:50:49.428736: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:50:49.428780: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:50:49.428803: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:50:49.428822: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:53:03.657439: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:53:03.657660: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:53:03.657734: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:53:03.657876: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:53:03.657915: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:53:03.657936: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:53:03.657954: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:54:51.992269: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 15:54:52.143317: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 15:55:00.856267: --------------- PredBat - update at 2026-08-17 15:55:00+01:00 with clock skew 0 minutes, minutes now 955
2026-08-17 15:55:00.856984: Saved current settings to /config/predbat_config.json
2026-08-17 15:55:00.857132: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 15:55:00.857211: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 15:55:00.894659: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 15:55:00.894857: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 15:55:00.895151: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 15:55:00.895841: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 15:55:00.896121: Predbat mode is set to Control charge & discharge
2026-08-17 15:55:01.128450: Found 21602 load_today datapoints going back 28 days
2026-08-17 15:55:01.128595: Using load_power data to fill gaps in load_today data
2026-08-17 15:55:01.929147: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 15:55:01.929367: Zero load period starting at 2026-08-17T10:54:00+0100 (301 minutes) for 189 minutes with base value 214.25
2026-08-17 15:55:01.930005: Processing 721 30-minute periods for power integration
2026-08-17 15:55:02.125269: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 15:55:02.125394: Car charging hold False, threshold 6.0kWh
2026-08-17 15:55:02.125451: Current data so far today: load 8.45kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 15:55:02.141782: Car 0 using Octopus Intelligent is unplugged
2026-08-17 15:55:02.141881: Cars: SoC: [52.74]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 15:55:02.142626: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 15:55:02.142696: Standing charge is set to 46.63p
2026-08-17 15:55:02.231995: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.232245: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.232429: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.232610: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.232801: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.232983: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.233155: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.233320: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.233481: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 15:55:02.234525: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 15:55:02.234624: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 15:55:02.240162: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 15:55:02.240495: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 15:55:02.284957: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 15:55:02.285262: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 15:55:02.286674: High export rate found rates in range 99p to -99p
2026-08-17 15:55:02.387322: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 15:55:02.387450: Car 0 on Octopus Intelligent, no active plan
2026-08-17 15:55:02.398642: Battery level now 9.28kWh, -1hr ago 9.6kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -8.3p, rate_forward 6.87p
2026-08-17 15:55:02.399099: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 15:55:02.451332: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 15:55:02.451466: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 15:55:02.528031: Using weighted-bucket historical load forecast over 14 days
2026-08-17 15:55:02.550417: Today's load divergence 97.88%, in-day adjustment 88.01%, damping 0.95x, yesterday 68.37% today 97.99% blend 33.68%
2026-08-17 15:55:02.550718: Today's predicted so far 10.01kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 10.01kWh forecast extra.
2026-08-17 15:55:02.550759: Today's actual load so far 9.68kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 15:55:02.578754: Inverter 0: Type SK Sunsynk
2026-08-17 15:55:02.578835: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 15:55:02.578980: Reserve min: 7%, battery_min: 7%
2026-08-17 15:55:02.579036: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 15:55:02.579252: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 402W, current battery voltage 51.2V, grid power -53W, load power 465W, PV Power 0W
2026-08-17 15:55:02.579381: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:55:02.579451: Inverter 0 scheduled charge enable is False
2026-08-17 15:55:02.579479: Inverter 0 charge windows currently []
2026-08-17 15:55:02.579501: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 15:55:02.579589: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:55:02.579618: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:55:02.579647: Inverter 0 scheduled discharge enable is False
2026-08-17 15:55:02.579746: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:55:02.579788: Inverter 0 discharge windows currently []
2026-08-17 15:55:02.579807: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:55:02.579822: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:55:02.579841: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:55:02.630428: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 15:55:02.630514: Plan was last updated on 2026-08-17 15:50:00+01:00 and is now 5.0 minutes old
2026-08-17 15:55:02.630680: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 15:55:02.630713: Best export window [ ]
2026-08-17 15:55:02.631392: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 15:55:02.633915: Load divergence over 8.0 hours mean 499.99W, min 344.4W, max 1032.6W, std dev 161.39W, divergence 16.14%
2026-08-17 15:55:02.649051: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 15:55:02.649144: LoadML is_calculating False
2026-08-17 15:55:02.649195: Creating pool of 12 processes to match your CPU count
2026-08-17 15:55:02.754909: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.13p, metric_keep 278.76kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.35kWh, PV 0.0kWh
2026-08-17 15:55:02.866899: Battery has 11.0 hours left - now at 9.28kWh
2026-08-17 15:55:02.902305: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.52p, metric_keep 280.24kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 15:55:02.967966: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 327.42p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 15:55:03.047506: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 324.78p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.35kWh, PV 0.0kWh
2026-08-17 15:55:03.047596: Saving plan best values to HA entities
2026-08-17 15:55:03.221414: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 15:55:03.226130: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 15:55:03.231124: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.98kWh, house 0kWh, export 0.0kWh, metric 324.78p, metric10 327.42p
2026-08-17 15:55:03.367534: Marginal costs baseline metric (no standing charge): 278.1474
2026-08-17 15:55:03.644608: Marginal energy costs matrix computed: min=8.0 max=29.97
2026-08-17 15:55:03.716671: Rate array import [{'start': 955, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 955, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 15:55:03.717418: - Your estimated bill for today is £1.75 and tomorrow is £1.71
2026-08-17 15:55:03.717469: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 15:55:03.717496: - The battery is currently at 58% and is in eco mode for the next 7 and a half hours.
2026-08-17 15:55:03.717515: - For the next 48 hours there will be no solar generation.
2026-08-17 15:55:03.717533: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 15:55:03.717554: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-17 15:55:03.717572:
2026-08-17 15:55:03.765594: Plan calculation took 1.13 seconds
2026-08-17 15:55:03.769702: No high rate period found
2026-08-17 15:55:03.820464: Import threshold used for optimisation was 8.0p
2026-08-17 15:55:03.871563: Low import rate windows [0: 08-17 15:30:00 - 08-17 16:00:00 @ 33.75, 1: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 2: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 3: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 4: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 5: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 6: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 7: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 8: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 9: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 10: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 11: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 12: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 13: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 14: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 15: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 16: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 17: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 18: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 19: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 20: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 21: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 22: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 23: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 24: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 25: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 26: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 27: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 28: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 29: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 30: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 31: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 32: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 33: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 34: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 35: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 36: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 37: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 38: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 39: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 40: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 41: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 42: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 43: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 44: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 45: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 46: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 47: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 48: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 49: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 50: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 51: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 52: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 53: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 54: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 55: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 56: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 57: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 58: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 59: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 60: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 61: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 62: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 63: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 64: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 65: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 66: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 67: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 68: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 69: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 70: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 71: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 72: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 73: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 74: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 75: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 76: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 77: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 78: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 79: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 80: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 81: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 82: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 83: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 84: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 85: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 86: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 87: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 88: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 89: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 90: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 91: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 92: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 93: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 94: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75]
2026-08-17 15:55:03.877859: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-17 15:55:03.877985: Inverter 0 disabled charge window while waiting for schedule (now 08-17 15:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 15:55:03.878092: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:55:03.878338: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:55:03.878431: No export window planned
2026-08-17 15:55:03.878578: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 15:55:03.878614: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 15:55:03.878746: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 15:55:03.878968: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 15:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 15:55:03.879030: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 15:55:03.879090: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 15:55:03.879171: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879211: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879241: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879272: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879323: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 15:55:03.879590: Inverter 0 count register writes 0
2026-08-17 15:55:03.896697: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 15:55:03.902317: Total inverter register writes now 861
2026-08-17 15:55:03.935803: Info: Completed run status Demand
2026-08-17 15:55:03.942328: Info: record_status Demand
2026-08-17 15:55:03.948136: Saved current settings to /config/predbat_config.json
2026-08-17 15:55:03.948398: Compare, best tariff: current metric 104.68p
2026-08-17 15:55:27.034493: Info: HAHistory: Pruning history data started.
2026-08-17 15:55:27.039091: Info: HAHistory: Pruning history data completed.
2026-08-17 15:55:34.040978: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:55:34.041213: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:55:34.041260: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:55:34.041395: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:55:34.041437: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:55:34.041458: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:55:34.041500: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:57:34.242222: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:57:34.242518: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:57:34.242583: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:57:34.242797: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:57:34.242855: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:57:34.242960: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:57:34.243008: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 15:59:34.480832: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 15:59:34.481140: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 15:59:34.481190: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 15:59:34.481366: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 15:59:34.481410: Note: Inverter does not support discharge freeze - disabled
2026-08-17 15:59:34.481436: Note: Inverter does not support charge freeze - disabled
2026-08-17 15:59:34.481477: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:00:00.589005: --------------- PredBat - update at 2026-08-17 16:00:00+01:00 with clock skew 0 minutes, minutes now 960
2026-08-17 16:00:00.589810: Saved current settings to /config/predbat_config.json
2026-08-17 16:00:00.589980: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 16:00:00.590039: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:00:00.602038: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:00:00.602150: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:00:00.602373: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:00:00.602922: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:00:00.603115: Predbat mode is set to Control charge & discharge
2026-08-17 16:00:00.779278: Found 21602 load_today datapoints going back 27 days
2026-08-17 16:00:00.779442: Using load_power data to fill gaps in load_today data
2026-08-17 16:00:01.688472: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:00:01.688946: Zero load period starting at 2026-08-17T10:54:00+0100 (306 minutes) for 189 minutes with base value 214.225
2026-08-17 16:00:01.689434: Processing 721 30-minute periods for power integration
2026-08-17 16:00:01.878621: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:00:01.879357: Car charging hold False, threshold 6.0kWh
2026-08-17 16:00:01.879428: Current data so far today: load 8.55kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:00:01.894281: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:00:01.894401: Cars: SoC: [52.154]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:00:01.895105: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:00:01.895169: Standing charge is set to 46.63p
2026-08-17 16:00:01.981446: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.981674: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.981827: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.981993: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.982134: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.982274: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.982417: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.982550: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.982686: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:00:01.983529: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:00:01.983616: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:00:01.988908: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:00:01.989276: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:00:02.027450: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:00:02.027552: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:00:02.028656: High export rate found rates in range 99p to -99p
2026-08-17 16:00:02.131084: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:00:02.131211: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:00:02.144940: Battery level now 9.28kWh, -1hr ago 9.6kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -8.3p, rate_forward 6.87p
2026-08-17 16:00:02.145320: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:00:02.202553: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:00:02.202702: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:00:02.283108: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:00:02.307544: Today's load divergence 97.88%, in-day adjustment 88.11%, damping 0.95x, yesterday 68.37% today 97.98% blend 33.33%
2026-08-17 16:00:02.307636: Today's predicted so far 10.12kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 10.12kWh forecast extra.
2026-08-17 16:00:02.307688: Today's actual load so far 9.79kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 16:00:02.339333: Inverter 0: Type SK Sunsynk
2026-08-17 16:00:02.339417: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:00:02.339639: Reserve min: 7%, battery_min: 7%
2026-08-17 16:00:02.339743: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:00:02.340128: Inverter 0 SoC: 9.28kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power 403W, current battery voltage 51.2V, grid power -52W, load power 463W, PV Power 0W
2026-08-17 16:00:02.340345: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:00:02.340458: Inverter 0 scheduled charge enable is False
2026-08-17 16:00:02.340508: Inverter 0 charge windows currently []
2026-08-17 16:00:02.340547: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:00:02.340709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:00:02.340751: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:00:02.340803: Inverter 0 scheduled discharge enable is False
2026-08-17 16:00:02.340993: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:00:02.341035: Inverter 0 discharge windows currently []
2026-08-17 16:00:02.341064: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:00:02.341106: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:00:02.341147: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:00:02.404311: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:00:02.404414: Plan was last updated on 2026-08-17 15:50:00+01:00 and is now 10.0 minutes old
2026-08-17 16:00:02.404697: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:00:02.404760: Best export window [ ]
2026-08-17 16:00:02.405620: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:00:02.409069: Load divergence over 8.0 hours mean 495.46W, min 353.4W, max 1063.8W, std dev 151.14W, divergence 15.25%
2026-08-17 16:00:02.431207: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:00:02.431317: LoadML is_calculating False
2026-08-17 16:00:02.431381: Creating pool of 12 processes to match your CPU count
2026-08-17 16:00:02.543749: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 605.48p, metric_keep 278.98kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.52kWh, PV 0.0kWh
2026-08-17 16:00:02.674150: Battery has 10.92 hours left - now at 9.28kWh
2026-08-17 16:00:02.724212: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 627.85p, metric_keep 280.43kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.52kWh, PV 0.0kWh
2026-08-17 16:00:02.806784: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 330.77p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.52kWh, PV 0.0kWh
2026-08-17 16:00:02.885427: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 328.75p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.52kWh, PV 0.0kWh
2026-08-17 16:00:02.885513: Saving plan best values to HA entities
2026-08-17 16:00:03.055083: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 16:00:03.061196: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:00:03.067157: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.47kWh, house 0.0kWh, export 0.0kWh, metric 328.75p, metric10 330.77p
2026-08-17 16:00:03.152256: Marginal costs baseline metric (no standing charge): 282.1112
2026-08-17 16:00:03.419563: Marginal energy costs matrix computed: min=8.0 max=30.34
2026-08-17 16:00:03.525558: Rate array import [{'start': 960, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 960, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:00:03.526264: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:00:03.526310: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:00:03.526330: - The battery is currently at 58% and is in eco mode for the next 7 and a half hours.
2026-08-17 16:00:03.526345: - For the next 48 hours there will be no solar generation.
2026-08-17 16:00:03.526359: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:00:03.526377: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-17 16:00:03.526390:
2026-08-17 16:00:03.580120: Plan calculation took 1.18 seconds
2026-08-17 16:00:03.582899: No high rate period found
2026-08-17 16:00:03.634447: Import threshold used for optimisation was 8.0p
2026-08-17 16:00:03.685634: Low import rate windows [0: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 1: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 2: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 3: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 4: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 5: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 6: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 7: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 8: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 9: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 10: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 11: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 12: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 13: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 14: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 15: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 16: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 17: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 18: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 19: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 20: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 21: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 22: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 23: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 24: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 25: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 26: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 27: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 28: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 29: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 30: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 31: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 32: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 33: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 34: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 35: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 36: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 37: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 38: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 39: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 40: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 41: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 42: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 43: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 44: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 45: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 46: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 47: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 48: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 49: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 50: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 51: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 52: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 53: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 54: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 55: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 56: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 57: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 58: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 59: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 60: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 61: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 62: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 63: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 64: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 65: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 66: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 67: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 68: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 69: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 70: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 71: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 72: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 73: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 74: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 75: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 76: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 77: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 78: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 79: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 80: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 81: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 82: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 83: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 84: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 85: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 86: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 87: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 88: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 89: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 90: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 91: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 92: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 93: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75]
2026-08-17 16:00:03.691393: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 58%, target 100%
2026-08-17 16:00:03.691510: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:00:03.691583: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:00:03.691793: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:00:03.691887: No export window planned
2026-08-17 16:00:03.692065: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:00:03.692101: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:00:03.692292: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:00:03.692468: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:00:03.692523: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:00:03.692585: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:00:03.692657: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692690: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692712: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692733: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692776: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692796: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692849: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692943: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.692992: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.693014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.693040: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:03.693057: Inverter 0 count register writes 0
2026-08-17 16:00:03.706651: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 16:00:03.706778: Recompute is saving previous plan...
2026-08-17 16:00:03.709339: Best charge window [ 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0% ]
2026-08-17 16:00:03.709414: Best export window [ ]
2026-08-17 16:00:03.710110: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:00:03.712815: Load divergence over 8.0 hours mean 495.46W, min 353.4W, max 1063.8W, std dev 151.14W, divergence 15.25%
2026-08-17 16:00:03.729409: Calculating data from yesterday for savings calculation
2026-08-17 16:00:03.740359: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 16:00:03.783050: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 16:00:03.796155: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 16:00:03.814105: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 16:00:03.847184: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 16:00:03.925612: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 16:00:03.925792: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 16:00:03.937238: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:00:03.937357: LoadML is_calculating False
2026-08-17 16:00:03.937423: Creating pool of 12 processes to match your CPU count
2026-08-17 16:00:04.027588: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 16:00:04.029438: Optimise levels pass started at 2026-08-17 16:00:04
2026-08-17 16:00:04.029502: Optimise all windows, total charge 94 export 1
2026-08-17 16:00:04.737485: >> Region optimisation pass width 960 gives best_metric 368.72p, best_cost 418.06p, best_cycle 47.14kWh, best_import 33.47kWh
2026-08-17 16:00:04.974814: >> Region optimisation pass width 480 gives best_metric 368.72p, best_cost 418.06p, best_cycle 47.14kWh, best_import 33.47kWh
2026-08-17 16:00:05.324064: >> Region optimisation pass width 240 gives best_metric 368.04p, best_cost 409.42p, best_cycle 48.26kWh, best_import 32.39kWh
2026-08-17 16:00:06.322141: >> Region optimisation pass width 120 gives best_metric 366.55p, best_cost 382.19p, best_cycle 48.01kWh, best_import 28.98kWh
2026-08-17 16:00:06.322489: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 61
2026-08-17 16:00:06.322602: Optimise levels pass ended at 2026-08-17 16:00:06, duration 2.3 seconds tried 245 combinations
2026-08-17 16:00:06.322697: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 366.55p, best_keep 0kWh, best_cycle 48.01kWh, best_carbon 0kg, best_import 28.98kWh
2026-08-17 16:00:06.343056: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 16:00:11.255228: Tweak plan optimisation started metric 262.43p, cost 275.22p
2026-08-17 16:00:11.583360: Tweak optimisation finished metric 262.43p, cost 275.22p, metric_keep 0kWh, cycle 29.24kWh, carbon 0kg, import 15.61kWh, changed 8 window(s)
2026-08-17 16:00:11.604597: Swap charge optimisation started metric 262.43p, cost 275.22p, min_improvement_swap 0.1p
2026-08-17 16:00:16.395138: Swap charge optimisation finished metric 262.43p, cost 275.22p
2026-08-17 16:00:16.508671: Raw charge windows [ 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:00:16.510081: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:00:16.510437: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:00:16.510705: Filtered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:00:16.549906: Previous plan best metric is 261.89 (cost 273.93) and new plan best metric is 262.43 (cost 275.22)
2026-08-17 16:00:16.550161: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 16:00:16.550306: Plan valid is now true after recompute was False
2026-08-17 16:00:16.580217: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 603.97p, metric_keep 278.39kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.33kWh, PV 0.0kWh
2026-08-17 16:00:16.682132: Battery has 10.92 hours left - now at 9.28kWh
2026-08-17 16:00:16.730706: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.26p, metric_keep 279.85kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.32kWh, PV 0.0kWh
2026-08-17 16:00:16.819280: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 323.63p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.32kWh, PV 0.0kWh
2026-08-17 16:00:16.910551: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 320.56p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.33kWh, PV 0.0kWh
2026-08-17 16:00:16.910649: Saving plan best values to HA entities
2026-08-17 16:00:17.057568: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 16:00:17.062954: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:00:17.068677: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.45kWh, house 0.0kWh, export 0.0kWh, metric 320.56p, metric10 323.63p
2026-08-17 16:00:17.144871: Marginal costs baseline metric (no standing charge): 273.9285
2026-08-17 16:00:17.396980: Marginal energy costs matrix computed: min=8.0 max=30.34
2026-08-17 16:00:17.459569: Rate array import [{'start': 960, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 960, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:00:17.460185: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:00:17.460229: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:00:17.460248: - The battery is currently at 58% and is in eco mode for the next 7 and a half hours.
2026-08-17 16:00:17.460264: - For the next 48 hours there will be no solar generation.
2026-08-17 16:00:17.460278: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:00:17.460292: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-17 16:00:17.460306:
2026-08-17 16:00:17.512572: Plan calculation took 13.81 seconds
2026-08-17 16:00:17.512911: Inverter 0: Type SK Sunsynk
2026-08-17 16:00:17.512958: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:00:17.513158: Reserve min: 7%, battery_min: 7%
2026-08-17 16:00:17.513233: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:00:17.513533: Inverter 0 SoC: 9.14kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 402W, current battery voltage 51.2V, grid power -55W, load power 464W, PV Power 0W
2026-08-17 16:00:17.513754: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:00:17.513869: Inverter 0 scheduled charge enable is False
2026-08-17 16:00:17.513907: Inverter 0 charge windows currently []
2026-08-17 16:00:17.513937: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:00:17.514047: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:00:17.514086: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:00:17.514124: Inverter 0 scheduled discharge enable is False
2026-08-17 16:00:17.514246: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:00:17.514282: Inverter 0 discharge windows currently []
2026-08-17 16:00:17.514305: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:00:17.514328: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:00:17.514345: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:00:17.574352: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:00:17.574473: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:00:17.574529: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:00:17.574678: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:00:17.574747: No export window planned
2026-08-17 16:00:17.574856: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:00:17.574887: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:00:17.574999: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:00:17.575129: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:00:17.575172: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:00:17.575214: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:00:17.575292: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575345: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575370: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575390: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:00:17.575654: Inverter 0 count register writes 0
2026-08-17 16:00:17.593699: Total inverter register writes now 861
2026-08-17 16:00:17.641126: Info: Completed run status Demand
2026-08-17 16:00:17.646911: Info: record_status Demand
2026-08-17 16:00:17.653045: Saved current settings to /config/predbat_config.json
2026-08-17 16:00:17.653328: Compare, best tariff: current metric 104.68p
2026-08-17 16:00:48.747290: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:00:48.747536: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:00:48.747607: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:00:48.747849: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:00:48.747891: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:00:48.747945: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:00:48.747965: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:02:48.952980: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:02:48.953320: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:02:48.953379: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:02:48.953585: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:02:48.953638: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:02:48.953661: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:02:48.953679: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:04:49.184066: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:04:49.184292: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:04:49.184333: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:04:49.184464: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:04:49.184501: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:04:49.184522: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:04:49.184539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:05:00.271040: --------------- PredBat - update at 2026-08-17 16:05:00+01:00 with clock skew 0 minutes, minutes now 965
2026-08-17 16:05:00.271852: Saved current settings to /config/predbat_config.json
2026-08-17 16:05:00.272032: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 16:05:00.272090: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:05:00.284693: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:05:00.284839: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:05:00.285064: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:05:00.285607: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:05:00.285776: Predbat mode is set to Control charge & discharge
2026-08-17 16:05:00.490044: Found 21602 load_today datapoints going back 27 days
2026-08-17 16:05:00.491027: Using load_power data to fill gaps in load_today data
2026-08-17 16:05:01.373384: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:05:01.373534: Zero load period starting at 2026-08-17T10:54:00+0100 (311 minutes) for 189 minutes with base value 214.2
2026-08-17 16:05:01.373988: Processing 721 30-minute periods for power integration
2026-08-17 16:05:01.532340: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:05:01.532453: Car charging hold False, threshold 6.0kWh
2026-08-17 16:05:01.532494: Current data so far today: load 8.6kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:05:01.546231: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:05:01.546317: Cars: SoC: [52.154]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:05:01.547023: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:05:01.547087: Standing charge is set to 46.63p
2026-08-17 16:05:01.623847: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.624138: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.624340: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.624548: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.624736: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.624941: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.625098: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.625237: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.625374: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:05:01.626241: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:05:01.626328: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:05:01.630907: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:05:01.631194: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:05:01.666181: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:05:01.666286: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:05:01.667420: High export rate found rates in range 99p to -99p
2026-08-17 16:05:01.752625: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:05:01.752770: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:05:01.765753: Battery level now 9.28kWh, -1hr ago 9.6kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -8.3p, rate_forward 6.87p
2026-08-17 16:05:01.766205: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:05:01.849689: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:05:01.850174: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:05:01.952918: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:05:01.981174: Today's load divergence 97.59%, in-day adjustment 88.03%, damping 0.95x, yesterday 68.37% today 97.71% blend 32.99%
2026-08-17 16:05:01.981267: Today's predicted so far 10.23kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 10.23kWh forecast extra.
2026-08-17 16:05:01.981300: Today's actual load so far 9.86kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 16:05:02.015635: Inverter 0: Type SK Sunsynk
2026-08-17 16:05:02.015757: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:05:02.016075: Reserve min: 7%, battery_min: 7%
2026-08-17 16:05:02.016173: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:05:02.016445: Inverter 0 SoC: 9.14kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 377W, current battery voltage 51.2V, grid power -55W, load power 437W, PV Power 0W
2026-08-17 16:05:02.016596: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:05:02.016681: Inverter 0 scheduled charge enable is False
2026-08-17 16:05:02.016714: Inverter 0 charge windows currently []
2026-08-17 16:05:02.016756: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:05:02.016876: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:05:02.016911: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:05:02.016947: Inverter 0 scheduled discharge enable is False
2026-08-17 16:05:02.017065: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:05:02.017101: Inverter 0 discharge windows currently []
2026-08-17 16:05:02.017123: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:05:02.017141: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:05:02.017163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:05:02.068627: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:05:02.068730: Plan was last updated on 2026-08-17 16:00:00+01:00 and is now 5.0 minutes old
2026-08-17 16:05:02.068951: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:05:02.068990: Best export window [ ]
2026-08-17 16:05:02.069861: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:05:02.073038: Load divergence over 8.0 hours mean 490.86W, min 322.2W, max 1002.6W, std dev 153.74W, divergence 15.66%
2026-08-17 16:05:02.091663: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:05:02.091800: LoadML is_calculating False
2026-08-17 16:05:02.091860: Creating pool of 12 processes to match your CPU count
2026-08-17 16:05:02.219124: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.31p, metric_keep 279.06kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.42kWh, PV 0.0kWh
2026-08-17 16:05:02.335314: Battery has 10.67 hours left - now at 9.14kWh
2026-08-17 16:05:02.376189: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.59p, metric_keep 280.47kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.42kWh, PV 0.0kWh
2026-08-17 16:05:02.452082: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 327.99p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 16:05:02.528687: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 325.31p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.42kWh, PV 0.0kWh
2026-08-17 16:05:02.528791: Saving plan best values to HA entities
2026-08-17 16:05:02.687969: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:05:02.693069: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:05:02.697856: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.04kWh, house 0.0kWh, export 0.0kWh, metric 325.31p, metric10 327.99p
2026-08-17 16:05:02.770327: Marginal costs baseline metric (no standing charge): 278.6752
2026-08-17 16:05:03.005763: Marginal energy costs matrix computed: min=8.0 max=30.1
2026-08-17 16:05:03.069201: Rate array import [{'start': 965, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 965, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:05:03.069798: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:05:03.069836: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:05:03.069855: - The battery is currently at 57% and is in eco mode for the next 7 and a half hours.
2026-08-17 16:05:03.069871: - For the next 48 hours there will be no solar generation.
2026-08-17 16:05:03.069885: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:05:03.069899: - Your next charge slot will be in 7 and a half hours where import rates will be cheap (8.0p).
2026-08-17 16:05:03.069916:
2026-08-17 16:05:03.123754: Plan calculation took 1.05 seconds
2026-08-17 16:05:03.127587: No high rate period found
2026-08-17 16:05:03.183066: Import threshold used for optimisation was 8.0p
2026-08-17 16:05:03.233673: Low import rate windows [0: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 1: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 2: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 3: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 4: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 5: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 6: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 7: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 8: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 9: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 10: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 11: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 12: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 13: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 14: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 15: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 16: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 17: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 18: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 19: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 20: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 21: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 22: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 23: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 24: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 25: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 26: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 27: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 28: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 29: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 30: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 31: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 32: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 33: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 34: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 35: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 36: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 37: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 38: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 39: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 40: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 41: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 42: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 43: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 44: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 45: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 46: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 47: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 48: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 49: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 50: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 51: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 52: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 53: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 54: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 55: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 56: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 57: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 58: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 59: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 60: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 61: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 62: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 63: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 64: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 65: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 66: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 67: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 68: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 69: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 70: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 71: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 72: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 73: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 74: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 75: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 76: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 77: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 78: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 79: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 80: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 81: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 82: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 83: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 84: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 85: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 86: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 87: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 88: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 89: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 90: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 91: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 92: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 93: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 94: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75]
2026-08-17 16:05:03.242574: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:05:03.242782: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:05:03.242927: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:05:03.243312: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:05:03.243450: No export window planned
2026-08-17 16:05:03.243659: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:05:03.243715: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:05:03.244017: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:05:03.244219: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:05:03.244285: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:05:03.244349: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:05:03.244436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244470: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244506: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244535: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244901: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.244959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.245005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.245067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:05:03.245118: Inverter 0 count register writes 0
2026-08-17 16:05:03.266078: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 16:05:03.273665: Total inverter register writes now 861
2026-08-17 16:05:03.317534: Info: Completed run status Demand
2026-08-17 16:05:03.324574: Info: record_status Demand
2026-08-17 16:05:03.332931: Saved current settings to /config/predbat_config.json
2026-08-17 16:05:03.333349: Compare, best tariff: current metric 104.68p
2026-08-17 16:05:34.444464: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:05:34.444756: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:05:34.444810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:05:34.444999: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:05:34.445055: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:05:34.445099: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:05:34.445134: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:07:48.667851: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:07:48.668177: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:07:48.668231: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:07:48.668423: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:07:48.668469: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:07:48.668494: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:07:48.668537: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:09:43.410457: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 16:09:44.466377: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:09:44.466768: Zero load period starting at 2026-08-17T10:54:00+0100 (311 minutes) for 189 minutes with base value 396.3
2026-08-17 16:09:44.467314: Processing 1297 30-minute periods for power integration
2026-08-17 16:09:44.562630: ML Component: Car charging hold False, car energy reported load False
2026-08-17 16:09:44.641714: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:09:44.719167: ML Temperature data points: 47996
2026-08-17 16:09:44.928508: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 16:09:44.961685: ML Component: Data fetch completed, load data age 59.0 days, 17017 data points
2026-08-17 16:09:44.961865: ML Component: No training needed, model age is 1.83 hours
2026-08-17 16:09:44.961969: ML Component: Generating predictions load data age 59.0 days, 17017 data points
2026-08-17 16:09:45.103579: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0394 max_dow {0: 0.08182500006258488, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 16:09:45.645749: ML Component: Generated 576 predictions (total 26.14 kWh over 48h)
2026-08-17 16:09:45.690998: ML Component: Prediction cycle completed
2026-08-17 16:09:45.813129: ML Component: Saved 17017 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 16:09:49.108827: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:09:49.109124: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:09:49.109198: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:09:49.109378: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:09:49.109429: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:09:49.109465: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:09:49.109497: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:10:00.904967: --------------- PredBat - update at 2026-08-17 16:10:00+01:00 with clock skew 0 minutes, minutes now 970
2026-08-17 16:10:00.905790: Saved current settings to /config/predbat_config.json
2026-08-17 16:10:00.905928: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 16:10:00.905972: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:10:00.918399: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:10:00.918522: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:10:00.918753: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:10:00.919359: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:10:00.919512: Predbat mode is set to Control charge & discharge
2026-08-17 16:10:01.081454: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:10:01.081794: Using load_power data to fill gaps in load_today data
2026-08-17 16:10:01.821456: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:10:01.821654: Zero load period starting at 2026-08-17T10:54:00+0100 (316 minutes) for 189 minutes with base value 214.175
2026-08-17 16:10:01.822198: Processing 721 30-minute periods for power integration
2026-08-17 16:10:02.013365: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:10:02.013477: Car charging hold False, threshold 6.0kWh
2026-08-17 16:10:02.013520: Current data so far today: load 8.65kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:10:02.030534: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:10:02.030640: Cars: SoC: [52.154]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:10:02.031400: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:10:02.031473: Standing charge is set to 46.63p
2026-08-17 16:10:02.115753: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.116088: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.116348: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.116606: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.116838: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.117065: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.117311: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.117529: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.117740: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:10:02.118843: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:10:02.118983: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:10:02.124442: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:10:02.124787: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:10:02.168914: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:10:02.169028: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:10:02.170470: High export rate found rates in range 99p to -99p
2026-08-17 16:10:02.265112: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:10:02.265238: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:10:02.277770: Battery level now 9.14kWh, -1hr ago 9.6kWh, at midnight 10.49kWh, battery value change in the last hour -3.19p, change today -9.29p, rate_forward 6.87p
2026-08-17 16:10:02.278075: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:10:02.334463: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:10:02.334617: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:10:02.425698: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:10:02.453162: Today's load divergence 97.82%, in-day adjustment 88.28%, damping 0.95x, yesterday 68.37% today 97.93% blend 32.64%
2026-08-17 16:10:02.453252: Today's predicted so far 10.22kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 10.22kWh forecast extra.
2026-08-17 16:10:02.453284: Today's actual load so far 9.88kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 16:10:02.487521: Inverter 0: Type SK Sunsynk
2026-08-17 16:10:02.487609: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:10:02.487784: Reserve min: 7%, battery_min: 7%
2026-08-17 16:10:02.487856: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:10:02.488176: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 376W, current battery voltage 51.2V, grid power -53W, load power 438W, PV Power 0W
2026-08-17 16:10:02.488339: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:10:02.488424: Inverter 0 scheduled charge enable is False
2026-08-17 16:10:02.488453: Inverter 0 charge windows currently []
2026-08-17 16:10:02.488498: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:10:02.488609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:10:02.488645: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:10:02.488680: Inverter 0 scheduled discharge enable is False
2026-08-17 16:10:02.488802: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:10:02.488838: Inverter 0 discharge windows currently []
2026-08-17 16:10:02.488861: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:10:02.488884: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:10:02.488902: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:10:02.544718: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:10:02.544815: Plan was last updated on 2026-08-17 16:00:00+01:00 and is now 10.0 minutes old
2026-08-17 16:10:02.545035: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:10:02.545076: Best export window [ ]
2026-08-17 16:10:02.545830: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:10:02.548979: Load divergence over 8.0 hours mean 492.34W, min 336.6W, max 1039.2W, std dev 155.45W, divergence 15.79%
2026-08-17 16:10:02.567861: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:10:02.568024: LoadML is_calculating False
2026-08-17 16:10:02.568081: Creating pool of 12 processes to match your CPU count
2026-08-17 16:10:02.671484: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.07p, metric_keep 279.35kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.55kWh, PV 0.0kWh
2026-08-17 16:10:02.792535: Battery has 10.58 hours left - now at 9.12kWh
2026-08-17 16:10:02.840419: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.4p, metric_keep 280.75kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.55kWh, PV 0.0kWh
2026-08-17 16:10:02.910039: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 331.55p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.55kWh, PV 0.0kWh
2026-08-17 16:10:02.976582: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.4p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.55kWh, PV 0.0kWh
2026-08-17 16:10:02.976660: Saving plan best values to HA entities
2026-08-17 16:10:03.111872: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:10:03.117004: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:10:03.122011: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.56kWh, house 0.0kWh, export 0.0kWh, metric 329.4p, metric10 331.55p
2026-08-17 16:10:03.232188: Marginal costs baseline metric (no standing charge): 282.7689
2026-08-17 16:10:03.473110: Marginal energy costs matrix computed: min=8.0 max=29.6
2026-08-17 16:10:03.542537: Rate array import [{'start': 970, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 970, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:10:03.543230: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:10:03.543271: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:10:03.543306: - The battery is currently at 57% and is in eco mode for the next 7 and a quarter hours.
2026-08-17 16:10:03.543322: - For the next 48 hours there will be no solar generation.
2026-08-17 16:10:03.543336: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:10:03.543350: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 16:10:03.543363:
2026-08-17 16:10:03.589593: Plan calculation took 1.04 seconds
2026-08-17 16:10:03.593364: No high rate period found
2026-08-17 16:10:03.637163: Import threshold used for optimisation was 8.0p
2026-08-17 16:10:03.680094: Low import rate windows [0: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 1: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 2: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 3: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 4: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 5: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 6: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 7: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 8: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 9: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 10: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 11: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 12: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 13: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 14: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 15: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 16: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 17: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 18: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 19: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 20: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 21: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 22: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 23: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 24: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 25: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 26: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 27: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 28: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 29: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 30: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 31: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 32: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 33: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 34: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 35: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 36: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 37: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 38: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 39: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 40: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 41: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 42: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 43: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 44: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 45: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 46: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 47: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 48: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 49: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 50: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 51: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 52: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 53: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 54: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 55: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 56: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 57: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 58: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 59: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 60: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 61: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 62: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 63: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 64: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 65: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 66: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 67: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 68: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 69: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 70: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 71: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 72: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 73: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 74: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 75: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 76: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 77: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 78: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 79: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 80: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 81: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 82: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 83: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 84: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 85: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 86: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 87: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 88: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 89: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 90: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 91: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 92: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 93: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 94: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75]
2026-08-17 16:10:03.684873: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:10:03.684993: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:10:03.685062: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:10:03.685291: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:10:03.685370: No export window planned
2026-08-17 16:10:03.685469: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:10:03.685499: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:10:03.685631: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:10:03.685793: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:10:03.685842: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:10:03.685892: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:10:03.685989: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686030: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686053: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686074: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686128: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686212: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686281: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:03.686385: Inverter 0 count register writes 0
2026-08-17 16:10:03.701018: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 16:10:03.701207: Recompute is saving previous plan...
2026-08-17 16:10:03.704638: Best charge window [ 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0% ]
2026-08-17 16:10:03.704718: Best export window [ ]
2026-08-17 16:10:03.705503: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:10:03.708049: Load divergence over 8.0 hours mean 492.34W, min 336.6W, max 1039.2W, std dev 155.45W, divergence 15.79%
2026-08-17 16:10:03.722552: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:10:03.722631: LoadML is_calculating False
2026-08-17 16:10:03.722683: Creating pool of 12 processes to match your CPU count
2026-08-17 16:10:03.799769: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 16:10:03.801153: Optimise levels pass started at 2026-08-17 16:10:03
2026-08-17 16:10:03.801212: Optimise all windows, total charge 94 export 1
2026-08-17 16:10:04.183188: >> Region optimisation pass width 960 gives best_metric 370.18p, best_cost 418.69p, best_cycle 47.24kWh, best_import 33.55kWh
2026-08-17 16:10:04.378852: >> Region optimisation pass width 480 gives best_metric 370.18p, best_cost 418.69p, best_cycle 47.24kWh, best_import 33.55kWh
2026-08-17 16:10:04.745501: >> Region optimisation pass width 240 gives best_metric 370.18p, best_cost 418.69p, best_cycle 47.24kWh, best_import 33.55kWh
2026-08-17 16:10:05.612608: >> Region optimisation pass width 120 gives best_metric 370.18p, best_cost 418.69p, best_cycle 47.24kWh, best_import 33.55kWh
2026-08-17 16:10:05.612821: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 61
2026-08-17 16:10:05.612892: Optimise levels pass ended at 2026-08-17 16:10:05, duration 1.8 seconds tried 201 combinations
2026-08-17 16:10:05.612962: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 370.18p, best_keep 0.1kWh, best_cycle 47.24kWh, best_carbon 0kg, best_import 33.55kWh
2026-08-17 16:10:05.635484: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 16:10:10.116185: Tweak plan optimisation started metric 262.01p, cost 273.98p
2026-08-17 16:10:10.412909: Tweak optimisation finished metric 262.01p, cost 273.98p, metric_keep 0.1kWh, cycle 27.35kWh, carbon 0kg, import 15.46kWh, changed 8 window(s)
2026-08-17 16:10:10.429370: Swap charge optimisation started metric 262.01p, cost 273.98p, min_improvement_swap 0.1p
2026-08-17 16:10:16.097946: Swap charge optimisation finished metric 262.01p, cost 273.98p
2026-08-17 16:10:16.212563: Raw charge windows [ 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:10:16.213115: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:10:16.213297: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:10:16.213422: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:10:16.248923: Previous plan best metric is 262.43 (cost 274.48) and new plan best metric is 262.01 (cost 273.98)
2026-08-17 16:10:16.249210: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 16:10:16.249374: Plan valid is now true after recompute was False
2026-08-17 16:10:16.277225: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.45p, metric_keep 278.76kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.35kWh, PV 0.0kWh
2026-08-17 16:10:16.362804: Battery has 10.58 hours left - now at 9.12kWh
2026-08-17 16:10:16.405413: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.71p, metric_keep 280.17kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.34kWh, PV 0.0kWh
2026-08-17 16:10:16.475984: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 324.3p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.34kWh, PV 0.0kWh
2026-08-17 16:10:16.539987: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 321.12p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.35kWh, PV 0.0kWh
2026-08-17 16:10:16.540063: Saving plan best values to HA entities
2026-08-17 16:10:16.663022: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:10:16.667460: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:10:16.671818: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.52kWh, house 0.0kWh, export 0.0kWh, metric 321.12p, metric10 324.3p
2026-08-17 16:10:16.734402: Marginal costs baseline metric (no standing charge): 274.4846
2026-08-17 16:10:17.014870: Marginal energy costs matrix computed: min=8.0 max=29.6
2026-08-17 16:10:17.081047: Rate array import [{'start': 970, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 970, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:10:17.081742: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:10:17.081786: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:10:17.081808: - The battery is currently at 57% and is in eco mode for the next 7 and a quarter hours.
2026-08-17 16:10:17.081827: - For the next 48 hours there will be no solar generation.
2026-08-17 16:10:17.081849: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:10:17.081866: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 16:10:17.081883:
2026-08-17 16:10:17.131077: Plan calculation took 13.43 seconds
2026-08-17 16:10:17.131535: Inverter 0: Type SK Sunsynk
2026-08-17 16:10:17.131617: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:10:17.131867: Reserve min: 7%, battery_min: 7%
2026-08-17 16:10:17.131980: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:10:17.132314: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 377W, current battery voltage 51.2V, grid power -55W, load power 439W, PV Power 0W
2026-08-17 16:10:17.132636: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:10:17.132765: Inverter 0 scheduled charge enable is False
2026-08-17 16:10:17.132804: Inverter 0 charge windows currently []
2026-08-17 16:10:17.132837: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:10:17.132981: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:10:17.133023: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:10:17.133064: Inverter 0 scheduled discharge enable is False
2026-08-17 16:10:17.133222: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:10:17.133261: Inverter 0 discharge windows currently []
2026-08-17 16:10:17.133283: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:10:17.133306: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:10:17.133324: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:10:17.186249: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:10:17.186404: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:10:17.186498: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:10:17.186688: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:10:17.186783: No export window planned
2026-08-17 16:10:17.186923: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:10:17.186964: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:10:17.187130: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:10:17.187294: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:10:17.187341: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:10:17.187406: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:10:17.187501: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187593: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187642: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187686: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187729: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187774: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.187970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.188021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.188067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.188131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.188178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.188219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:10:17.188238: Inverter 0 count register writes 0
2026-08-17 16:10:17.206955: Total inverter register writes now 861
2026-08-17 16:10:17.237647: Info: Completed run status Demand
2026-08-17 16:10:17.242873: Info: record_status Demand
2026-08-17 16:10:17.248435: Saved current settings to /config/predbat_config.json
2026-08-17 16:10:17.248663: Compare, best tariff: current metric 104.68p
2026-08-17 16:10:49.344776: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:10:49.345026: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:10:49.345081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:10:49.345218: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:10:49.345256: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:10:49.345277: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:10:49.345294: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:12:49.550534: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:12:49.550807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:12:49.550854: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:12:49.551041: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:12:49.551086: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:12:49.551112: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:12:49.551153: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:15:00.824276: --------------- PredBat - update at 2026-08-17 16:15:00+01:00 with clock skew 0 minutes, minutes now 975
2026-08-17 16:15:00.825064: Saved current settings to /config/predbat_config.json
2026-08-17 16:15:00.825184: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 16:15:00.825221: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:15:00.837096: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:15:00.837202: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:15:00.837364: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:15:00.837869: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:15:00.838008: Predbat mode is set to Control charge & discharge
2026-08-17 16:15:01.022799: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:15:01.022929: Using load_power data to fill gaps in load_today data
2026-08-17 16:15:01.841438: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:15:01.841639: Zero load period starting at 2026-08-17T10:54:00+0100 (321 minutes) for 189 minutes with base value 214.15
2026-08-17 16:15:01.842154: Processing 721 30-minute periods for power integration
2026-08-17 16:15:02.031347: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:15:02.031460: Car charging hold False, threshold 6.0kWh
2026-08-17 16:15:02.031504: Current data so far today: load 8.7kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:15:02.048659: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:15:02.048757: Cars: SoC: [51.568000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:15:02.049516: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:15:02.049588: Standing charge is set to 46.63p
2026-08-17 16:15:02.136010: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.136250: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.136435: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.136617: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.136817: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.136992: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.137168: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.137334: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.137501: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:15:02.138619: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:15:02.138722: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:15:02.144867: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:15:02.145324: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:15:02.191573: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:15:02.191684: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:15:02.193072: High export rate found rates in range 99p to -99p
2026-08-17 16:15:02.293331: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:15:02.293456: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:15:02.306618: Battery level now 9.12kWh, -1hr ago 9.6kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -9.4p, rate_forward 6.87p
2026-08-17 16:15:02.307014: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:15:02.362271: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:15:02.362475: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:15:02.467575: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:15:02.490734: Today's load divergence 98.09%, in-day adjustment 88.56%, damping 0.95x, yesterday 68.37% today 98.19% blend 32.29%
2026-08-17 16:15:02.490824: Today's predicted so far 10.21kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 10.21kWh forecast extra.
2026-08-17 16:15:02.490851: Today's actual load so far 9.92kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 16:15:02.520337: Inverter 0: Type SK Sunsynk
2026-08-17 16:15:02.520418: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:15:02.520588: Reserve min: 7%, battery_min: 7%
2026-08-17 16:15:02.520656: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:15:02.520922: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 376W, current battery voltage 51.2V, grid power -56W, load power 440W, PV Power 0W
2026-08-17 16:15:02.521071: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:15:02.521155: Inverter 0 scheduled charge enable is False
2026-08-17 16:15:02.521192: Inverter 0 charge windows currently []
2026-08-17 16:15:02.521223: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:15:02.521327: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:15:02.521362: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:15:02.521397: Inverter 0 scheduled discharge enable is False
2026-08-17 16:15:02.521515: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:15:02.521543: Inverter 0 discharge windows currently []
2026-08-17 16:15:02.521565: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:15:02.521593: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:15:02.521611: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:15:02.582520: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:15:02.582621: Plan was last updated on 2026-08-17 16:10:00+01:00 and is now 5.0 minutes old
2026-08-17 16:15:02.582849: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:15:02.582892: Best export window [ ]
2026-08-17 16:15:02.583656: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:15:02.586885: Load divergence over 8.0 hours mean 493.82W, min 331.2W, max 1005.0W, std dev 162.85W, divergence 16.49%
2026-08-17 16:15:02.606593: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:15:02.606696: LoadML is_calculating False
2026-08-17 16:15:02.606752: Creating pool of 12 processes to match your CPU count
2026-08-17 16:15:02.705211: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.53p, metric_keep 278.93kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.49kWh, PV 0.0kWh
2026-08-17 16:15:02.814944: Battery has 10.58 hours left - now at 9.12kWh
2026-08-17 16:15:02.857750: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.78p, metric_keep 280.36kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.48kWh, PV 0.0kWh
2026-08-17 16:15:02.933301: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 327.68p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.48kWh, PV 0.0kWh
2026-08-17 16:15:03.025930: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 325.09p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.49kWh, PV 0.0kWh
2026-08-17 16:15:03.026020: Saving plan best values to HA entities
2026-08-17 16:15:03.170168: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:15:03.175062: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:15:03.179932: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.02kWh, house 0.0kWh, export 0.0kWh, metric 325.09p, metric10 327.68p
2026-08-17 16:15:03.255427: Marginal costs baseline metric (no standing charge): 278.4573
2026-08-17 16:15:03.523352: Marginal energy costs matrix computed: min=8.0 max=29.03
2026-08-17 16:15:03.604046: Rate array import [{'start': 975, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 975, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:15:03.604706: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:15:03.604749: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:15:03.604787: - The battery is currently at 57% and is in eco mode for the next 7 and a quarter hours.
2026-08-17 16:15:03.604809: - For the next 48 hours there will be no solar generation.
2026-08-17 16:15:03.604827: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:15:03.604844: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 16:15:03.604867:
2026-08-17 16:15:03.656409: Plan calculation took 1.07 seconds
2026-08-17 16:15:03.660117: No high rate period found
2026-08-17 16:15:03.711182: Import threshold used for optimisation was 8.0p
2026-08-17 16:15:03.765215: Low import rate windows [0: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 1: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 2: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 3: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 4: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 5: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 6: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 7: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 8: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 9: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 10: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 11: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 12: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 13: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 14: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 15: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 16: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 17: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 18: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 19: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 20: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 21: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 22: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 23: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 24: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 25: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 26: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 27: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 28: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 29: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 30: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 31: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 32: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 33: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 34: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 35: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 36: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 37: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 38: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 39: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 40: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 41: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 42: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 43: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 44: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 45: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 46: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 47: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 48: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 49: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 50: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 51: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 52: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 53: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 54: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 55: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 56: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 57: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 58: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 59: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 60: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 61: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 62: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 63: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 64: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 65: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 66: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 67: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 68: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 69: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 70: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 71: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 72: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 73: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 74: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 75: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 76: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 77: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 78: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 79: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 80: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 81: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 82: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 83: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 84: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 85: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 86: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 87: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 88: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 89: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 90: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 91: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 92: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 93: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 94: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75]
2026-08-17 16:15:03.771541: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:15:03.771677: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:15:03.771761: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:15:03.772088: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:15:03.772194: No export window planned
2026-08-17 16:15:03.772321: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:15:03.772357: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:15:03.772490: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:15:03.772663: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:15:03.772725: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:15:03.772811: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:15:03.772905: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.772966: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773032: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773056: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773081: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773116: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773216: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773242: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:15:03.773372: Inverter 0 count register writes 0
2026-08-17 16:15:03.790711: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 16:15:03.796391: Total inverter register writes now 861
2026-08-17 16:15:03.829872: Info: Completed run status Demand
2026-08-17 16:15:03.836162: Info: record_status Demand
2026-08-17 16:15:03.842482: Saved current settings to /config/predbat_config.json
2026-08-17 16:15:03.842817: Compare, best tariff: current metric 104.68p
2026-08-17 16:15:33.938535: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:15:33.938720: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:15:33.938776: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:15:33.938922: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:15:33.938989: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:15:33.939018: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:15:33.939047: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:17:34.145391: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:17:34.145602: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:17:34.145636: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:17:34.145762: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:17:34.145795: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:17:34.145813: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:17:34.145827: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:19:34.358351: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:19:34.358645: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:19:34.358723: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:19:34.358862: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:19:34.358900: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:19:34.358921: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:19:34.358939: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:20:00.455816: --------------- PredBat - update at 2026-08-17 16:20:00+01:00 with clock skew 0 minutes, minutes now 980
2026-08-17 16:20:00.456527: Saved current settings to /config/predbat_config.json
2026-08-17 16:20:00.456658: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 16:20:00.456698: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:20:00.472204: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:20:00.472376: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:20:00.472643: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:20:00.473341: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:20:00.473509: Predbat mode is set to Control charge & discharge
2026-08-17 16:20:00.683008: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:20:00.683164: Using load_power data to fill gaps in load_today data
2026-08-17 16:20:01.499995: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:20:01.500188: Zero load period starting at 2026-08-17T10:54:00+0100 (326 minutes) for 189 minutes with base value 214.125
2026-08-17 16:20:01.500718: Processing 721 30-minute periods for power integration
2026-08-17 16:20:01.701720: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:20:01.701867: Car charging hold False, threshold 6.0kWh
2026-08-17 16:20:01.701927: Current data so far today: load 8.6kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:20:01.725028: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:20:01.725157: Cars: SoC: [51.568000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:20:01.725973: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:20:01.726056: Standing charge is set to 46.63p
2026-08-17 16:20:01.838510: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.838757: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.839066: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.839269: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.840383: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.842752: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.842969: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.843120: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.843296: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:20:01.844291: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:20:01.844440: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:20:01.849433: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:20:01.851000: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:20:01.896677: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:20:01.896815: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:20:01.898105: High export rate found rates in range 99p to -99p
2026-08-17 16:20:01.987616: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:20:01.987791: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:20:02.005150: Battery level now 9.12kWh, -1hr ago 9.49kWh, at midnight 10.49kWh, battery value change in the last hour -2.53p, change today -9.4p, rate_forward 6.87p
2026-08-17 16:20:02.005486: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:20:02.063055: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:20:02.063193: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:20:02.143287: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:20:02.169474: Today's load divergence 97.43%, in-day adjustment 88.24%, damping 0.95x, yesterday 68.37% today 97.56% blend 31.94%
2026-08-17 16:20:02.169553: Today's predicted so far 10.23kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 10.23kWh forecast extra.
2026-08-17 16:20:02.169591: Today's actual load so far 9.83kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 16:20:02.201809: Inverter 0: Type SK Sunsynk
2026-08-17 16:20:02.201904: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:20:02.202129: Reserve min: 7%, battery_min: 7%
2026-08-17 16:20:02.202225: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:20:02.202553: Inverter 0 SoC: 9.12kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 375W, current battery voltage 51.2V, grid power -52W, load power 436W, PV Power 0W
2026-08-17 16:20:02.202736: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:20:02.202829: Inverter 0 scheduled charge enable is False
2026-08-17 16:20:02.202864: Inverter 0 charge windows currently []
2026-08-17 16:20:02.202893: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:20:02.203013: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:20:02.203049: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:20:02.203088: Inverter 0 scheduled discharge enable is False
2026-08-17 16:20:02.203229: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:20:02.203272: Inverter 0 discharge windows currently []
2026-08-17 16:20:02.203298: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:20:02.203344: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:20:02.203368: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:20:02.255165: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:20:02.255252: Plan was last updated on 2026-08-17 16:10:00+01:00 and is now 10.0 minutes old
2026-08-17 16:20:02.255420: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:20:02.255454: Best export window [ ]
2026-08-17 16:20:02.256442: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:20:02.260855: Load divergence over 8.0 hours mean 493.8W, min 361.2W, max 977.4W, std dev 153.71W, divergence 15.56%
2026-08-17 16:20:02.278750: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:20:02.278855: LoadML is_calculating False
2026-08-17 16:20:02.278909: Creating pool of 12 processes to match your CPU count
2026-08-17 16:20:02.390781: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 605.59p, metric_keep 278.98kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.43kWh, PV 0.0kWh
2026-08-17 16:20:02.515639: Battery has 10.58 hours left - now at 9.12kWh
2026-08-17 16:20:02.560906: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 627.89p, metric_keep 280.42kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 16:20:02.643067: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 330.79p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.42kWh, PV 0.0kWh
2026-08-17 16:20:02.718825: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 328.81p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.43kWh, PV 0.0kWh
2026-08-17 16:20:02.718904: Saving plan best values to HA entities
2026-08-17 16:20:02.901252: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:20:02.906140: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 16:20:02.911458: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.48kWh, house 0.0kWh, export 0.0kWh, metric 328.81p, metric10 330.79p
2026-08-17 16:20:02.974714: Marginal costs baseline metric (no standing charge): 282.1794
2026-08-17 16:20:03.194167: Marginal energy costs matrix computed: min=8.0 max=28.35
2026-08-17 16:20:03.261159: Rate array import [{'start': 980, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 980, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:20:03.261751: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:20:03.261788: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:20:03.261806: - The battery is currently at 57% and is in eco mode for the next 7 and a quarter hours.
2026-08-17 16:20:03.261822: - For the next 48 hours there will be no solar generation.
2026-08-17 16:20:03.261835: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:20:03.261849: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 16:20:03.261864:
2026-08-17 16:20:03.309462: Plan calculation took 1.05 seconds
2026-08-17 16:20:03.313050: No high rate period found
2026-08-17 16:20:03.363503: Import threshold used for optimisation was 8.0p
2026-08-17 16:20:03.413483: Low import rate windows [0: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 1: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 2: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 3: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 4: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 5: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 6: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 7: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 8: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 9: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 10: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 11: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 12: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 13: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 14: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 15: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 16: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 17: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 18: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 19: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 20: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 21: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 22: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 23: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 24: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 25: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 26: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 27: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 28: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 29: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 30: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 31: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 32: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 33: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 34: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 35: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 36: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 37: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 38: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 39: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 40: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 41: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 42: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 43: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 44: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 45: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 46: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 47: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 48: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 49: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 50: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 51: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 52: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 53: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 54: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 55: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 56: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 57: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 58: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 59: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 60: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 61: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 62: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 63: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 64: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 65: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 66: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 67: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 68: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 69: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 70: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 71: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 72: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 73: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 74: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 75: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 76: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 77: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 78: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 79: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 80: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 81: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 82: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 83: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 84: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 85: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 86: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 87: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 88: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 89: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 90: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 91: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 92: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 93: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 94: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75]
2026-08-17 16:20:03.418206: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:20:03.418302: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:20:03.418387: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:20:03.418607: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:20:03.418687: No export window planned
2026-08-17 16:20:03.418792: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:20:03.418820: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:20:03.418927: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:20:03.419073: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:20:03.419123: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:20:03.419178: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:20:03.419249: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419299: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419325: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419345: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419371: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419391: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419527: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:03.419598: Inverter 0 count register writes 0
2026-08-17 16:20:03.432459: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 16:20:03.432616: Recompute is saving previous plan...
2026-08-17 16:20:03.435092: Best charge window [ 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0% ]
2026-08-17 16:20:03.435161: Best export window [ ]
2026-08-17 16:20:03.435858: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:20:03.438407: Load divergence over 8.0 hours mean 493.8W, min 361.2W, max 977.4W, std dev 153.71W, divergence 15.56%
2026-08-17 16:20:03.453121: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:20:03.453220: LoadML is_calculating False
2026-08-17 16:20:03.453273: Creating pool of 12 processes to match your CPU count
2026-08-17 16:20:03.529374: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 16:20:03.531097: Optimise levels pass started at 2026-08-17 16:20:03
2026-08-17 16:20:03.531158: Optimise all windows, total charge 94 export 1
2026-08-17 16:20:03.900271: >> Region optimisation pass width 960 gives best_metric 370.02p, best_cost 418.02p, best_cycle 47.17kWh, best_import 33.46kWh
2026-08-17 16:20:04.139082: >> Region optimisation pass width 480 gives best_metric 370.02p, best_cost 418.02p, best_cycle 47.17kWh, best_import 33.46kWh
2026-08-17 16:20:04.447572: >> Region optimisation pass width 240 gives best_metric 370.02p, best_cost 418.02p, best_cycle 47.17kWh, best_import 33.46kWh
2026-08-17 16:20:05.336901: >> Region optimisation pass width 120 gives best_metric 370.02p, best_cost 418.02p, best_cycle 47.17kWh, best_import 33.46kWh
2026-08-17 16:20:05.337161: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 61
2026-08-17 16:20:05.337240: Optimise levels pass ended at 2026-08-17 16:20:05, duration 1.8 seconds tried 201 combinations
2026-08-17 16:20:05.337302: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 370.02p, best_keep 0.11kWh, best_cycle 47.17kWh, best_carbon 0kg, best_import 33.46kWh
2026-08-17 16:20:05.356647: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 16:20:09.834656: Tweak plan optimisation started metric 261.3p, cost 273.24p
2026-08-17 16:20:10.114002: Tweak optimisation finished metric 261.3p, cost 273.24p, metric_keep 0.11kWh, cycle 27.2kWh, carbon 0kg, import 15.36kWh, changed 8 window(s)
2026-08-17 16:20:10.132461: Swap charge optimisation started metric 261.3p, cost 273.24p, min_improvement_swap 0.1p
2026-08-17 16:20:15.681865: Swap charge optimisation finished metric 261.3p, cost 273.24p
2026-08-17 16:20:15.789240: Raw charge windows [ 17-08 16:00:00 - 17-08 16:30:00 @ 33.75p 0%, 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:20:15.789732: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:20:15.789953: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:20:15.790084: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:20:15.821016: Previous plan best metric is 261.85 (cost 273.89) and new plan best metric is 261.3 (cost 273.24)
2026-08-17 16:20:15.821223: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 16:20:15.821363: Plan valid is now true after recompute was False
2026-08-17 16:20:15.844774: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 603.96p, metric_keep 278.39kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.22kWh, PV 0.0kWh
2026-08-17 16:20:15.943495: Battery has 10.58 hours left - now at 9.12kWh
2026-08-17 16:20:15.982435: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.19p, metric_keep 279.83kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.21kWh, PV 0.0kWh
2026-08-17 16:20:16.049004: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 323.53p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.21kWh, PV 0.0kWh
2026-08-17 16:20:16.130358: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 320.52p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.22kWh, PV 0.0kWh
2026-08-17 16:20:16.130437: Saving plan best values to HA entities
2026-08-17 16:20:16.300708: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:20:16.307476: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 16:20:16.313281: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.44kWh, house 0.0kWh, export 0.0kWh, metric 320.52p, metric10 323.53p
2026-08-17 16:20:16.381317: Marginal costs baseline metric (no standing charge): 273.8872
2026-08-17 16:20:16.596377: Marginal energy costs matrix computed: min=8.0 max=28.35
2026-08-17 16:20:16.654566: Rate array import [{'start': 980, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 980, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:20:16.655115: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:20:16.655149: - Import rates are very expensive (33.8p - 46.4p) for the next 7 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:20:16.655168: - The battery is currently at 57% and is in eco mode for the next 7 and a quarter hours.
2026-08-17 16:20:16.655183: - For the next 48 hours there will be no solar generation.
2026-08-17 16:20:16.655197: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:20:16.655211: - Your next charge slot will be in 7 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 16:20:16.655229:
2026-08-17 16:20:16.701194: Plan calculation took 13.27 seconds
2026-08-17 16:20:16.701502: Inverter 0: Type SK Sunsynk
2026-08-17 16:20:16.701545: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:20:16.701754: Reserve min: 7%, battery_min: 7%
2026-08-17 16:20:16.701831: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:20:16.702131: Inverter 0 SoC: 9.08kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 375W, current battery voltage 51.2V, grid power -55W, load power 440W, PV Power 0W
2026-08-17 16:20:16.702372: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:20:16.702470: Inverter 0 scheduled charge enable is False
2026-08-17 16:20:16.702506: Inverter 0 charge windows currently []
2026-08-17 16:20:16.702536: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:20:16.702659: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:20:16.702700: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:20:16.702740: Inverter 0 scheduled discharge enable is False
2026-08-17 16:20:16.702863: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:20:16.702900: Inverter 0 discharge windows currently []
2026-08-17 16:20:16.702922: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:20:16.702944: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:20:16.702962: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:20:16.752633: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:20:16.752775: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:20:16.752839: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:20:16.753019: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:20:16.753097: No export window planned
2026-08-17 16:20:16.753208: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:20:16.753244: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:20:16.753376: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:20:16.753532: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:20:16.753597: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:20:16.753660: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:20:16.753739: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.753778: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.753809: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.753835: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.753864: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.753889: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.753913: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.753973: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.754007: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.754032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.754056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.754109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.754136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.754166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:20:16.754194: Inverter 0 count register writes 0
2026-08-17 16:20:16.773146: Total inverter register writes now 861
2026-08-17 16:20:16.801489: Info: Completed run status Demand
2026-08-17 16:20:16.806841: Info: record_status Demand
2026-08-17 16:20:16.814144: Saved current settings to /config/predbat_config.json
2026-08-17 16:20:16.814431: Compare, best tariff: current metric 104.68p
2026-08-17 16:20:46.454167: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 16:20:47.401386: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:20:47.401596: Zero load period starting at 2026-08-17T10:54:00+0100 (326 minutes) for 189 minutes with base value 410.75
2026-08-17 16:20:47.402109: Processing 1345 30-minute periods for power integration
2026-08-17 16:20:47.496780: ML Component: Car charging hold False, car energy reported load False
2026-08-17 16:20:47.584483: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:20:47.667307: ML Temperature data points: 49421
2026-08-17 16:20:47.919580: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 16:20:47.963182: ML Component: Data fetch completed, load data age 59.0 days, 17020 data points
2026-08-17 16:20:47.963369: ML Component: Starting fine-tune training (2h interval), model age is 2.075255136111111 hours
2026-08-17 16:20:47.963645: ML Component: Doing training...
2026-08-17 16:20:47.977601: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-17 16:20:47.977700: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.1 days)
2026-08-17 16:20:48.029708: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-17 16:20:48.029845: ML Predictor: Starting initial training with 30 epochs
2026-08-17 16:20:48.658225: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 16:20:50.357235: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:20:50.362626: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:20:50.367835: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:20:50.373159: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:20:50.388624: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:20:50.393807: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:20:50.398967: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:20:53.749248: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 16:20:53.805365: ML Predictor: Normalization stats [fit] target(mean=0.0592 std=0.0478) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7268 std=4.5888) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1925 std=0.5271)
2026-08-17 16:21:08.034226: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0251 val_mae=0.0074 kWh val_bias=+0.0015 kWh (+1.7%) combined=0.0045 kWh ema_combined=0.0045 kWh
2026-08-17 16:21:21.032133: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0464 val_mae=0.0081 kWh val_bias=-0.0015 kWh (-1.6%) combined=0.0045 kWh ema_combined=0.0045 kWh
2026-08-17 16:21:34.631601: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0362 val_mae=0.0071 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0046 kWh ema_combined=0.0045 kWh
2026-08-17 16:21:48.283974: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0250 val_mae=0.0058 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0031 kWh ema_combined=0.0041 kWh
2026-08-17 16:22:02.262887: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0192 val_mae=0.0055 kWh val_bias=+0.0011 kWh (+1.2%) combined=0.0042 kWh ema_combined=0.0041 kWh
2026-08-17 16:22:16.610667: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0155 val_mae=0.0063 kWh val_bias=-0.0026 kWh (-2.9%) combined=0.0045 kWh ema_combined=0.0043 kWh
2026-08-17 16:22:29.486318: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0149 val_mae=0.0053 kWh val_bias=-0.0013 kWh (-1.5%) combined=0.0032 kWh ema_combined=0.0039 kWh
2026-08-17 16:22:42.912382: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0135 val_mae=0.0054 kWh val_bias=+0.0019 kWh (+2.2%) combined=0.0048 kWh ema_combined=0.0042 kWh
2026-08-17 16:22:55.655405: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0122 val_mae=0.0051 kWh val_bias=+0.0018 kWh (+2.0%) combined=0.0047 kWh ema_combined=0.0044 kWh
2026-08-17 16:23:04.589981: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:23:04.590494: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:23:04.590670: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:23:04.590973: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:23:04.591114: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:23:04.591253: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:23:04.591373: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:23:10.546139: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0121 val_mae=0.0047 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0031 kWh ema_combined=0.0040 kWh
2026-08-17 16:23:22.894749: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0105 val_mae=0.0052 kWh val_bias=+0.0034 kWh (+3.8%) combined=0.0048 kWh ema_combined=0.0042 kWh
2026-08-17 16:23:35.642425: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0100 val_mae=0.0039 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0021 kWh ema_combined=0.0036 kWh
2026-08-17 16:23:48.235772: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0090 val_mae=0.0037 kWh val_bias=+0.0009 kWh (+1.1%) combined=0.0025 kWh ema_combined=0.0033 kWh
2026-08-17 16:24:01.156966: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0087 val_mae=0.0039 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0022 kWh ema_combined=0.0030 kWh
2026-08-17 16:24:16.889783: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0085 val_mae=0.0042 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0031 kWh ema_combined=0.0030 kWh
2026-08-17 16:24:30.726206: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0083 val_mae=0.0036 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0029 kWh ema_combined=0.0030 kWh
2026-08-17 16:24:44.943594: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0081 val_mae=0.0038 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-17 16:24:58.263489: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0077 val_mae=0.0034 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-17 16:25:00.968612: --------------- PredBat - update at 2026-08-17 16:25:00+01:00 with clock skew 0 minutes, minutes now 985
2026-08-17 16:25:00.969491: Saved current settings to /config/predbat_config.json
2026-08-17 16:25:00.969787: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 16:25:00.969862: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:25:01.000441: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:25:01.000682: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:25:01.000950: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:25:01.001635: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:25:01.001826: Predbat mode is set to Control charge & discharge
2026-08-17 16:25:01.327161: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:25:01.335120: Using load_power data to fill gaps in load_today data
2026-08-17 16:25:02.709079: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:25:02.709286: Zero load period starting at 2026-08-17T10:54:00+0100 (331 minutes) for 189 minutes with base value 214.1
2026-08-17 16:25:02.709716: Processing 721 30-minute periods for power integration
2026-08-17 16:25:03.017116: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:25:03.017241: Car charging hold False, threshold 6.0kWh
2026-08-17 16:25:03.017282: Current data so far today: load 8.6kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:25:03.048105: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:25:03.052738: Cars: SoC: [51.568000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:25:03.053781: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:25:03.060794: Standing charge is set to 46.63p
2026-08-17 16:25:03.212240: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.229333: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.229631: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.229875: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.230136: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.230412: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.230669: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.230933: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.231161: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:25:03.232223: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:25:03.232425: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:25:03.237510: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:25:03.252526: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:25:03.343025: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:25:03.343183: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:25:03.345261: High export rate found rates in range 99p to -99p
2026-08-17 16:25:03.575643: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:25:03.575831: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:25:03.587974: Battery level now 9.12kWh, -1hr ago 9.44kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -9.4p, rate_forward 6.87p
2026-08-17 16:25:03.588428: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:25:03.651382: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:25:03.651532: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:25:03.816607: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:25:03.862772: Today's load divergence 97.39%, in-day adjustment 88.31%, damping 0.95x, yesterday 68.37% today 97.52% blend 31.6%
2026-08-17 16:25:03.863202: Today's predicted so far 10.24kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 10.24kWh forecast extra.
2026-08-17 16:25:03.863352: Today's actual load so far 9.84kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 16:25:03.927187: Inverter 0: Type SK Sunsynk
2026-08-17 16:25:03.927273: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:25:03.927444: Reserve min: 7%, battery_min: 7%
2026-08-17 16:25:03.927534: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:25:03.927791: Inverter 0 SoC: 9.08kW 57%, current charge rate 5000W, current discharge rate 5250W, current battery power 379W, current battery voltage 51.2V, grid power -55W, load power 442W, PV Power 0W
2026-08-17 16:25:03.928000: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:25:03.928138: Inverter 0 scheduled charge enable is False
2026-08-17 16:25:03.928203: Inverter 0 charge windows currently []
2026-08-17 16:25:03.928318: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:25:03.928528: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:25:03.928575: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:25:03.928660: Inverter 0 scheduled discharge enable is False
2026-08-17 16:25:03.928845: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:25:03.928888: Inverter 0 discharge windows currently []
2026-08-17 16:25:03.928951: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:25:03.928983: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:25:03.929043: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:25:04.064583: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:25:04.064812: Plan was last updated on 2026-08-17 16:20:00+01:00 and is now 5.0 minutes old
2026-08-17 16:25:04.065137: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:25:04.065190: Best export window [ ]
2026-08-17 16:25:04.066595: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:25:04.071394: Load divergence over 8.0 hours mean 493.91W, min 344.4W, max 1032.6W, std dev 164.95W, divergence 16.7%
2026-08-17 16:25:04.113071: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:25:04.114150: LoadML is_calculating True
2026-08-17 16:25:04.114288: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 16:25:04.158764: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.05p, metric_keep 278.71kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.3kWh, PV 0.0kWh
2026-08-17 16:25:04.332239: Battery has 10.5 hours left - now at 9.08kWh
2026-08-17 16:25:04.429032: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.36p, metric_keep 280.16kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.29kWh, PV 0.0kWh
2026-08-17 16:25:04.576073: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 327.24p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.29kWh, PV 0.0kWh
2026-08-17 16:25:04.708672: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 324.69p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.3kWh, PV 0.0kWh
2026-08-17 16:25:04.708776: Saving plan best values to HA entities
2026-08-17 16:25:05.015703: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:25:05.024184: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:25:05.047722: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.97kWh, house 0kWh, export 0.0kWh, metric 324.69p, metric10 327.24p
2026-08-17 16:25:05.218430: Marginal costs baseline metric (no standing charge): 278.0523
2026-08-17 16:25:05.835275: Marginal energy costs matrix computed: min=8.0 max=27.91
2026-08-17 16:25:05.975121: Rate array import [{'start': 985, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 985, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:25:05.976317: - Your estimated bill for today is £1.75 and tomorrow is £1.71
2026-08-17 16:25:05.976381: - Import rates are very expensive (33.8p - 46.4p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:25:05.976490: - The battery is currently at 57% and is in eco mode for the next 7 hours.
2026-08-17 16:25:05.976527: - For the next 48 hours there will be no solar generation.
2026-08-17 16:25:05.976547: - You will reach a minimum of 12% battery in 31 hours.
2026-08-17 16:25:05.976565: - Your next charge slot will be in 7 hours where import rates will be cheap (8.0p).
2026-08-17 16:25:05.976584:
2026-08-17 16:25:06.018813: Plan calculation took 1.95 seconds
2026-08-17 16:25:06.023815: No high rate period found
2026-08-17 16:25:06.101125: Import threshold used for optimisation was 8.0p
2026-08-17 16:25:06.176586: Low import rate windows [0: 08-17 16:00:00 - 08-17 16:30:00 @ 33.75, 1: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 2: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 3: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 4: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 5: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 6: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 7: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 8: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 9: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 10: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 11: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 12: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 13: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 14: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 15: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 16: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 17: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 18: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 19: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 20: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 21: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 22: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 23: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 24: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 25: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 26: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 27: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 28: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 29: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 30: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 31: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 32: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 33: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 34: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 35: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 36: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 37: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 38: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 39: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 40: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 41: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 42: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 43: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 44: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 45: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 46: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 47: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 48: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 49: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 50: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 51: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 52: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 53: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 54: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 55: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 56: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 57: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 58: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 59: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 60: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 61: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 62: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 63: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 64: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 65: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 66: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 67: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 68: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 69: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 70: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 71: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 72: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 73: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 74: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 75: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 76: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 77: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 78: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 79: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 80: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 81: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 82: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 83: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 84: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 85: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 86: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 87: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 88: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 89: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 90: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 91: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 92: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 93: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 94: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75]
2026-08-17 16:25:06.186135: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 57%, target 100%
2026-08-17 16:25:06.186371: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:25:06.186507: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:25:06.186846: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:25:06.186979: No export window planned
2026-08-17 16:25:06.187226: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:25:06.187306: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:25:06.187557: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:25:06.187846: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:25:06.187974: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:25:06.188100: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:25:06.188287: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.188383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.188527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.188620: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.188704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.188788: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.188872: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:25:06.189646: Inverter 0 count register writes 0
2026-08-17 16:25:06.211596: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 16:25:06.218779: Total inverter register writes now 861
2026-08-17 16:25:06.268404: Info: Completed run status Demand
2026-08-17 16:25:06.276898: Info: record_status Demand
2026-08-17 16:25:06.292096: Saved current settings to /config/predbat_config.json
2026-08-17 16:25:06.292426: Compare, best tariff: current metric 104.68p
2026-08-17 16:25:16.949484: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0072 val_mae=0.0030 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0016 kWh ema_combined=0.0022 kWh
2026-08-17 16:25:29.860323: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0076 val_mae=0.0032 kWh val_bias=-0.0012 kWh (-1.4%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-17 16:25:43.827249: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0070 val_mae=0.0031 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-17 16:25:49.517487: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:25:49.517887: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:25:49.518031: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:25:49.518371: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:25:49.518528: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:25:49.518674: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:25:49.518790: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:25:58.646297: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0068 val_mae=0.0030 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-17 16:26:13.222025: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0061 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-17 16:26:28.210317: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0066 val_mae=0.0030 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-17 16:26:41.570917: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0063 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-17 16:26:54.264980: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0063 val_mae=0.0031 kWh val_bias=-0.0011 kWh (-1.3%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-17 16:27:07.671056: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0064 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 16:27:22.074531: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0061 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 16:27:35.462498: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0061 val_mae=0.0028 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-17 16:27:48.580577: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0059 val_mae=0.0026 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-17 16:27:48.589893: ML Predictor: Restored best weights from epoch with val_mae=0.0026 kWh val_bias=+0.0002 kWh (+0.2%)
2026-08-17 16:27:48.590245: ML Predictor: Training complete, final val_mae=0.0026 kWh val_bias=+0.0002 kWh (+0.2%)
2026-08-17 16:27:49.700820: ML Predictor: AR rollout over holdout: ar_mae=0.0028 kWh ar_bias=+0.0002 kWh (+0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-17 16:27:49.705921: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0026 kWh
2026-08-17 16:27:49.797591: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-17 16:27:49.797852: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 16:27:50.458145: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 16:27:55.765066: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 16:27:55.821400: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7287 std=4.5873) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-17 16:27:55.912502: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 16:27:55.926333: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 16:27:55.952708: ML Predictor: Baseline (pre-finetune) val_mae=0.0044 kWh val_bias=+0.0001 kWh
2026-08-17 16:28:04.634877: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:28:04.635141: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:28:04.635268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:28:04.635577: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:28:04.635719: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:28:04.635838: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:28:04.635978: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:28:09.492364: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0099 val_mae=0.0048 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-17 16:28:23.649067: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0135 val_mae=0.0047 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-17 16:28:37.174082: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0108 val_mae=0.0046 kWh val_bias=+0.0014 kWh (+1.7%) combined=0.0038 kWh ema_combined=0.0032 kWh
2026-08-17 16:28:49.767418: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0133 val_mae=0.0047 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0034 kWh ema_combined=0.0033 kWh
2026-08-17 16:29:02.278437: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0138 val_mae=0.0043 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-17 16:29:15.813958: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0118 val_mae=0.0053 kWh val_bias=-0.0030 kWh (-3.8%) combined=0.0044 kWh ema_combined=0.0034 kWh
2026-08-17 16:29:30.799215: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0097 val_mae=0.0038 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0025 kWh ema_combined=0.0031 kWh
2026-08-17 16:29:44.296388: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0104 val_mae=0.0043 kWh val_bias=-0.0021 kWh (-2.7%) combined=0.0036 kWh ema_combined=0.0033 kWh
2026-08-17 16:29:57.562669: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0094 val_mae=0.0039 kWh val_bias=-0.0019 kWh (-2.4%) combined=0.0034 kWh ema_combined=0.0033 kWh
2026-08-17 16:30:00.018535: --------------- PredBat - update at 2026-08-17 16:30:00+01:00 with clock skew 0 minutes, minutes now 990
2026-08-17 16:30:00.023609: Saved current settings to /config/predbat_config.json
2026-08-17 16:30:00.023938: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 16:30:00.024000: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:30:00.060371: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:30:00.060561: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:30:00.060824: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:30:00.061554: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:30:00.061732: Predbat mode is set to Control charge & discharge
2026-08-17 16:30:00.515252: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:30:00.515774: Using load_power data to fill gaps in load_today data
2026-08-17 16:30:01.822707: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:30:01.823030: Zero load period starting at 2026-08-17T10:54:00+0100 (336 minutes) for 189 minutes with base value 214.075
2026-08-17 16:30:01.823920: Processing 721 30-minute periods for power integration
2026-08-17 16:30:02.170195: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:30:02.170318: Car charging hold False, threshold 6.0kWh
2026-08-17 16:30:02.170460: Current data so far today: load 8.72kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:30:02.239466: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:30:02.248033: Cars: SoC: [50.396]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:30:02.249466: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:30:02.249697: Standing charge is set to 46.63p
2026-08-17 16:30:02.441767: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.442521: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.442869: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.443103: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.443310: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.443631: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.443823: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.444035: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.444207: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:30:02.445318: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:30:02.445697: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:30:02.452685: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:30:02.453173: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:30:02.491634: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:30:02.491774: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:30:02.493025: High export rate found rates in range 99p to -99p
2026-08-17 16:30:02.607199: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:30:02.607491: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:30:02.626295: Battery level now 9.08kWh, -1hr ago 9.44kWh, at midnight 10.49kWh, battery value change in the last hour -2.47p, change today -9.68p, rate_forward 6.87p
2026-08-17 16:30:02.626831: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.16p, import 0.16p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:30:02.720718: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:30:02.720887: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:30:02.957679: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:30:02.986624: Today's load divergence 97.6%, in-day adjustment 88.55%, damping 0.95x, yesterday 68.37% today 97.72% blend 31.25%
2026-08-17 16:30:02.986783: Today's predicted so far 10.34kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 10.34kWh forecast extra.
2026-08-17 16:30:02.986827: Today's actual load so far 9.97kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 16:30:03.031131: Inverter 0: Type SK Sunsynk
2026-08-17 16:30:03.031219: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:30:03.031392: Reserve min: 7%, battery_min: 7%
2026-08-17 16:30:03.031483: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:30:03.031733: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 384W, current battery voltage 51.2V, grid power -54W, load power 447W, PV Power 0W
2026-08-17 16:30:03.031982: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:30:03.032117: Inverter 0 scheduled charge enable is False
2026-08-17 16:30:03.032163: Inverter 0 charge windows currently []
2026-08-17 16:30:03.032207: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:30:03.032374: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:30:03.032438: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:30:03.032499: Inverter 0 scheduled discharge enable is False
2026-08-17 16:30:03.032701: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:30:03.032741: Inverter 0 discharge windows currently []
2026-08-17 16:30:03.032764: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:30:03.032783: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:30:03.032800: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:30:03.109448: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:30:03.109555: Plan was last updated on 2026-08-17 16:20:00+01:00 and is now 10.0 minutes old
2026-08-17 16:30:03.109785: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:30:03.109834: Best export window [ ]
2026-08-17 16:30:03.110727: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:30:03.113946: Load divergence over 8.0 hours mean 495.33W, min 353.4W, max 1063.8W, std dev 151.19W, divergence 15.26%
2026-08-17 16:30:03.134821: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:30:03.134924: LoadML is_calculating True
2026-08-17 16:30:03.134950: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 16:30:03.207839: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.42p, metric_keep 279.51kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.51kWh, PV 0.0kWh
2026-08-17 16:30:03.438756: Battery has 10.25 hours left - now at 8.96kWh
2026-08-17 16:30:03.508405: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.71p, metric_keep 280.89kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.5kWh, PV 0.0kWh
2026-08-17 16:30:03.685819: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 331.77p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.5kWh, PV 0.0kWh
2026-08-17 16:30:03.867554: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.66p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.51kWh, PV 0.0kWh
2026-08-17 16:30:03.878144: Saving plan best values to HA entities
2026-08-17 16:30:04.193095: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 16:30:04.200819: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:30:04.207878: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.59kWh, house 0.0kWh, export 0.0kWh, metric 329.66p, metric10 331.77p
2026-08-17 16:30:04.419091: Marginal costs baseline metric (no standing charge): 283.0297
2026-08-17 16:30:04.979763: Marginal energy costs matrix computed: min=8.0 max=27.71
2026-08-17 16:30:05.154897: Rate array import [{'start': 990, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 990, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:30:05.155753: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 16:30:05.155978: - Import rates are very expensive (33.8p - 46.4p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:30:05.160404: - The battery is currently at 56% and is in eco mode for the next 7 hours.
2026-08-17 16:30:05.160505: - For the next 48 hours there will be no solar generation.
2026-08-17 16:30:05.160531: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:30:05.160550: - Your next charge slot will be in 7 hours where import rates will be cheap (8.0p).
2026-08-17 16:30:05.160568:
2026-08-17 16:30:05.223168: Plan calculation took 2.11 seconds
2026-08-17 16:30:05.228267: No high rate period found
2026-08-17 16:30:05.406422: Import threshold used for optimisation was 8.0p
2026-08-17 16:30:05.495545: Low import rate windows [0: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 1: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 2: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 3: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 4: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 5: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 6: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 7: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 8: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 9: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 10: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 11: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 12: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 13: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 14: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 15: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 16: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 17: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 18: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 19: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 20: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 21: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 22: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 23: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 24: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 25: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 26: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 27: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 28: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 29: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 30: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 31: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 32: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 33: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 34: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 35: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 36: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 37: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 38: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 39: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 40: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 41: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 42: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 43: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 44: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 45: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 46: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 47: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 48: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 49: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 50: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 51: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 52: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 53: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 54: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 55: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 56: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 57: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 58: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 59: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 60: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 61: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 62: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 63: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 64: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 65: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 66: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 67: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 68: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 69: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 70: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 71: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 72: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 73: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 74: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 75: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 76: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 77: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 78: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 79: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 80: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 81: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 82: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 83: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 84: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 85: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 86: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 87: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 88: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 89: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 90: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 91: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 92: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 93: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75]
2026-08-17 16:30:05.517758: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-17 16:30:05.517941: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:30:05.518077: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:30:05.518310: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:30:05.518442: No export window planned
2026-08-17 16:30:05.518594: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:30:05.518635: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:30:05.518820: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:30:05.519010: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:30:05.519066: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:30:05.519193: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:30:05.519334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.519401: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.519600: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.519718: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.519827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.519963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520682: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.520917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:05.521017: Inverter 0 count register writes 0
2026-08-17 16:30:05.553222: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 16:30:05.553514: Recompute is saving previous plan...
2026-08-17 16:30:05.556615: Best charge window [ 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0% ]
2026-08-17 16:30:05.556781: Best export window [ ]
2026-08-17 16:30:05.557688: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:30:05.560952: Load divergence over 8.0 hours mean 495.33W, min 353.4W, max 1063.8W, std dev 151.19W, divergence 15.26%
2026-08-17 16:30:05.617839: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:30:05.618103: LoadML is_calculating True
2026-08-17 16:30:05.618213: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 16:30:05.642788: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 16:30:05.644748: Optimise levels pass started at 2026-08-17 16:30:05
2026-08-17 16:30:05.646057: Optimise all windows, total charge 94 export 1
2026-08-17 16:30:12.032588: >> Region optimisation pass width 960 gives best_metric 365.72p, best_cost 377.07p, best_cycle 47.24kWh, best_import 28.34kWh
2026-08-17 16:30:12.334255: >> Region optimisation pass width 480 gives best_metric 365.72p, best_cost 377.07p, best_cycle 47.24kWh, best_import 28.34kWh
2026-08-17 16:30:12.798008: >> Region optimisation pass width 240 gives best_metric 365.72p, best_cost 377.07p, best_cycle 47.24kWh, best_import 28.34kWh
2026-08-17 16:30:16.540473: >> Region optimisation pass width 120 gives best_metric 364.78p, best_cost 376.14p, best_cycle 45.61kWh, best_import 28.23kWh
2026-08-17 16:30:16.564218: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 60
2026-08-17 16:30:16.564306: Optimise levels pass ended at 2026-08-17 16:30:16, duration 10.9 seconds tried 113 combinations
2026-08-17 16:30:16.564395: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 364.78p, best_keep 0.16kWh, best_cycle 45.61kWh, best_carbon 0kg, best_import 28.23kWh
2026-08-17 16:30:16.616667: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 16:30:41.822705: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0103 val_mae=0.0033 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0022 kWh ema_combined=0.0030 kWh
2026-08-17 16:30:41.822827: ML Predictor: Early stopping at epoch 10
2026-08-17 16:30:41.823928: ML Predictor: Restored best weights from epoch with val_mae=0.0044 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-17 16:30:41.824052: ML Predictor: Training complete, final val_mae=0.0044 kWh val_bias=+0.0001 kWh (+0.1%)
2026-08-17 16:30:42.671144: Tweak plan optimisation started metric 262.4p, cost 274.35p
2026-08-17 16:30:43.261170: Tweak optimisation finished metric 262.4p, cost 274.35p, metric_keep 0.11kWh, cycle 27.28kWh, carbon 0kg, import 15.5kWh, changed 8 window(s)
2026-08-17 16:30:43.304278: Swap charge optimisation started metric 262.4p, cost 274.35p, min_improvement_swap 0.1p
2026-08-17 16:30:43.899032: ML Predictor: AR rollout over holdout: ar_mae=0.0048 kWh ar_bias=+0.0005 kWh (+0.6%) [drift vs teacher-forced: +0.0004 kWh]
2026-08-17 16:30:43.904164: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0044 kWh
2026-08-17 16:30:44.064626: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-17 16:30:44.069826: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 16:30:45.325172: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 16:30:56.415993: Swap charge optimisation finished metric 262.4p, cost 274.35p
2026-08-17 16:30:56.583021: Raw charge windows [ 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:30:56.583739: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:30:56.583976: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:30:56.584143: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 16:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:30:56.615234: Previous plan best metric is 262.82 (cost 274.85) and new plan best metric is 262.4 (cost 274.35)
2026-08-17 16:30:56.615419: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 16:30:56.615511: Plan valid is now true after recompute was False
2026-08-17 16:30:56.637661: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.9p, metric_keep 278.93kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.32kWh, PV 0.0kWh
2026-08-17 16:30:56.784824: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 16:30:56.788426: Battery has 10.25 hours left - now at 8.96kWh
2026-08-17 16:30:56.847654: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 627.12p, metric_keep 280.31kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.3kWh, PV 0.0kWh
2026-08-17 16:30:56.853208: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0596 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7251 std=4.5850) import_rate(mean=16.7072 std=8.3577) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-17 16:30:56.956275: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 16:30:56.959975: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 324.62p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.3kWh, PV 0.0kWh
2026-08-17 16:30:56.980934: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 16:30:57.027463: ML Predictor: Baseline (pre-finetune) val_mae=0.0054 kWh val_bias=+0.0001 kWh
2026-08-17 16:30:57.148830: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 321.48p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.32kWh, PV 0.0kWh
2026-08-17 16:30:57.148967: Saving plan best values to HA entities
2026-08-17 16:30:57.454075: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 16:30:57.459950: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:30:57.473547: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.56kWh, house 0.0kWh, export 0.0kWh, metric 321.48p, metric10 324.62p
2026-08-17 16:30:57.590106: Marginal costs baseline metric (no standing charge): 274.8471
2026-08-17 16:30:58.053199: Marginal energy costs matrix computed: min=8.0 max=27.71
2026-08-17 16:30:58.161870: Rate array import [{'start': 990, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 990, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:30:58.165559: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 16:30:58.165798: - Import rates are very expensive (33.8p - 46.4p) for the next 7 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:30:58.165933: - The battery is currently at 56% and is in eco mode for the next 7 hours.
2026-08-17 16:30:58.166052: - For the next 48 hours there will be no solar generation.
2026-08-17 16:30:58.166164: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:30:58.166277: - Your next charge slot will be in 7 hours where import rates will be cheap (8.0p).
2026-08-17 16:30:58.166386:
2026-08-17 16:30:58.239450: Plan calculation took 52.69 seconds
2026-08-17 16:30:58.248200: Inverter 0: Type SK Sunsynk
2026-08-17 16:30:58.248442: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:30:58.248761: Reserve min: 7%, battery_min: 7%
2026-08-17 16:30:58.248941: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:30:58.249367: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 382W, current battery voltage 51.2V, grid power -54W, load power 443W, PV Power 0W
2026-08-17 16:30:58.249681: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:30:58.249870: Inverter 0 scheduled charge enable is False
2026-08-17 16:30:58.250000: Inverter 0 charge windows currently []
2026-08-17 16:30:58.250124: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:30:58.250361: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:30:58.250508: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:30:58.250652: Inverter 0 scheduled discharge enable is False
2026-08-17 16:30:58.250920: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:30:58.251052: Inverter 0 discharge windows currently []
2026-08-17 16:30:58.251169: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:30:58.251281: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:30:58.251394: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:30:58.348937: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-17 16:30:58.349118: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:30:58.349275: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:30:58.349542: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:30:58.349636: No export window planned
2026-08-17 16:30:58.349762: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:30:58.349806: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:30:58.350096: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:30:58.350385: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:30:58.350533: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:30:58.350683: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:30:58.350869: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.350933: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351063: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351212: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351440: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351712: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.351844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.352016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.352166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.352304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:30:58.352452: Inverter 0 count register writes 0
2026-08-17 16:30:58.383199: Total inverter register writes now 861
2026-08-17 16:30:58.428458: Info: Completed run status Demand
2026-08-17 16:30:58.437096: Info: record_status Demand
2026-08-17 16:30:58.448328: Saved current settings to /config/predbat_config.json
2026-08-17 16:30:58.448696: Compare, best tariff: current metric 104.68p
2026-08-17 16:31:11.822996: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0105 val_mae=0.0046 kWh val_bias=-0.0007 kWh (-1.3%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-17 16:31:25.509168: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0128 val_mae=0.0047 kWh val_bias=-0.0011 kWh (-1.9%) combined=0.0033 kWh ema_combined=0.0031 kWh
2026-08-17 16:31:34.597926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:31:34.598765: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:31:34.598942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:31:34.599256: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:31:34.599393: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:31:34.599532: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:31:34.599647: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:31:38.707708: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0150 val_mae=0.0046 kWh val_bias=+0.0009 kWh (+1.6%) combined=0.0031 kWh ema_combined=0.0031 kWh
2026-08-17 16:31:49.219789: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0134 val_mae=0.0041 kWh val_bias=-0.0007 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0028 kWh
2026-08-17 16:32:02.655014: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0110 val_mae=0.0036 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-17 16:32:16.304324: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0109 val_mae=0.0035 kWh val_bias=-0.0011 kWh (-2.0%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-17 16:32:29.669921: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0099 val_mae=0.0035 kWh val_bias=+0.0008 kWh (+1.4%) combined=0.0028 kWh ema_combined=0.0027 kWh
2026-08-17 16:32:44.472309: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0088 val_mae=0.0042 kWh val_bias=+0.0018 kWh (+3.2%) combined=0.0038 kWh ema_combined=0.0030 kWh
2026-08-17 16:32:57.731127: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0086 val_mae=0.0032 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-17 16:33:11.354177: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0017 kWh ema_combined=0.0025 kWh
2026-08-17 16:33:25.086844: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0078 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 16:33:39.610377: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0089 val_mae=0.0032 kWh val_bias=-0.0014 kWh (-2.5%) combined=0.0025 kWh ema_combined=0.0024 kWh
2026-08-17 16:33:48.988739: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:33:48.988976: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:33:48.989019: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:33:48.989151: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:33:48.989191: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:33:48.989213: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:33:48.989301: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:33:53.085034: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0078 val_mae=0.0031 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 16:34:06.167671: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0087 val_mae=0.0030 kWh val_bias=-0.0009 kWh (-1.7%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-17 16:34:20.759354: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0085 val_mae=0.0029 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-17 16:34:34.015305: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0082 val_mae=0.0027 kWh val_bias=+0.0006 kWh (+1.0%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-17 16:34:49.408188: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0028 kWh val_bias=-0.0011 kWh (-1.9%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-17 16:35:00.297733: --------------- PredBat - update at 2026-08-17 16:35:00+01:00 with clock skew 0 minutes, minutes now 995
2026-08-17 16:35:00.298753: Saved current settings to /config/predbat_config.json
2026-08-17 16:35:00.298988: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 16:35:00.299089: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:35:00.318885: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:35:00.319225: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:35:00.319585: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:35:00.320578: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:35:00.320867: Predbat mode is set to Control charge & discharge
2026-08-17 16:35:00.668315: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:35:00.668531: Using load_power data to fill gaps in load_today data
2026-08-17 16:35:01.882075: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:35:01.882578: Zero load period starting at 2026-08-17T10:54:00+0100 (341 minutes) for 189 minutes with base value 214.05
2026-08-17 16:35:01.883466: Processing 721 30-minute periods for power integration
2026-08-17 16:35:02.143516: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:35:02.143766: Car charging hold False, threshold 6.0kWh
2026-08-17 16:35:02.143928: Current data so far today: load 8.75kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:35:02.171239: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:35:02.171404: Cars: SoC: [50.396]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:35:02.172455: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:35:02.172547: Standing charge is set to 46.63p
2026-08-17 16:35:02.438829: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.439149: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.439405: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.439645: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.439869: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.440124: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.440352: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.440586: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.440796: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:35:02.442290: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:35:02.442434: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:35:02.466723: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:35:02.467127: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:35:02.511631: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:35:02.511859: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:35:02.513279: High export rate found rates in range 99p to -99p
2026-08-17 16:35:02.642167: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:35:02.642312: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:35:02.658024: Battery level now 8.96kWh, -1hr ago 9.44kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -10.5p, rate_forward 6.87p
2026-08-17 16:35:02.658568: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:35:02.797448: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:35:02.797746: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:35:02.904953: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:35:02.928355: Today's load divergence 97.34%, in-day adjustment 88.48%, damping 0.95x, yesterday 68.37% today 97.47% blend 30.9%
2026-08-17 16:35:02.928527: Today's predicted so far 10.43kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 10.43kWh forecast extra.
2026-08-17 16:35:02.928600: Today's actual load so far 10.02kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 16:35:02.967160: Inverter 0: Type SK Sunsynk
2026-08-17 16:35:02.967250: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:35:02.967445: Reserve min: 7%, battery_min: 7%
2026-08-17 16:35:02.967526: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:35:02.967804: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 410W, current battery voltage 51.2V, grid power -55W, load power 476W, PV Power 0W
2026-08-17 16:35:02.967987: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:35:02.968088: Inverter 0 scheduled charge enable is False
2026-08-17 16:35:02.968128: Inverter 0 charge windows currently []
2026-08-17 16:35:02.968164: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:35:02.968383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:35:02.968427: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:35:02.968495: Inverter 0 scheduled discharge enable is False
2026-08-17 16:35:02.968711: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:35:02.968754: Inverter 0 discharge windows currently []
2026-08-17 16:35:02.968805: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:35:02.968881: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:35:02.968916: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:35:03.038706: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:35:03.038811: Plan was last updated on 2026-08-17 16:30:00+01:00 and is now 5.0 minutes old
2026-08-17 16:35:03.039073: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:35:03.039181: Best export window [ ]
2026-08-17 16:35:03.040256: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:35:03.044119: Load divergence over 8.0 hours mean 496.69W, min 322.2W, max 1002.6W, std dev 152.03W, divergence 15.3%
2026-08-17 16:35:03.081991: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:35:03.099997: LoadML is_calculating True
2026-08-17 16:35:03.100088: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 16:35:03.164855: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.34p, metric_keep 279.08kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.41kWh, PV 0.0kWh
2026-08-17 16:35:03.354157: Battery has 10.17 hours left - now at 8.96kWh
2026-08-17 16:35:03.421330: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.56p, metric_keep 280.45kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.4kWh, PV 0.0kWh
2026-08-17 16:35:03.509092: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 327.94p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.4kWh, PV 0.0kWh
2026-08-17 16:35:03.593213: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 325.34p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.41kWh, PV 0.0kWh
2026-08-17 16:35:03.593466: Saving plan best values to HA entities
2026-08-17 16:35:03.944698: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:35:03.952591: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:35:03.960974: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.05kWh, house 0.0kWh, export 0.0kWh, metric 325.34p, metric10 327.94p
2026-08-17 16:35:04.084655: Marginal costs baseline metric (no standing charge): 278.7054
2026-08-17 16:35:04.513115: Marginal energy costs matrix computed: min=7.33 max=27.05
2026-08-17 16:35:04.626613: Rate array import [{'start': 995, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 995, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:35:04.627576: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:35:04.627636: - Import rates are very expensive (33.8p - 46.4p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:35:04.627774: - The battery is currently at 56% and is in eco mode for the next 6 hours.
2026-08-17 16:35:04.627812: - For the next 48 hours there will be no solar generation.
2026-08-17 16:35:04.627855: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:35:04.627957: - Your next charge slot will be in 6 hours where import rates will be cheap (8.0p).
2026-08-17 16:35:04.627996:
2026-08-17 16:35:04.695729: Plan calculation took 1.66 seconds
2026-08-17 16:35:04.699292: No high rate period found
2026-08-17 16:35:04.785066: Import threshold used for optimisation was 8.0p
2026-08-17 16:35:04.901611: Low import rate windows [0: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 1: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 2: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 3: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 4: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 5: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 6: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 7: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 8: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 9: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 10: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 11: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 12: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 13: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 14: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 15: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 16: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 17: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 18: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 19: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 20: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 21: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 22: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 23: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 24: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 25: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 26: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 27: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 28: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 29: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 30: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 31: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 32: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 33: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 34: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 35: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 36: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 37: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 38: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 39: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 40: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 41: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 42: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 43: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 44: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 45: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 46: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 47: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 48: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 49: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 50: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 51: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 52: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 53: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 54: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 55: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 56: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 57: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 58: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 59: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 60: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 61: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 62: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 63: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 64: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 65: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 66: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 67: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 68: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 69: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 70: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 71: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 72: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 73: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 74: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 75: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 76: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 77: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 78: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 79: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 80: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 81: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 82: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 83: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 84: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 85: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 86: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 87: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 88: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 89: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 90: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 91: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 92: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 93: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 94: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75]
2026-08-17 16:35:04.925337: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-17 16:35:04.925529: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:35:04.925617: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:35:04.925794: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:35:04.925868: No export window planned
2026-08-17 16:35:04.925968: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:35:04.926025: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:35:04.926158: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:35:04.926301: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:35:04.926377: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:35:04.926459: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:35:04.926572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.926637: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.926685: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.926743: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.926962: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927104: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:35:04.927527: Inverter 0 count register writes 0
2026-08-17 16:35:04.955261: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 16:35:04.962168: Total inverter register writes now 861
2026-08-17 16:35:05.015800: Info: Completed run status Demand
2026-08-17 16:35:05.027268: Info: record_status Demand
2026-08-17 16:35:05.036474: Saved current settings to /config/predbat_config.json
2026-08-17 16:35:05.036678: Compare, best tariff: current metric 104.68p
2026-08-17 16:35:06.755011: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0080 val_mae=0.0025 kWh val_bias=-0.0007 kWh (-1.2%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-17 16:35:19.597843: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0067 val_mae=0.0024 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-17 16:35:34.345038: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0066 val_mae=0.0024 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-17 16:35:48.371397: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-17 16:35:49.220658: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:35:49.220934: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:35:49.221532: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:35:49.221757: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:35:49.222922: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:35:49.222968: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:35:49.222994: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:36:02.298921: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0063 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-17 16:36:15.968951: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 16:36:29.320429: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-17 16:36:41.834030: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0066 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 16:36:56.405055: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0056 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-17 16:37:10.726685: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-17 16:37:24.423411: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-17 16:37:37.123047: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0021 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0012 kWh
2026-08-17 16:37:49.630672: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:37:49.631133: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:37:49.631188: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:37:49.631428: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:37:49.631580: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:37:49.631717: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:37:49.631837: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:37:50.564855: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0012 kWh
2026-08-17 16:37:50.570449: ML Predictor: Restored best weights from epoch with val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 16:37:50.570798: ML Predictor: Training complete, final val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 16:37:53.422904: ML Predictor: AR rollout over holdout: ar_mae=0.0023 kWh ar_bias=+0.0000 kWh (+0.0%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 16:37:53.427503: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0021 kWh
2026-08-17 16:37:53.517500: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-17 16:37:53.517933: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 16:37:54.217702: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-17 16:37:59.603141: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-17 16:37:59.663121: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7161 std=4.5826) import_rate(mean=16.6934 std=8.3727) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-17 16:37:59.755612: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 16:37:59.772195: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 16:37:59.801384: ML Predictor: Baseline (pre-finetune) val_mae=0.0059 kWh val_bias=-0.0010 kWh
2026-08-17 16:38:13.210733: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0110 val_mae=0.0045 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-17 16:38:27.289813: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0114 val_mae=0.0042 kWh val_bias=-0.0005 kWh (-1.3%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-17 16:38:41.003073: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0136 val_mae=0.0043 kWh val_bias=-0.0008 kWh (-1.8%) combined=0.0026 kWh ema_combined=0.0025 kWh
2026-08-17 16:38:54.349087: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0127 val_mae=0.0039 kWh val_bias=-0.0011 kWh (-2.5%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-17 16:39:10.370258: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0114 val_mae=0.0042 kWh val_bias=+0.0016 kWh (+3.8%) combined=0.0044 kWh ema_combined=0.0030 kWh
2026-08-17 16:39:24.778357: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0088 val_mae=0.0033 kWh val_bias=-0.0006 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0027 kWh
2026-08-17 16:39:38.811735: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0085 val_mae=0.0033 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-17 16:39:54.548734: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0094 val_mae=0.0040 kWh val_bias=-0.0023 kWh (-5.3%) combined=0.0029 kWh ema_combined=0.0027 kWh
2026-08-17 16:40:00.844807: --------------- PredBat - update at 2026-08-17 16:40:00+01:00 with clock skew 0 minutes, minutes now 1000
2026-08-17 16:40:00.846115: Saved current settings to /config/predbat_config.json
2026-08-17 16:40:00.846370: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 16:40:00.846528: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:40:00.864697: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:40:00.864843: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:40:00.865003: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:40:00.865512: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:40:00.865631: Predbat mode is set to Control charge & discharge
2026-08-17 16:40:01.228275: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:40:01.228518: Using load_power data to fill gaps in load_today data
2026-08-17 16:40:02.601345: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:40:02.601677: Zero load period starting at 2026-08-17T10:54:00+0100 (346 minutes) for 189 minutes with base value 214.025
2026-08-17 16:40:02.602583: Processing 721 30-minute periods for power integration
2026-08-17 16:40:02.863776: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:40:02.864360: Car charging hold False, threshold 6.0kWh
2026-08-17 16:40:02.864666: Current data so far today: load 8.85kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:40:02.892186: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:40:02.892439: Cars: SoC: [49.81]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:40:02.893543: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:40:02.893683: Standing charge is set to 46.63p
2026-08-17 16:40:03.162068: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.163826: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.164189: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.164531: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.164846: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.165155: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.165481: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.176993: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.177349: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:40:03.178956: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:40:03.179586: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:40:03.187940: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:40:03.189327: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:40:03.248695: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:40:03.249023: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:40:03.250600: High export rate found rates in range 99p to -99p
2026-08-17 16:40:03.373374: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:40:03.373504: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:40:03.387555: Battery level now 8.96kWh, -1hr ago 9.28kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -10.5p, rate_forward 6.87p
2026-08-17 16:40:03.387947: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:40:03.459573: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:40:03.459741: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:40:03.628148: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:40:03.657232: Today's load divergence 97.82%, in-day adjustment 88.89%, damping 0.95x, yesterday 68.37% today 97.93% blend 30.56%
2026-08-17 16:40:03.657388: Today's predicted so far 10.42kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 10.42kWh forecast extra.
2026-08-17 16:40:03.657426: Today's actual load so far 10.09kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 16:40:03.717987: Inverter 0: Type SK Sunsynk
2026-08-17 16:40:03.718207: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:40:03.718538: Reserve min: 7%, battery_min: 7%
2026-08-17 16:40:03.718761: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:40:03.719162: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 412W, current battery voltage 51.2V, grid power -55W, load power 474W, PV Power 0W
2026-08-17 16:40:03.719522: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:40:03.719738: Inverter 0 scheduled charge enable is False
2026-08-17 16:40:03.719833: Inverter 0 charge windows currently []
2026-08-17 16:40:03.719975: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:40:03.720245: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:40:03.720301: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:40:03.720454: Inverter 0 scheduled discharge enable is False
2026-08-17 16:40:03.720731: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:40:03.720825: Inverter 0 discharge windows currently []
2026-08-17 16:40:03.720877: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:40:03.720971: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:40:03.721043: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:40:03.824056: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:40:03.824163: Plan was last updated on 2026-08-17 16:30:00+01:00 and is now 10.0 minutes old
2026-08-17 16:40:03.824387: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:40:03.824433: Best export window [ ]
2026-08-17 16:40:03.825288: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:40:03.829457: Load divergence over 8.0 hours mean 496.73W, min 336.6W, max 1039.2W, std dev 153.82W, divergence 15.48%
2026-08-17 16:40:03.853458: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:40:03.853641: LoadML is_calculating True
2026-08-17 16:40:03.853680: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 16:40:03.905669: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.0p, metric_keep 279.31kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.6kWh, PV 0.0kWh
2026-08-17 16:40:04.118200: Battery has 10.08 hours left - now at 8.96kWh
2026-08-17 16:40:04.172741: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.27p, metric_keep 280.69kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.58kWh, PV 0.0kWh
2026-08-17 16:40:04.343746: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 331.4p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.58kWh, PV 0.0kWh
2026-08-17 16:40:04.491830: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.4p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.6kWh, PV 0.0kWh
2026-08-17 16:40:04.492545: Saving plan best values to HA entities
2026-08-17 16:40:04.696731: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:40:04.704564: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:40:04.713539: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.55kWh, house 0.0kWh, export 0.0kWh, metric 329.4p, metric10 331.4p
2026-08-17 16:40:04.864920: Marginal costs baseline metric (no standing charge): 282.768
2026-08-17 16:40:05.295503: Marginal energy costs matrix computed: min=6.67 max=26.48
2026-08-17 16:40:05.462243: Rate array import [{'start': 1000, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1000, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:40:05.463429: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:40:05.463495: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:40:05.463521: - The battery is currently at 56% and is in eco mode for the next 6 and three quarters hours.
2026-08-17 16:40:05.463540: - For the next 48 hours there will be no solar generation.
2026-08-17 16:40:05.463559: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:40:05.463580: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 16:40:05.463597:
2026-08-17 16:40:05.511534: Plan calculation took 1.69 seconds
2026-08-17 16:40:05.516144: No high rate period found
2026-08-17 16:40:05.578223: Import threshold used for optimisation was 8.0p
2026-08-17 16:40:05.646255: Low import rate windows [0: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 1: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 2: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 3: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 4: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 5: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 6: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 7: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 8: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 9: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 10: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 11: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 12: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 13: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 14: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 15: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 16: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 17: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 18: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 19: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 20: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 21: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 22: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 23: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 24: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 25: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 26: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 27: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 28: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 29: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 30: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 31: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 32: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 33: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 34: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 35: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 36: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 37: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 38: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 39: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 40: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 41: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 42: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 43: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 44: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 45: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 46: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 47: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 48: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 49: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 50: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 51: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 52: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 53: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 54: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 55: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 56: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 57: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 58: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 59: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 60: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 61: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 62: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 63: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 64: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 65: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 66: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 67: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 68: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 69: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 70: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 71: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 72: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 73: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 74: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 75: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 76: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 77: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 78: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 79: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 80: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 81: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 82: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 83: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 84: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 85: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 86: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 87: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 88: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 89: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 90: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 91: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 92: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 93: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 94: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75]
2026-08-17 16:40:05.653722: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-17 16:40:05.653933: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:40:05.654018: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:40:05.654409: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:40:05.654496: No export window planned
2026-08-17 16:40:05.654605: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:40:05.654798: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:40:05.654965: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:40:05.655113: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:40:05.655166: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:40:05.655212: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:40:05.655286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.655341: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.655373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.655414: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.655450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.655486: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.655969: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656212: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656250: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656277: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:05.656364: Inverter 0 count register writes 0
2026-08-17 16:40:05.674800: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 16:40:05.674957: Recompute is saving previous plan...
2026-08-17 16:40:05.678769: Best charge window [ 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0% ]
2026-08-17 16:40:05.678948: Best export window [ ]
2026-08-17 16:40:05.680047: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:40:05.684034: Load divergence over 8.0 hours mean 496.73W, min 336.6W, max 1039.2W, std dev 153.82W, divergence 15.48%
2026-08-17 16:40:05.707390: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:40:05.707488: LoadML is_calculating True
2026-08-17 16:40:05.707513: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 16:40:05.718070: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 16:40:05.719440: Optimise levels pass started at 2026-08-17 16:40:05
2026-08-17 16:40:05.719644: Optimise all windows, total charge 94 export 1
2026-08-17 16:40:08.334341: >> Region optimisation pass width 960 gives best_metric 371.69p, best_cost 418.61p, best_cycle 47.28kWh, best_import 33.54kWh
2026-08-17 16:40:08.927361: >> Region optimisation pass width 480 gives best_metric 371.69p, best_cost 418.61p, best_cycle 47.28kWh, best_import 33.54kWh
2026-08-17 16:40:09.810719: >> Region optimisation pass width 240 gives best_metric 371.69p, best_cost 418.61p, best_cycle 47.28kWh, best_import 33.54kWh
2026-08-17 16:40:12.507747: >> Region optimisation pass width 120 gives best_metric 371.69p, best_cost 418.61p, best_cycle 47.28kWh, best_import 33.54kWh
2026-08-17 16:40:12.508353: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 60
2026-08-17 16:40:12.508516: Optimise levels pass ended at 2026-08-17 16:40:12, duration 6.8 seconds tried 200 combinations
2026-08-17 16:40:12.529353: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 371.69p, best_keep 0.1kWh, best_cycle 47.28kWh, best_carbon 0kg, best_import 33.54kWh
2026-08-17 16:40:12.574086: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 16:40:28.808137: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0093 val_mae=0.0035 kWh val_bias=-0.0015 kWh (-3.6%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-17 16:40:35.643355: Tweak plan optimisation started metric 261.91p, cost 273.9p
2026-08-17 16:40:36.169877: Tweak optimisation finished metric 261.91p, cost 273.9p, metric_keep 0.1kWh, cycle 27.16kWh, carbon 0kg, import 15.45kWh, changed 8 window(s)
2026-08-17 16:40:36.206379: Swap charge optimisation started metric 261.91p, cost 273.9p, min_improvement_swap 0.1p
2026-08-17 16:40:45.348789: Swap charge optimisation finished metric 261.91p, cost 273.9p
2026-08-17 16:40:45.564426: Raw charge windows [ 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:40:45.565200: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:40:45.565521: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:40:45.565870: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:40:45.645159: Previous plan best metric is 262.41 (cost 274.48) and new plan best metric is 261.91 (cost 273.9)
2026-08-17 16:40:45.647234: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 16:40:45.647455: Plan valid is now true after recompute was False
2026-08-17 16:40:45.703725: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.39p, metric_keep 278.73kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.39kWh, PV 0.0kWh
2026-08-17 16:40:45.910160: Battery has 10.08 hours left - now at 8.96kWh
2026-08-17 16:40:45.967548: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.58p, metric_keep 280.1kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.37kWh, PV 0.0kWh
2026-08-17 16:40:46.057967: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 324.15p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.37kWh, PV 0.0kWh
2026-08-17 16:40:46.224813: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 321.12p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.39kWh, PV 0.0kWh
2026-08-17 16:40:46.224927: Saving plan best values to HA entities
2026-08-17 16:40:46.484785: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:40:46.490012: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:40:46.494773: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.52kWh, house 0.0kWh, export 0.0kWh, metric 321.12p, metric10 324.15p
2026-08-17 16:40:46.611222: Marginal costs baseline metric (no standing charge): 274.4838
2026-08-17 16:40:47.079375: Marginal energy costs matrix computed: min=6.67 max=26.48
2026-08-17 16:40:47.164752: Rate array import [{'start': 1000, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1000, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:40:47.165808: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:40:47.165894: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:40:47.165926: - The battery is currently at 56% and is in eco mode for the next 6 and three quarters hours.
2026-08-17 16:40:47.165975: - For the next 48 hours there will be no solar generation.
2026-08-17 16:40:47.166005: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:40:47.166024: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 16:40:47.166047:
2026-08-17 16:40:47.204044: Plan calculation took 41.53 seconds
2026-08-17 16:40:47.204294: Inverter 0: Type SK Sunsynk
2026-08-17 16:40:47.204360: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:40:47.204527: Reserve min: 7%, battery_min: 7%
2026-08-17 16:40:47.204598: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:40:47.204850: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 412W, current battery voltage 51.2V, grid power -55W, load power 474W, PV Power 0W
2026-08-17 16:40:47.205001: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:40:47.205090: Inverter 0 scheduled charge enable is False
2026-08-17 16:40:47.205128: Inverter 0 charge windows currently []
2026-08-17 16:40:47.205257: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:40:47.205465: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:40:47.205513: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:40:47.205596: Inverter 0 scheduled discharge enable is False
2026-08-17 16:40:47.205783: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:40:47.205828: Inverter 0 discharge windows currently []
2026-08-17 16:40:47.205887: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:40:47.205947: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:40:47.206003: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:40:47.279712: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-17 16:40:47.280000: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:40:47.280161: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:40:47.280469: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:40:47.280626: No export window planned
2026-08-17 16:40:47.280828: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:40:47.280885: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:40:47.281180: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:40:47.281450: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:40:47.281526: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:40:47.281703: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:40:47.281871: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.281938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282274: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282407: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282467: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282602: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.282942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.283076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.283212: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.283337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.283397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:40:47.283516: Inverter 0 count register writes 0
2026-08-17 16:40:47.316773: Total inverter register writes now 861
2026-08-17 16:40:47.380411: Info: Completed run status Demand
2026-08-17 16:40:47.398187: Info: record_status Demand
2026-08-17 16:40:47.409783: Saved current settings to /config/predbat_config.json
2026-08-17 16:40:47.410471: Compare, best tariff: current metric 104.68p
2026-08-17 16:40:59.702881: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0098 val_mae=0.0028 kWh val_bias=-0.0008 kWh (-1.8%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-17 16:41:15.172093: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0077 val_mae=0.0028 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0020 kWh
2026-08-17 16:41:19.593502: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:41:19.593770: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:41:19.593819: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:41:19.593981: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:41:19.594027: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:41:19.594055: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:41:19.594157: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:41:29.856722: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0087 val_mae=0.0030 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-17 16:41:43.550124: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0088 val_mae=0.0029 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-17 16:41:56.268162: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0079 val_mae=0.0027 kWh val_bias=-0.0010 kWh (-2.4%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-17 16:42:11.421460: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0069 val_mae=0.0027 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-17 16:42:25.125235: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0071 val_mae=0.0027 kWh val_bias=-0.0010 kWh (-2.4%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-17 16:42:39.358055: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0070 val_mae=0.0026 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-17 16:42:53.131076: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0065 val_mae=0.0024 kWh val_bias=-0.0007 kWh (-1.7%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-17 16:43:06.688157: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0060 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-1.0%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-17 16:43:21.749764: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0065 val_mae=0.0023 kWh val_bias=+0.0004 kWh (+1.0%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-17 16:43:33.956127: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:43:33.956414: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:43:33.956466: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:43:33.956630: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:43:33.956677: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:43:33.956704: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:43:33.956810: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:43:35.210785: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0062 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0011 kWh ema_combined=0.0015 kWh
2026-08-17 16:43:49.570895: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0016 kWh ema_combined=0.0015 kWh
2026-08-17 16:44:03.433593: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0022 kWh ema_combined=0.0017 kWh
2026-08-17 16:44:19.479988: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0020 kWh ema_combined=0.0018 kWh
2026-08-17 16:44:33.227254: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-17 16:44:45.869551: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-17 16:44:58.991492: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0015 kWh
2026-08-17 16:45:00.283047: --------------- PredBat - update at 2026-08-17 16:45:00+01:00 with clock skew 0 minutes, minutes now 1005
2026-08-17 16:45:00.284133: Saved current settings to /config/predbat_config.json
2026-08-17 16:45:00.284274: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 16:45:00.284381: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:45:00.305330: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:45:00.305526: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:45:00.305884: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:45:00.306520: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:45:00.306766: Predbat mode is set to Control charge & discharge
2026-08-17 16:45:00.613461: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:45:00.613705: Using load_power data to fill gaps in load_today data
2026-08-17 16:45:01.592431: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:45:01.593005: Zero load period starting at 2026-08-17T10:54:00+0100 (351 minutes) for 189 minutes with base value 214.0
2026-08-17 16:45:01.593553: Processing 721 30-minute periods for power integration
2026-08-17 16:45:01.829228: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:45:01.829513: Car charging hold False, threshold 6.0kWh
2026-08-17 16:45:01.829691: Current data so far today: load 8.9kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:45:01.847365: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:45:01.847657: Cars: SoC: [49.81]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:45:01.848742: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:45:01.849335: Standing charge is set to 46.63p
2026-08-17 16:45:02.111017: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.111338: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.111538: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.111730: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.112011: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.112238: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.112445: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.112620: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.112792: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:45:02.113852: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:45:02.113959: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:45:02.120729: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:45:02.121071: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:45:02.215396: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:45:02.215508: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:45:02.217135: High export rate found rates in range 99p to -99p
2026-08-17 16:45:02.462253: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:45:02.462420: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:45:02.494001: Battery level now 8.96kWh, -1hr ago 9.28kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -10.5p, rate_forward 6.87p
2026-08-17 16:45:02.494551: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:45:02.609101: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:45:02.609319: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:45:02.786467: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:45:02.815383: Today's load divergence 98.08%, in-day adjustment 89.17%, damping 0.95x, yesterday 68.37% today 98.17% blend 30.21%
2026-08-17 16:45:02.815520: Today's predicted so far 10.42kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 10.42kWh forecast extra.
2026-08-17 16:45:02.815561: Today's actual load so far 10.12kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 16:45:02.874165: Inverter 0: Type SK Sunsynk
2026-08-17 16:45:02.874249: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:45:02.874445: Reserve min: 7%, battery_min: 7%
2026-08-17 16:45:02.874528: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:45:02.874808: Inverter 0 SoC: 8.96kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power 414W, current battery voltage 51.2V, grid power -56W, load power 476W, PV Power 0W
2026-08-17 16:45:02.874971: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:45:02.875066: Inverter 0 scheduled charge enable is False
2026-08-17 16:45:02.875108: Inverter 0 charge windows currently []
2026-08-17 16:45:02.875142: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:45:02.875265: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:45:02.875323: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:45:02.875368: Inverter 0 scheduled discharge enable is False
2026-08-17 16:45:02.875509: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:45:02.875549: Inverter 0 discharge windows currently []
2026-08-17 16:45:02.875576: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:45:02.875618: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:45:02.875728: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:45:03.017272: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:45:03.017420: Plan was last updated on 2026-08-17 16:40:00+01:00 and is now 5.0 minutes old
2026-08-17 16:45:03.017682: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:45:03.017731: Best export window [ ]
2026-08-17 16:45:03.018985: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:45:03.024488: Load divergence over 8.0 hours mean 496.77W, min 331.2W, max 1005.0W, std dev 161.57W, divergence 16.26%
2026-08-17 16:45:03.058828: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:45:03.059043: LoadML is_calculating True
2026-08-17 16:45:03.059078: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 16:45:03.160197: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.43p, metric_keep 278.88kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.53kWh, PV 0.0kWh
2026-08-17 16:45:03.376891: Battery has 10.08 hours left - now at 8.96kWh
2026-08-17 16:45:03.447696: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.62p, metric_keep 280.28kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.51kWh, PV 0.0kWh
2026-08-17 16:45:03.604651: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 327.52p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.51kWh, PV 0.0kWh
2026-08-17 16:45:03.714360: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 324.99p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.53kWh, PV 0.0kWh
2026-08-17 16:45:03.714654: Saving plan best values to HA entities
2026-08-17 16:45:04.032757: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:45:04.042601: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 16:45:04.066517: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.0kWh, house 0.0kWh, export 0.0kWh, metric 324.99p, metric10 327.52p
2026-08-17 16:45:04.212406: Marginal costs baseline metric (no standing charge): 278.3576
2026-08-17 16:45:04.626449: Marginal energy costs matrix computed: min=6.0 max=25.93
2026-08-17 16:45:04.781245: Rate array import [{'start': 1005, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1005, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:45:04.782141: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 16:45:04.782193: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:45:04.782218: - The battery is currently at 56% and is in eco mode for the next 6 and three quarters hours.
2026-08-17 16:45:04.782352: - For the next 48 hours there will be no solar generation.
2026-08-17 16:45:04.782437: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:45:04.782479: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 16:45:04.782541:
2026-08-17 16:45:04.842366: Plan calculation took 1.82 seconds
2026-08-17 16:45:04.846764: No high rate period found
2026-08-17 16:45:04.967827: Import threshold used for optimisation was 8.0p
2026-08-17 16:45:05.095667: Low import rate windows [0: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 1: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 2: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 3: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 4: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 5: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 6: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 7: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 8: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 9: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 10: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 11: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 12: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 13: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 14: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 15: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 16: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 17: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 18: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 19: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 20: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 21: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 22: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 23: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 24: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 25: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 26: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 27: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 28: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 29: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 30: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 31: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 32: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 33: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 34: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 35: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 36: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 37: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 38: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 39: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 40: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 41: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 42: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 43: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 44: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 45: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 46: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 47: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 48: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 49: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 50: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 51: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 52: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 53: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 54: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 55: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 56: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 57: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 58: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 59: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 60: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 61: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 62: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 63: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 64: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 65: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 66: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 67: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 68: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 69: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 70: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 71: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 72: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 73: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 74: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 75: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 76: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 77: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 78: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 79: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 80: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 81: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 82: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 83: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 84: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 85: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 86: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 87: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 88: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 89: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 90: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 91: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 92: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 93: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 94: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75]
2026-08-17 16:45:05.109487: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 56%, target 100%
2026-08-17 16:45:05.109700: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:45:05.109786: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:45:05.110006: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:45:05.110095: No export window planned
2026-08-17 16:45:05.110222: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:45:05.110266: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:45:05.112822: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:45:05.113081: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:45:05.113192: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:45:05.113324: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:45:05.113513: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.113730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.118888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.119100: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.119223: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.119359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.119502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.119715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.119857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.120029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.120170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.120321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.120456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.120584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:45:05.142085: Inverter 0 count register writes 0
2026-08-17 16:45:05.190313: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 16:45:05.199615: Total inverter register writes now 861
2026-08-17 16:45:05.251576: Info: Completed run status Demand
2026-08-17 16:45:05.263104: Info: record_status Demand
2026-08-17 16:45:05.272406: Saved current settings to /config/predbat_config.json
2026-08-17 16:45:05.272718: Compare, best tariff: current metric 104.68p
2026-08-17 16:45:17.485484: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0049 val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-17 16:45:31.961807: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-17 16:45:46.680031: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-17 16:45:46.681035: ML Predictor: Restored best weights from epoch with val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-17 16:45:46.681312: ML Predictor: Training complete, final val_mae=0.0022 kWh val_bias=-0.0002 kWh (-0.5%)
2026-08-17 16:45:47.676297: ML Predictor: AR rollout over holdout: ar_mae=0.0023 kWh ar_bias=-0.0000 kWh (-0.0%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 16:45:47.680454: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0022 kWh
2026-08-17 16:45:47.680622: ML Predictor: Curriculum final pass 5/5: full dataset (59.1 days)
2026-08-17 16:45:47.680732: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 16:45:48.317701: ML Predictor: Creating dataset with 1418 hours of training data, 48 hours validation
2026-08-17 16:45:50.741193: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:45:50.741461: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:45:50.741514: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:45:50.742147: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:45:50.747425: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:45:50.752639: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:45:50.757850: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:45:53.709235: ML Predictor: Created 16731 training samples, 576 validation samples
2026-08-17 16:45:53.763593: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7076 std=4.5802) import_rate(mean=16.6824 std=8.3876) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1946 std=0.5281)
2026-08-17 16:45:53.857648: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 16:45:53.874995: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 16:45:53.903410: ML Predictor: Baseline (pre-finetune) val_mae=0.0023 kWh val_bias=-0.0001 kWh
2026-08-17 16:46:08.956374: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0092 val_mae=0.0032 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-17 16:46:25.267034: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0117 val_mae=0.0036 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0020 kWh ema_combined=0.0018 kWh
2026-08-17 16:46:38.930710: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0130 val_mae=0.0032 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-17 16:46:52.882517: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0116 val_mae=0.0029 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-17 16:47:07.829249: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0091 val_mae=0.0026 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-17 16:47:19.482239: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0094 val_mae=0.0029 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0018 kWh
2026-08-17 16:47:34.619121: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0096 val_mae=0.0028 kWh val_bias=-0.0012 kWh (-2.7%) combined=0.0021 kWh ema_combined=0.0019 kWh
2026-08-17 16:47:48.643655: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0113 val_mae=0.0033 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 16:48:02.855538: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0108 val_mae=0.0026 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-17 16:48:03.929186: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:48:03.929616: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:48:03.929760: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:48:03.930040: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:48:03.930175: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:48:03.930308: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:48:03.930424: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:48:17.288691: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0080 val_mae=0.0026 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-17 16:48:17.288934: ML Predictor: Early stopping at epoch 10
2026-08-17 16:48:17.289949: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 16:48:17.290314: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 16:48:18.301679: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=+0.0001 kWh (+0.3%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 16:48:18.307029: ML Predictor: Curriculum training complete, final val_mae=0.0023 kWh
2026-08-17 16:48:18.318930: ML Component: Training successful, val_mae=0.0023 kWh
2026-08-17 16:48:18.447351: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 16:48:18.451575: ML Component: Generating predictions load data age 59.0 days, 17020 data points
2026-08-17 16:48:18.592321: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0245 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 16:48:18.993968: ML Component: Generated 576 predictions (total 25.04 kWh over 48h)
2026-08-17 16:48:19.032317: ML Component: Prediction cycle completed
2026-08-17 16:48:19.145646: ML Component: Saved 17020 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 16:50:00.252505: --------------- PredBat - update at 2026-08-17 16:50:00+01:00 with clock skew 0 minutes, minutes now 1010
2026-08-17 16:50:00.253291: Saved current settings to /config/predbat_config.json
2026-08-17 16:50:00.253409: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 16:50:00.253453: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:50:00.264585: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:50:00.264681: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:50:00.264809: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:50:00.265199: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:50:00.265307: Predbat mode is set to Control charge & discharge
2026-08-17 16:50:00.422676: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:50:00.422797: Using load_power data to fill gaps in load_today data
2026-08-17 16:50:01.176370: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:50:01.176520: Zero load period starting at 2026-08-17T10:54:00+0100 (356 minutes) for 189 minutes with base value 213.95
2026-08-17 16:50:01.176946: Processing 721 30-minute periods for power integration
2026-08-17 16:50:01.344414: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:50:01.344529: Car charging hold False, threshold 6.0kWh
2026-08-17 16:50:01.344572: Current data so far today: load 8.95kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:50:01.361029: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:50:01.361127: Cars: SoC: [49.224000000000004]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:50:01.361806: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:50:01.361874: Standing charge is set to 46.63p
2026-08-17 16:50:01.449125: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.449391: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.449581: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.449761: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.449935: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.450133: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.450322: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.450492: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.450653: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:50:01.451771: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:50:01.451882: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:50:01.457499: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:50:01.457799: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:50:01.502180: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:50:01.502341: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:50:01.503644: High export rate found rates in range 99p to -99p
2026-08-17 16:50:01.612989: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:50:01.613112: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:50:01.627563: Battery level now 8.96kWh, -1hr ago 9.28kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -10.5p, rate_forward 6.87p
2026-08-17 16:50:01.627982: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:50:01.690459: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:50:01.690625: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:50:01.775168: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:50:01.798942: Today's load divergence 98.19%, in-day adjustment 89.35%, damping 0.95x, yesterday 68.37% today 98.28% blend 29.86%
2026-08-17 16:50:01.799013: Today's predicted so far 10.44kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 10.44kWh forecast extra.
2026-08-17 16:50:01.799039: Today's actual load so far 10.16kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 16:50:01.830960: Inverter 0: Type SK Sunsynk
2026-08-17 16:50:01.831041: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:50:01.831249: Reserve min: 7%, battery_min: 7%
2026-08-17 16:50:01.831365: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:50:01.831666: Inverter 0 SoC: 8.85kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 409W, current battery voltage 51.2V, grid power -54W, load power 470W, PV Power 0W
2026-08-17 16:50:01.831849: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:50:01.832020: Inverter 0 scheduled charge enable is False
2026-08-17 16:50:01.832072: Inverter 0 charge windows currently []
2026-08-17 16:50:01.832112: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:50:01.832284: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:50:01.832327: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:50:01.832379: Inverter 0 scheduled discharge enable is False
2026-08-17 16:50:01.832590: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:50:01.832632: Inverter 0 discharge windows currently []
2026-08-17 16:50:01.832671: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:50:01.832708: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:50:01.832748: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:50:01.895449: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:50:01.895565: Plan was last updated on 2026-08-17 16:40:00+01:00 and is now 10.0 minutes old
2026-08-17 16:50:01.895830: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:50:01.895877: Best export window [ ]
2026-08-17 16:50:01.897044: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:50:01.901423: Load divergence over 8.0 hours mean 496.84W, min 361.2W, max 977.4W, std dev 152.3W, divergence 15.33%
2026-08-17 16:50:01.924171: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:50:01.924278: LoadML is_calculating False
2026-08-17 16:50:01.924332: Creating pool of 12 processes to match your CPU count
2026-08-17 16:50:02.044766: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.47p, metric_keep 279.49kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.64kWh, PV 0.0kWh
2026-08-17 16:50:02.162702: Battery has 9.92 hours left - now at 8.85kWh
2026-08-17 16:50:02.201016: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.72p, metric_keep 280.86kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.62kWh, PV 0.0kWh
2026-08-17 16:50:02.291236: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 331.74p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.62kWh, PV 0.0kWh
2026-08-17 16:50:02.383339: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.67p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.64kWh, PV 0.0kWh
2026-08-17 16:50:02.383421: Saving plan best values to HA entities
2026-08-17 16:50:02.525531: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:50:02.530528: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:50:02.535860: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.59kWh, house 0.0kWh, export 0.0kWh, metric 329.67p, metric10 331.74p
2026-08-17 16:50:02.604333: Marginal costs baseline metric (no standing charge): 283.0386
2026-08-17 16:50:02.836929: Marginal energy costs matrix computed: min=5.33 max=25.64
2026-08-17 16:50:02.907258: Rate array import [{'start': 1010, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1010, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:50:02.907845: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 16:50:02.907879: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:50:02.907928: - The battery is currently at 55% and is in eco mode for the next 6 and three quarters hours.
2026-08-17 16:50:02.907967: - For the next 48 hours there will be no solar generation.
2026-08-17 16:50:02.907984: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:50:02.907999: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 16:50:02.908032:
2026-08-17 16:50:02.953973: Plan calculation took 1.06 seconds
2026-08-17 16:50:02.957831: No high rate period found
2026-08-17 16:50:03.007881: Import threshold used for optimisation was 8.0p
2026-08-17 16:50:03.060564: Low import rate windows [0: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 1: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 2: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 3: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 4: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 5: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 6: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 7: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 8: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 9: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 10: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 11: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 12: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 13: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 14: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 15: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 16: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 17: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 18: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 19: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 20: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 21: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 22: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 23: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 24: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 25: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 26: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 27: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 28: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 29: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 30: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 31: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 32: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 33: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 34: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 35: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 36: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 37: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 38: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 39: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 40: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 41: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 42: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 43: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 44: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 45: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 46: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 47: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 48: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 49: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 50: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 51: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 52: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 53: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 54: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 55: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 56: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 57: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 58: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 59: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 60: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 61: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 62: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 63: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 64: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 65: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 66: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 67: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 68: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 69: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 70: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 71: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 72: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 73: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 74: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 75: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 76: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 77: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 78: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 79: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 80: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 81: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 82: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 83: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 84: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 85: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 86: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 87: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 88: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 89: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 90: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 91: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 92: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 93: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 94: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75]
2026-08-17 16:50:03.066004: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-17 16:50:03.066133: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:50:03.066225: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:50:03.066492: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:50:03.066587: No export window planned
2026-08-17 16:50:03.066714: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:50:03.066749: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:50:03.066879: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:50:03.067070: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:50:03.067129: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:50:03.067189: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:50:03.067286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067363: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067388: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067420: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067445: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067469: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:03.067720: Inverter 0 count register writes 0
2026-08-17 16:50:03.082359: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 16:50:03.082532: Recompute is saving previous plan...
2026-08-17 16:50:03.085616: Best charge window [ 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0% ]
2026-08-17 16:50:03.085688: Best export window [ ]
2026-08-17 16:50:03.086499: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:50:03.090649: Load divergence over 8.0 hours mean 496.84W, min 361.2W, max 977.4W, std dev 152.3W, divergence 15.33%
2026-08-17 16:50:03.109821: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:50:03.109951: LoadML is_calculating False
2026-08-17 16:50:03.110024: Creating pool of 12 processes to match your CPU count
2026-08-17 16:50:03.192686: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 16:50:03.194859: Optimise levels pass started at 2026-08-17 16:50:03
2026-08-17 16:50:03.194918: Optimise all windows, total charge 94 export 1
2026-08-17 16:50:03.562647: >> Region optimisation pass width 960 gives best_metric 372.73p, best_cost 419.03p, best_cycle 47.37kWh, best_import 33.59kWh
2026-08-17 16:50:03.781763: >> Region optimisation pass width 480 gives best_metric 372.73p, best_cost 419.03p, best_cycle 47.37kWh, best_import 33.59kWh
2026-08-17 16:50:04.128994: >> Region optimisation pass width 240 gives best_metric 372.73p, best_cost 419.03p, best_cycle 47.37kWh, best_import 33.59kWh
2026-08-17 16:50:05.029912: >> Region optimisation pass width 120 gives best_metric 372.73p, best_cost 419.03p, best_cycle 47.37kWh, best_import 33.59kWh
2026-08-17 16:50:05.030308: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 60
2026-08-17 16:50:05.030380: Optimise levels pass ended at 2026-08-17 16:50:05, duration 1.8 seconds tried 200 combinations
2026-08-17 16:50:05.030440: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 372.73p, best_keep 0.11kWh, best_cycle 47.37kWh, best_carbon 0kg, best_import 33.59kWh
2026-08-17 16:50:05.046286: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 16:50:09.499414: Tweak plan optimisation started metric 262.31p, cost 274.26p
2026-08-17 16:50:09.805950: Tweak optimisation finished metric 262.31p, cost 274.26p, metric_keep 0.11kWh, cycle 27.16kWh, carbon 0kg, import 15.49kWh, changed 8 window(s)
2026-08-17 16:50:09.826114: Swap charge optimisation started metric 262.31p, cost 274.26p, min_improvement_swap 0.1p
2026-08-17 16:50:15.756445: Swap charge optimisation finished metric 262.31p, cost 274.26p
2026-08-17 16:50:15.861112: Raw charge windows [ 17-08 16:30:00 - 17-08 17:00:00 @ 33.75p 0%, 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:50:15.861616: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:50:15.861788: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:50:15.861930: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 16:50:15.891357: Previous plan best metric is 262.72 (cost 274.75) and new plan best metric is 262.31 (cost 274.26)
2026-08-17 16:50:15.891536: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 16:50:15.891646: Plan valid is now true after recompute was False
2026-08-17 16:50:15.914643: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.85p, metric_keep 278.9kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.43kWh, PV 0.0kWh
2026-08-17 16:50:16.008580: Battery has 9.92 hours left - now at 8.85kWh
2026-08-17 16:50:16.052157: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 627.02p, metric_keep 280.28kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.41kWh, PV 0.0kWh
2026-08-17 16:50:16.126034: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 324.48p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.41kWh, PV 0.0kWh
2026-08-17 16:50:16.220088: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 321.38p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.43kWh, PV 0.0kWh
2026-08-17 16:50:16.220186: Saving plan best values to HA entities
2026-08-17 16:50:16.367751: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:50:16.373183: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:50:16.378031: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.55kWh, house 0.0kWh, export 0.0kWh, metric 321.38p, metric10 324.48p
2026-08-17 16:50:16.451696: Marginal costs baseline metric (no standing charge): 274.7463
2026-08-17 16:50:16.729768: Marginal energy costs matrix computed: min=5.33 max=25.64
2026-08-17 16:50:16.797059: Rate array import [{'start': 1010, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1010, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:50:16.797859: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 16:50:16.797917: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:50:16.797943: - The battery is currently at 55% and is in eco mode for the next 6 and three quarters hours.
2026-08-17 16:50:16.797962: - For the next 48 hours there will be no solar generation.
2026-08-17 16:50:16.797980: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:50:16.798002: - Your next charge slot will be in 6 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 16:50:16.798025:
2026-08-17 16:50:16.847159: Plan calculation took 13.76 seconds
2026-08-17 16:50:16.847594: Inverter 0: Type SK Sunsynk
2026-08-17 16:50:16.847658: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:50:16.847851: Reserve min: 7%, battery_min: 7%
2026-08-17 16:50:16.847965: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:50:16.848295: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 414W, current battery voltage 51.2V, grid power -53W, load power 472W, PV Power 0W
2026-08-17 16:50:16.848523: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:50:16.848622: Inverter 0 scheduled charge enable is False
2026-08-17 16:50:16.848657: Inverter 0 charge windows currently []
2026-08-17 16:50:16.848688: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:50:16.848793: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:50:16.848832: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:50:16.848870: Inverter 0 scheduled discharge enable is False
2026-08-17 16:50:16.848994: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:50:16.849030: Inverter 0 discharge windows currently []
2026-08-17 16:50:16.849053: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:50:16.849075: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:50:16.849092: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:50:16.900834: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-17 16:50:16.901016: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:50:16.901119: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:50:16.901379: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:50:16.901473: No export window planned
2026-08-17 16:50:16.901642: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:50:16.901685: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:50:16.901857: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:50:16.902052: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:50:16.902110: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:50:16.902200: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:50:16.902346: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902438: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902546: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902664: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902905: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.902962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.903018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.903076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.903129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:50:16.903176: Inverter 0 count register writes 0
2026-08-17 16:50:16.922431: Total inverter register writes now 861
2026-08-17 16:50:16.955369: Info: Completed run status Demand
2026-08-17 16:50:16.960508: Info: record_status Demand
2026-08-17 16:50:16.966999: Saved current settings to /config/predbat_config.json
2026-08-17 16:50:16.967308: Compare, best tariff: current metric 104.68p
2026-08-17 16:50:49.084702: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:50:49.084973: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:50:49.085032: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:50:49.085231: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:50:49.085290: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:50:49.085329: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:50:49.085363: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:52:49.288417: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:52:49.288702: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:52:49.288767: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:52:49.288972: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:52:49.289018: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:52:49.289040: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:52:49.289066: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:54:49.503421: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:54:49.503782: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:54:49.503849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:54:49.504132: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:54:49.504187: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:54:49.504229: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:54:49.504288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:54:56.427478: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 16:54:56.595169: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 16:55:00.580309: --------------- PredBat - update at 2026-08-17 16:55:00+01:00 with clock skew 0 minutes, minutes now 1015
2026-08-17 16:55:00.581015: Saved current settings to /config/predbat_config.json
2026-08-17 16:55:00.581145: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 16:55:00.581183: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 16:55:00.593068: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 16:55:00.593188: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 16:55:00.593347: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 16:55:00.593764: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 16:55:00.593886: Predbat mode is set to Control charge & discharge
2026-08-17 16:55:00.748907: Found 21602 load_today datapoints going back 28 days
2026-08-17 16:55:00.749080: Using load_power data to fill gaps in load_today data
2026-08-17 16:55:01.573464: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 16:55:01.573656: Zero load period starting at 2026-08-17T10:54:00+0100 (361 minutes) for 189 minutes with base value 213.9
2026-08-17 16:55:01.574353: Processing 721 30-minute periods for power integration
2026-08-17 16:55:01.731877: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 16:55:01.732042: Car charging hold False, threshold 6.0kWh
2026-08-17 16:55:01.732094: Current data so far today: load 9.0kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 16:55:01.745283: Car 0 using Octopus Intelligent is unplugged
2026-08-17 16:55:01.745375: Cars: SoC: [49.224000000000004]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 16:55:01.746007: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 16:55:01.746075: Standing charge is set to 46.63p
2026-08-17 16:55:01.840726: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.841012: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.841195: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.841388: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.841557: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.841723: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.841889: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.842048: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.842203: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 16:55:01.843239: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 16:55:01.843363: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 16:55:01.848869: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 16:55:01.849314: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 16:55:01.892551: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 16:55:01.892906: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 16:55:01.894023: High export rate found rates in range 99p to -99p
2026-08-17 16:55:01.978522: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 16:55:01.978649: Car 0 on Octopus Intelligent, no active plan
2026-08-17 16:55:01.989152: Battery level now 8.85kWh, -1hr ago 9.28kWh, at midnight 10.49kWh, battery value change in the last hour -2.97p, change today -11.27p, rate_forward 6.87p
2026-08-17 16:55:01.989468: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 16:55:02.045476: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 16:55:02.045608: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 16:55:02.120979: Using weighted-bucket historical load forecast over 14 days
2026-08-17 16:55:02.145092: Today's load divergence 98.33%, in-day adjustment 89.55%, damping 0.95x, yesterday 68.37% today 98.42% blend 29.51%
2026-08-17 16:55:02.145172: Today's predicted so far 10.47kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 10.47kWh forecast extra.
2026-08-17 16:55:02.145199: Today's actual load so far 10.21kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 16:55:02.173180: Inverter 0: Type SK Sunsynk
2026-08-17 16:55:02.173266: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 16:55:02.173419: Reserve min: 7%, battery_min: 7%
2026-08-17 16:55:02.173476: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 16:55:02.173691: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 411W, current battery voltage 51.2V, grid power -54W, load power 470W, PV Power 0W
2026-08-17 16:55:02.173816: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:55:02.173887: Inverter 0 scheduled charge enable is False
2026-08-17 16:55:02.173911: Inverter 0 charge windows currently []
2026-08-17 16:55:02.173932: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 16:55:02.174017: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:55:02.174046: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:55:02.174075: Inverter 0 scheduled discharge enable is False
2026-08-17 16:55:02.174175: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:55:02.174205: Inverter 0 discharge windows currently []
2026-08-17 16:55:02.174223: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:55:02.174237: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:55:02.174263: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:55:02.225798: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 16:55:02.225952: Plan was last updated on 2026-08-17 16:50:00+01:00 and is now 5.0 minutes old
2026-08-17 16:55:02.226141: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 16:55:02.226177: Best export window [ ]
2026-08-17 16:55:02.226824: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 16:55:02.229438: Load divergence over 8.0 hours mean 496.81W, min 344.4W, max 1032.6W, std dev 163.67W, divergence 16.47%
2026-08-17 16:55:02.245326: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 16:55:02.245431: LoadML is_calculating False
2026-08-17 16:55:02.245492: Creating pool of 12 processes to match your CPU count
2026-08-17 16:55:02.346761: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.96p, metric_keep 279.24kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.56kWh, PV 0.0kWh
2026-08-17 16:55:02.452522: Battery has 9.83 hours left - now at 8.8kWh
2026-08-17 16:55:02.490642: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 628.21p, metric_keep 280.61kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.54kWh, PV 0.0kWh
2026-08-17 16:55:02.553705: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 328.21p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.54kWh, PV 0.0kWh
2026-08-17 16:55:02.653493: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 325.64p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.56kWh, PV 0.0kWh
2026-08-17 16:55:02.653611: Saving plan best values to HA entities
2026-08-17 16:55:02.806450: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 16:55:02.810724: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 16:55:02.815186: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.09kWh, house 0kWh, export 0.0kWh, metric 325.64p, metric10 328.21p
2026-08-17 16:55:02.881591: Marginal costs baseline metric (no standing charge): 279.0102
2026-08-17 16:55:03.125335: Marginal energy costs matrix computed: min=4.67 max=25.2
2026-08-17 16:55:03.188485: Rate array import [{'start': 1015, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1015, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 16:55:03.189098: - Your estimated bill for today is £1.75 and tomorrow is £1.72
2026-08-17 16:55:03.189137: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 16:55:03.189156: - The battery is currently at 55% and is in eco mode for the next 6 and a half hours.
2026-08-17 16:55:03.189171: - For the next 48 hours there will be no solar generation.
2026-08-17 16:55:03.189185: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 16:55:03.189200: - Your next charge slot will be in 6 and a half hours where import rates will be cheap (8.0p).
2026-08-17 16:55:03.189214:
2026-08-17 16:55:03.234204: Plan calculation took 1.01 seconds
2026-08-17 16:55:03.237205: No high rate period found
2026-08-17 16:55:03.362616: Import threshold used for optimisation was 8.0p
2026-08-17 16:55:03.413955: Low import rate windows [0: 08-17 16:30:00 - 08-17 17:00:00 @ 33.75, 1: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 2: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 3: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 4: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 5: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 6: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 7: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 8: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 9: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 10: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 11: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 12: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 13: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 14: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 15: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 16: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 17: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 18: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 19: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 20: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 21: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 22: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 23: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 24: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 25: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 26: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 27: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 28: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 29: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 30: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 31: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 32: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 33: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 34: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 35: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 36: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 37: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 38: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 39: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 40: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 41: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 42: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 43: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 44: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 45: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 46: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 47: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 48: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 49: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 50: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 51: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 52: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 53: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 54: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 55: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 56: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 57: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 58: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 59: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 60: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 61: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 62: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 63: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 64: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 65: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 66: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 67: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 68: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 69: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 70: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 71: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 72: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 73: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 74: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 75: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 76: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 77: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 78: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 79: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 80: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 81: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 82: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 83: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 84: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 85: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 86: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 87: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 88: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 89: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 90: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 91: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 92: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 93: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 94: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75]
2026-08-17 16:55:03.420328: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-17 16:55:03.420453: Inverter 0 disabled charge window while waiting for schedule (now 08-17 16:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 16:55:03.420554: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:55:03.420799: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:55:03.420893: No export window planned
2026-08-17 16:55:03.421018: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 16:55:03.421053: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 16:55:03.421184: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 16:55:03.421397: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 16:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 16:55:03.421461: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 16:55:03.421524: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 16:55:03.421606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421646: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421673: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421698: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421723: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421747: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421772: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421956: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.421981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.422005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 16:55:03.422032: Inverter 0 count register writes 0
2026-08-17 16:55:03.437071: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 16:55:03.441944: Total inverter register writes now 861
2026-08-17 16:55:03.476479: Info: Completed run status Demand
2026-08-17 16:55:03.482590: Info: record_status Demand
2026-08-17 16:55:03.489195: Saved current settings to /config/predbat_config.json
2026-08-17 16:55:03.489521: Compare, best tariff: current metric 104.68p
2026-08-17 16:55:34.591123: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:55:34.591382: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:55:34.591430: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:55:34.591626: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:55:34.591680: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:55:34.591723: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:55:34.591760: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:55:39.695050: Info: HAHistory: Pruning history data started.
2026-08-17 16:55:39.697428: Info: HAHistory: Pruning history data completed.
2026-08-17 16:57:48.842472: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:57:48.842726: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:57:48.842787: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:57:48.842922: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:57:48.842960: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:57:48.842982: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:57:48.843000: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 16:59:49.057965: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 16:59:49.058184: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 16:59:49.058218: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 16:59:49.058522: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 16:59:49.058581: Note: Inverter does not support discharge freeze - disabled
2026-08-17 16:59:49.058605: Note: Inverter does not support charge freeze - disabled
2026-08-17 16:59:49.058630: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:00:00.141489: --------------- PredBat - update at 2026-08-17 17:00:00+01:00 with clock skew 0 minutes, minutes now 1020
2026-08-17 17:00:00.142317: Saved current settings to /config/predbat_config.json
2026-08-17 17:00:00.142480: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-17 17:00:00.142525: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:00:00.156449: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:00:00.156583: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:00:00.156809: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:00:00.157473: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:00:00.157633: Predbat mode is set to Control charge & discharge
2026-08-17 17:00:00.414939: Found 21602 load_today datapoints going back 27 days
2026-08-17 17:00:00.415076: Using load_power data to fill gaps in load_today data
2026-08-17 17:00:01.298319: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:00:01.298505: Zero load period starting at 2026-08-17T10:54:00+0100 (366 minutes) for 189 minutes with base value 213.875
2026-08-17 17:00:01.299036: Processing 721 30-minute periods for power integration
2026-08-17 17:00:01.505301: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:00:01.505419: Car charging hold False, threshold 6.0kWh
2026-08-17 17:00:01.505462: Current data so far today: load 8.9kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:00:01.522118: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:00:01.522217: Cars: SoC: [49.224000000000004]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:00:01.522969: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:00:01.523044: Standing charge is set to 46.63p
2026-08-17 17:00:01.610721: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.611062: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.611378: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.611675: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.611947: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.612190: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.612431: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.612650: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.612863: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:00:01.614024: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:00:01.614165: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:00:01.619928: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:00:01.620384: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:00:01.666009: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:00:01.666122: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:00:01.667453: High export rate found rates in range 99p to -99p
2026-08-17 17:00:01.763721: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:00:01.763871: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:00:01.777533: Battery level now 8.8kWh, -1hr ago 9.28kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -11.6p, rate_forward 6.87p
2026-08-17 17:00:01.777951: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:00:01.832962: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 17:00:01.833097: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:00:01.917974: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:00:01.941279: Today's load divergence 97.14%, in-day adjustment 88.85%, damping 0.95x, yesterday 68.37% today 97.29% blend 29.17%
2026-08-17 17:00:01.941353: Today's predicted so far 10.59kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 10.59kWh forecast extra.
2026-08-17 17:00:01.941381: Today's actual load so far 10.15kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 17:00:01.975303: Inverter 0: Type SK Sunsynk
2026-08-17 17:00:01.975388: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:00:01.975561: Reserve min: 7%, battery_min: 7%
2026-08-17 17:00:01.975638: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:00:01.975897: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 408W, current battery voltage 51.2V, grid power -53W, load power 468W, PV Power 0W
2026-08-17 17:00:01.976149: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:00:01.976239: Inverter 0 scheduled charge enable is False
2026-08-17 17:00:01.976316: Inverter 0 charge windows currently []
2026-08-17 17:00:01.976347: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:00:01.976461: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:00:01.976496: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:00:01.976532: Inverter 0 scheduled discharge enable is False
2026-08-17 17:00:01.976653: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:00:01.976689: Inverter 0 discharge windows currently []
2026-08-17 17:00:01.976711: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:00:01.976729: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:00:01.976755: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:00:02.040450: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:00:02.040535: Plan was last updated on 2026-08-17 16:50:00+01:00 and is now 10.0 minutes old
2026-08-17 17:00:02.040731: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:00:02.040772: Best export window [ ]
2026-08-17 17:00:02.041563: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:00:02.044623: Load divergence over 8.0 hours mean 496.91W, min 353.4W, max 1063.8W, std dev 150.51W, divergence 15.15%
2026-08-17 17:00:02.062069: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:00:02.062173: LoadML is_calculating False
2026-08-17 17:00:02.062227: Creating pool of 12 processes to match your CPU count
2026-08-17 17:00:02.160533: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 605.89p, metric_keep 279.21kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.47kWh, PV 0.0kWh
2026-08-17 17:00:02.279303: Battery has 9.83 hours left - now at 8.8kWh
2026-08-17 17:00:02.323354: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.1p, metric_keep 280.57kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.45kWh, PV 0.0kWh
2026-08-17 17:00:02.401636: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 331.06p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.45kWh, PV 0.0kWh
2026-08-17 17:00:02.474662: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.13p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.47kWh, PV 0.0kWh
2026-08-17 17:00:02.474767: Saving plan best values to HA entities
2026-08-17 17:00:02.663766: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:00:02.669029: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:00:02.674220: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.52kWh, house 0.0kWh, export 0.0kWh, metric 329.13p, metric10 331.06p
2026-08-17 17:00:02.744944: Marginal costs baseline metric (no standing charge): 282.496
2026-08-17 17:00:02.978587: Marginal energy costs matrix computed: min=4.0 max=24.45
2026-08-17 17:00:03.055070: Rate array import [{'start': 1020, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1020, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:00:03.055671: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 17:00:03.055724: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:00:03.055744: - The battery is currently at 55% and is in eco mode for the next 6 and a half hours.
2026-08-17 17:00:03.055759: - For the next 48 hours there will be no solar generation.
2026-08-17 17:00:03.055773: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:00:03.055788: - Your next charge slot will be in 6 and a half hours where import rates will be cheap (8.0p).
2026-08-17 17:00:03.055802:
2026-08-17 17:00:03.100917: Plan calculation took 1.06 seconds
2026-08-17 17:00:03.103789: No high rate period found
2026-08-17 17:00:03.149824: Import threshold used for optimisation was 8.0p
2026-08-17 17:00:03.205423: Low import rate windows [0: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 1: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 2: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 3: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 4: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 5: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 6: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 7: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 8: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 9: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 10: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 11: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 12: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 13: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 14: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 15: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 16: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 17: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 18: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 19: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 20: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 21: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 22: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 23: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 24: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 25: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 26: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 27: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 28: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 29: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 30: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 31: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 32: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 33: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 34: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 35: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 36: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 37: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 38: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 39: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 40: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 41: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 42: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 43: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 44: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 45: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 46: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 47: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 48: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 49: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 50: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 51: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 52: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 53: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 54: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 55: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 56: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 57: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 58: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 59: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 60: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 61: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 62: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 63: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 64: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 65: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 66: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 67: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 68: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 69: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 70: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 71: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 72: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 73: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 74: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 75: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 76: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 77: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 78: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 79: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 80: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 81: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 82: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 83: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 84: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 85: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 86: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 87: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 88: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 89: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 90: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 91: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 92: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 93: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75]
2026-08-17 17:00:03.211250: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-17 17:00:03.211424: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:00:03.211533: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:00:03.211789: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:00:03.211880: No export window planned
2026-08-17 17:00:03.212034: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:00:03.212074: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:00:03.212210: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:00:03.212423: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:00:03.212507: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:00:03.212579: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:00:03.212665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212698: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212783: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212932: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.212982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.213011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.213036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.213079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:03.213104: Inverter 0 count register writes 0
2026-08-17 17:00:03.228920: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 17:00:03.229108: Recompute is saving previous plan...
2026-08-17 17:00:03.232346: Best charge window [ 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0% ]
2026-08-17 17:00:03.232429: Best export window [ ]
2026-08-17 17:00:03.233286: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:00:03.236608: Load divergence over 8.0 hours mean 496.91W, min 353.4W, max 1063.8W, std dev 150.51W, divergence 15.15%
2026-08-17 17:00:03.256822: Calculating data from yesterday for savings calculation
2026-08-17 17:00:03.270431: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 17:00:03.326772: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 17:00:03.344669: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 17:00:03.367455: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 17:00:03.408915: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 17:00:03.484100: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 17:00:03.484248: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 17:00:03.494921: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:00:03.495037: LoadML is_calculating False
2026-08-17 17:00:03.495102: Creating pool of 12 processes to match your CPU count
2026-08-17 17:00:03.573296: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 17:00:03.574810: Optimise levels pass started at 2026-08-17 17:00:03
2026-08-17 17:00:03.574863: Optimise all windows, total charge 94 export 1
2026-08-17 17:00:04.259618: >> Region optimisation pass width 960 gives best_metric 372.82p, best_cost 418.52p, best_cycle 47.28kWh, best_import 33.52kWh
2026-08-17 17:00:04.431451: >> Region optimisation pass width 480 gives best_metric 372.82p, best_cost 418.52p, best_cycle 47.28kWh, best_import 33.52kWh
2026-08-17 17:00:04.745376: >> Region optimisation pass width 240 gives best_metric 372.49p, best_cost 414.29p, best_cycle 47.83kWh, best_import 33.0kWh
2026-08-17 17:00:05.699890: >> Region optimisation pass width 120 gives best_metric 368.15p, best_cost 385.34p, best_cycle 47.94kWh, best_import 29.38kWh
2026-08-17 17:00:05.700248: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 59
2026-08-17 17:00:05.700370: Optimise levels pass ended at 2026-08-17 17:00:05, duration 2.1 seconds tried 110 combinations
2026-08-17 17:00:05.700467: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 368.15p, best_keep 0kWh, best_cycle 47.94kWh, best_carbon 0kg, best_import 29.38kWh
2026-08-17 17:00:05.730530: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 17:00:10.472086: Tweak plan optimisation started metric 262.86p, cost 275.68p
2026-08-17 17:00:10.856274: Tweak optimisation finished metric 262.86p, cost 275.68p, metric_keep 0kWh, cycle 28.87kWh, carbon 0kg, import 15.67kWh, changed 8 window(s)
2026-08-17 17:00:10.876569: Swap charge optimisation started metric 262.86p, cost 275.68p, min_improvement_swap 0.1p
2026-08-17 17:00:15.467008: Swap charge optimisation finished metric 262.86p, cost 275.68p
2026-08-17 17:00:15.558875: Raw charge windows [ 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:00:15.559512: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:00:15.559781: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:00:15.560028: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:00:15.590350: Previous plan best metric is 262.26 (cost 274.31) and new plan best metric is 262.86 (cost 275.68)
2026-08-17 17:00:15.590581: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 17:00:15.590770: Plan valid is now true after recompute was False
2026-08-17 17:00:15.614233: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.37p, metric_keep 278.63kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.28kWh, PV 0.0kWh
2026-08-17 17:00:15.774904: Battery has 9.83 hours left - now at 8.8kWh
2026-08-17 17:00:15.818525: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.51p, metric_keep 279.98kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.25kWh, PV 0.0kWh
2026-08-17 17:00:15.896207: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 323.91p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.25kWh, PV 0.0kWh
2026-08-17 17:00:15.974660: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 320.95p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.28kWh, PV 0.0kWh
2026-08-17 17:00:15.974768: Saving plan best values to HA entities
2026-08-17 17:00:16.130115: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:00:16.136520: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:00:16.142831: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0.0kWh, export 0.0kWh, metric 320.95p, metric10 323.91p
2026-08-17 17:00:16.231233: Marginal costs baseline metric (no standing charge): 274.3134
2026-08-17 17:00:16.449917: Marginal energy costs matrix computed: min=4.0 max=24.45
2026-08-17 17:00:16.521432: Rate array import [{'start': 1020, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1020, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:00:16.522080: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 17:00:16.522123: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:00:16.522145: - The battery is currently at 55% and is in eco mode for the next 6 and a half hours.
2026-08-17 17:00:16.522163: - For the next 48 hours there will be no solar generation.
2026-08-17 17:00:16.522188: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:00:16.522206: - Your next charge slot will be in 6 and a half hours where import rates will be cheap (8.0p).
2026-08-17 17:00:16.522223:
2026-08-17 17:00:16.575626: Plan calculation took 13.35 seconds
2026-08-17 17:00:16.576011: Inverter 0: Type SK Sunsynk
2026-08-17 17:00:16.576064: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:00:16.576300: Reserve min: 7%, battery_min: 7%
2026-08-17 17:00:16.576384: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:00:16.576699: Inverter 0 SoC: 8.8kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 407W, current battery voltage 51.2V, grid power -53W, load power 468W, PV Power 0W
2026-08-17 17:00:16.576926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:00:16.577025: Inverter 0 scheduled charge enable is False
2026-08-17 17:00:16.577061: Inverter 0 charge windows currently []
2026-08-17 17:00:16.577091: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:00:16.577198: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:00:16.577236: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:00:16.577309: Inverter 0 scheduled discharge enable is False
2026-08-17 17:00:16.577452: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:00:16.577490: Inverter 0 discharge windows currently []
2026-08-17 17:00:16.577512: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:00:16.577534: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:00:16.577551: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:00:16.627158: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-17 17:00:16.627325: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:00:16.627394: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:00:16.627595: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:00:16.627675: No export window planned
2026-08-17 17:00:16.627806: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:00:16.627860: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:00:16.628096: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:00:16.628289: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:00:16.628346: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:00:16.628403: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:00:16.628481: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628513: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628539: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:00:16.628896: Inverter 0 count register writes 0
2026-08-17 17:00:16.648143: Total inverter register writes now 861
2026-08-17 17:00:16.679559: Info: Completed run status Demand
2026-08-17 17:00:16.689608: Info: record_status Demand
2026-08-17 17:00:16.695960: Saved current settings to /config/predbat_config.json
2026-08-17 17:00:16.696281: Compare, best tariff: current metric 104.68p
2026-08-17 17:00:48.799638: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:00:48.799949: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:00:48.800066: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:00:48.800319: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:00:48.800373: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:00:48.800406: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:00:48.800433: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:02:49.005984: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:02:49.006256: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:02:49.006320: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:02:49.006493: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:02:49.006537: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:02:49.006559: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:02:49.006600: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:04:49.255001: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:04:49.255256: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:04:49.255357: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:04:49.255525: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:04:49.255563: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:04:49.255584: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:04:49.255606: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:05:00.341428: --------------- PredBat - update at 2026-08-17 17:05:00+01:00 with clock skew 0 minutes, minutes now 1025
2026-08-17 17:05:00.342158: Saved current settings to /config/predbat_config.json
2026-08-17 17:05:02.285200: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:05:02.297981: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:05:02.298098: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:05:02.298255: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:05:02.298763: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:05:02.298879: Predbat mode is set to Control charge & discharge
2026-08-17 17:05:02.497449: Found 21602 load_today datapoints going back 27 days
2026-08-17 17:05:02.497597: Using load_power data to fill gaps in load_today data
2026-08-17 17:05:03.339287: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:05:03.340012: Zero load period starting at 2026-08-17T10:54:00+0100 (371 minutes) for 189 minutes with base value 213.85
2026-08-17 17:05:03.340567: Processing 721 30-minute periods for power integration
2026-08-17 17:05:03.545863: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:05:03.546029: Car charging hold False, threshold 6.0kWh
2026-08-17 17:05:03.546102: Current data so far today: load 8.9kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:05:03.569351: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:05:03.569506: Cars: SoC: [49.224000000000004]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:05:03.570550: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:05:03.570654: Standing charge is set to 46.63p
2026-08-17 17:05:03.672533: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.672852: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.673138: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.673415: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.673706: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.674053: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.674341: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.674672: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.674888: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:05:03.676154: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:05:03.676304: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:05:03.681961: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:05:03.682484: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:05:03.727562: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:05:03.727693: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:05:03.729042: High export rate found rates in range 99p to -99p
2026-08-17 17:05:03.842281: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:05:03.842429: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:05:03.854675: Battery level now 8.8kWh, -1hr ago 9.14kWh, at midnight 10.49kWh, battery value change in the last hour -2.31p, change today -11.6p, rate_forward 6.87p
2026-08-17 17:05:03.855061: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:05:03.922240: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 17:05:03.922413: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:05:04.032077: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:05:04.062094: Today's load divergence 96.65%, in-day adjustment 88.62%, damping 0.95x, yesterday 68.37% today 96.81% blend 28.82%
2026-08-17 17:05:04.062197: Today's predicted so far 10.69kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 10.69kWh forecast extra.
2026-08-17 17:05:04.062230: Today's actual load so far 10.17kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 17:05:04.097966: Inverter 0: Type SK Sunsynk
2026-08-17 17:05:04.098044: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:05:04.098210: Reserve min: 7%, battery_min: 7%
2026-08-17 17:05:04.098293: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:05:04.098547: Inverter 0 SoC: 8.74kW 55%, current charge rate 5000W, current discharge rate 5250W, current battery power 406W, current battery voltage 51.2V, grid power -56W, load power 471W, PV Power 0W
2026-08-17 17:05:04.098691: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:05:04.098799: Inverter 0 scheduled charge enable is False
2026-08-17 17:05:04.098830: Inverter 0 charge windows currently []
2026-08-17 17:05:04.098867: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:05:04.098975: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:05:04.099010: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:05:04.099047: Inverter 0 scheduled discharge enable is False
2026-08-17 17:05:04.099173: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:05:04.099209: Inverter 0 discharge windows currently []
2026-08-17 17:05:04.099232: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:05:04.099251: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:05:04.099289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:05:04.159005: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:05:04.159146: Plan was last updated on 2026-08-17 17:00:00+01:00 and is now 5.0 minutes old
2026-08-17 17:05:04.159397: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:05:04.159442: Best export window [ ]
2026-08-17 17:05:04.160291: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:05:04.163444: Load divergence over 8.0 hours mean 496.91W, min 322.2W, max 1002.6W, std dev 151.84W, divergence 15.28%
2026-08-17 17:05:04.182134: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:05:04.182239: LoadML is_calculating False
2026-08-17 17:05:04.182313: Creating pool of 12 processes to match your CPU count
2026-08-17 17:05:04.296099: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.07p, metric_keep 278.93kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.33kWh, PV 0.0kWh
2026-08-17 17:05:04.411857: Battery has 9.75 hours left - now at 8.74kWh
2026-08-17 17:05:04.460655: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.2p, metric_keep 280.26kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.3kWh, PV 0.0kWh
2026-08-17 17:05:04.539534: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 327.53p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.3kWh, PV 0.0kWh
2026-08-17 17:05:04.619970: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 325.11p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.33kWh, PV 0.0kWh
2026-08-17 17:05:04.620080: Saving plan best values to HA entities
2026-08-17 17:05:04.823368: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:05:04.831196: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:05:04.836919: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.02kWh, house 0.0kWh, export 0.0kWh, metric 325.11p, metric10 327.53p
2026-08-17 17:05:04.914994: Marginal costs baseline metric (no standing charge): 278.4723
2026-08-17 17:05:05.200246: Marginal energy costs matrix computed: min=3.33 max=24.93
2026-08-17 17:05:05.280715: Rate array import [{'start': 1025, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1025, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:05:05.281419: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 17:05:05.281483: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:05:05.281507: - The battery is currently at 55% and is in eco mode for the next 6 and a half hours.
2026-08-17 17:05:05.281526: - For the next 48 hours there will be no solar generation.
2026-08-17 17:05:05.281553: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:05:05.281571: - Your next charge slot will be in 6 and a half hours where import rates will be cheap (8.0p).
2026-08-17 17:05:05.281588:
2026-08-17 17:05:05.338861: Plan calculation took 1.18 seconds
2026-08-17 17:05:05.341899: No high rate period found
2026-08-17 17:05:05.396505: Import threshold used for optimisation was 8.0p
2026-08-17 17:05:05.443872: Low import rate windows [0: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 1: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 2: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 3: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 4: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 5: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 6: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 7: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 8: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 9: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 10: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 11: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 12: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 13: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 14: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 15: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 16: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 17: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 18: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 19: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 20: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 21: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 22: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 23: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 24: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 25: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 26: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 27: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 28: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 29: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 30: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 31: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 32: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 33: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 34: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 35: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 36: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 37: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 38: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 39: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 40: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 41: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 42: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 43: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 44: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 45: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 46: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 47: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 48: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 49: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 50: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 51: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 52: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 53: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 54: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 55: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 56: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 57: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 58: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 59: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 60: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 61: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 62: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 63: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 64: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 65: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 66: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 67: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 68: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 69: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 70: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 71: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 72: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 73: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 74: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 75: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 76: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 77: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 78: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 79: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 80: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 81: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 82: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 83: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 84: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 85: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 86: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 87: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 88: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 89: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 90: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 91: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 92: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 93: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 94: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75]
2026-08-17 17:05:05.450037: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 55%, target 100%
2026-08-17 17:05:05.450161: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:05:05.450298: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:05:05.450562: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:05:05.450712: No export window planned
2026-08-17 17:05:05.450859: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:05:05.450910: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:05:05.451078: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:05:05.451230: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:05:05.451295: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:05:05.451353: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:05:05.451427: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451454: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451475: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451499: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451519: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451567: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451788: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:05:05.451841: Inverter 0 count register writes 0
2026-08-17 17:05:05.466338: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 17:05:05.471795: Total inverter register writes now 861
2026-08-17 17:05:05.503368: Info: Completed run status Demand
2026-08-17 17:05:05.509965: Info: record_status Demand
2026-08-17 17:05:05.517430: Saved current settings to /config/predbat_config.json
2026-08-17 17:05:05.517791: Compare, best tariff: current metric 104.68p
2026-08-17 17:05:49.633582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:05:49.633807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:05:49.633882: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:05:49.634059: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:05:49.634102: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:05:49.634125: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:05:49.634148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:07:20.169347: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 17:07:21.179064: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:07:21.179998: Zero load period starting at 2026-08-17T10:54:00+0100 (371 minutes) for 189 minutes with base value 395.8
2026-08-17 17:07:21.180451: Processing 1297 30-minute periods for power integration
2026-08-17 17:07:21.277479: ML Component: Car charging hold False, car energy reported load False
2026-08-17 17:07:21.395021: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:07:21.487788: ML Temperature data points: 47936
2026-08-17 17:07:21.735112: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 17:07:21.767215: ML Component: Data fetch completed, load data age 59.0 days, 17029 data points
2026-08-17 17:07:21.767332: ML Component: No training needed, model age is 0.28 hours
2026-08-17 17:07:21.767407: ML Component: Generating predictions load data age 59.0 days, 17029 data points
2026-08-17 17:07:21.887776: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.033 max_dow {0: 0.08182500006258488, 1: 0.09610624981913715, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 17:07:22.458056: ML Component: Generated 576 predictions (total 25.26 kWh over 48h)
2026-08-17 17:07:22.495961: ML Component: Prediction cycle completed
2026-08-17 17:07:22.602896: ML Component: Saved 17029 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 17:08:03.867752: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:08:03.868072: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:08:03.868123: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:08:03.868261: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:08:03.868317: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:08:03.868340: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:08:03.868363: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:10:00.073392: --------------- PredBat - update at 2026-08-17 17:10:00+01:00 with clock skew 0 minutes, minutes now 1030
2026-08-17 17:10:00.074109: Saved current settings to /config/predbat_config.json
2026-08-17 17:10:00.074216: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 17:10:00.074255: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:10:00.090198: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:10:00.090355: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:10:00.090609: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:10:00.091276: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:10:00.091445: Predbat mode is set to Control charge & discharge
2026-08-17 17:10:00.263583: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:10:00.263701: Using load_power data to fill gaps in load_today data
2026-08-17 17:10:00.950602: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:10:00.950794: Zero load period starting at 2026-08-17T10:54:00+0100 (376 minutes) for 189 minutes with base value 213.825
2026-08-17 17:10:00.951259: Processing 721 30-minute periods for power integration
2026-08-17 17:10:01.122706: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:10:01.122825: Car charging hold False, threshold 6.0kWh
2026-08-17 17:10:01.122863: Current data so far today: load 9.02kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:10:01.139525: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:10:01.139652: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:10:01.140460: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:10:01.140527: Standing charge is set to 46.63p
2026-08-17 17:10:01.222207: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.222440: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.222599: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.222755: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.222896: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.223039: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.223181: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.223320: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.223472: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:10:01.224352: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:10:01.224477: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:10:01.228923: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:10:01.229191: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:10:01.268735: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:10:01.268849: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:10:01.270080: High export rate found rates in range 99p to -99p
2026-08-17 17:10:01.371667: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:10:01.371794: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:10:01.384062: Battery level now 8.74kWh, -1hr ago 9.12kWh, at midnight 10.49kWh, battery value change in the last hour -2.58p, change today -11.99p, rate_forward 6.87p
2026-08-17 17:10:01.384445: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:10:01.448475: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 17:10:01.448622: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:10:01.544684: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:10:01.572310: Today's load divergence 97.25%, in-day adjustment 89.12%, damping 0.95x, yesterday 68.37% today 97.38% blend 28.47%
2026-08-17 17:10:01.572413: Today's predicted so far 10.69kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 10.69kWh forecast extra.
2026-08-17 17:10:01.572457: Today's actual load so far 10.27kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 17:10:01.606089: Inverter 0: Type SK Sunsynk
2026-08-17 17:10:01.606173: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:10:01.606351: Reserve min: 7%, battery_min: 7%
2026-08-17 17:10:01.606438: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:10:01.606694: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 406W, current battery voltage 51.2V, grid power -54W, load power 468W, PV Power 0W
2026-08-17 17:10:01.606841: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:10:01.606924: Inverter 0 scheduled charge enable is False
2026-08-17 17:10:01.606953: Inverter 0 charge windows currently []
2026-08-17 17:10:01.606979: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:10:01.607088: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:10:01.607123: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:10:01.607157: Inverter 0 scheduled discharge enable is False
2026-08-17 17:10:01.607276: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:10:01.607313: Inverter 0 discharge windows currently []
2026-08-17 17:10:01.607335: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:10:01.607354: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:10:01.607375: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:10:01.692273: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:10:01.692396: Plan was last updated on 2026-08-17 17:00:00+01:00 and is now 10.0 minutes old
2026-08-17 17:10:01.692624: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:10:01.692683: Best export window [ ]
2026-08-17 17:10:01.693524: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:10:01.696218: Load divergence over 8.0 hours mean 496.9W, min 336.6W, max 1039.2W, std dev 153.64W, divergence 15.46%
2026-08-17 17:10:01.717092: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:10:01.717196: LoadML is_calculating False
2026-08-17 17:10:01.717256: Creating pool of 12 processes to match your CPU count
2026-08-17 17:10:01.846650: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.48p, metric_keep 279.58kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.53kWh, PV 0.0kWh
2026-08-17 17:10:01.987762: Battery has 9.5 hours left - now at 8.64kWh
2026-08-17 17:10:02.043416: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.66p, metric_keep 280.89kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.51kWh, PV 0.0kWh
2026-08-17 17:10:02.122705: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 331.84p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.51kWh, PV 0.0kWh
2026-08-17 17:10:02.213686: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.86p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.53kWh, PV 0.0kWh
2026-08-17 17:10:02.213767: Saving plan best values to HA entities
2026-08-17 17:10:02.382558: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:10:02.407551: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:10:02.413557: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.61kWh, house 0.0kWh, export 0.0kWh, metric 329.86p, metric10 331.84p
2026-08-17 17:10:02.491836: Marginal costs baseline metric (no standing charge): 283.2295
2026-08-17 17:10:02.779434: Marginal energy costs matrix computed: min=2.67 max=25.69
2026-08-17 17:10:02.855394: Rate array import [{'start': 1030, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1030, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:10:02.856175: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 17:10:02.856235: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:10:02.856259: - The battery is currently at 54% and is in eco mode for the next 6 and a quarter hours.
2026-08-17 17:10:02.856277: - For the next 48 hours there will be no solar generation.
2026-08-17 17:10:02.856295: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:10:02.856312: - Your next charge slot will be in 6 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 17:10:02.856329:
2026-08-17 17:10:02.916458: Plan calculation took 1.22 seconds
2026-08-17 17:10:02.920232: No high rate period found
2026-08-17 17:10:02.976126: Import threshold used for optimisation was 8.0p
2026-08-17 17:10:03.034580: Low import rate windows [0: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 1: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 2: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 3: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 4: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 5: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 6: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 7: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 8: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 9: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 10: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 11: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 12: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 13: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 14: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 15: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 16: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 17: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 18: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 19: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 20: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 21: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 22: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 23: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 24: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 25: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 26: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 27: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 28: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 29: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 30: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 31: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 32: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 33: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 34: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 35: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 36: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 37: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 38: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 39: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 40: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 41: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 42: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 43: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 44: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 45: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 46: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 47: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 48: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 49: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 50: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 51: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 52: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 53: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 54: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 55: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 56: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 57: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 58: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 59: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 60: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 61: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 62: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 63: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 64: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 65: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 66: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 67: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 68: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 69: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 70: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 71: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 72: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 73: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 74: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 75: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 76: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 77: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 78: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 79: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 80: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 81: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 82: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 83: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 84: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 85: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 86: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 87: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 88: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 89: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 90: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 91: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 92: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 93: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 94: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75]
2026-08-17 17:10:03.040757: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-17 17:10:03.040893: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:10:03.041001: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:10:03.041273: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:10:03.041612: No export window planned
2026-08-17 17:10:03.041772: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:10:03.041817: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:10:03.041973: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:10:03.043576: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:10:03.043655: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:10:03.043736: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:10:03.043830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.043881: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.044365: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.044849: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.044901: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.044956: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045003: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:03.045459: Inverter 0 count register writes 0
2026-08-17 17:10:03.064769: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 17:10:03.064978: Recompute is saving previous plan...
2026-08-17 17:10:03.068524: Best charge window [ 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0% ]
2026-08-17 17:10:03.068631: Best export window [ ]
2026-08-17 17:10:03.070040: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:10:03.074625: Load divergence over 8.0 hours mean 496.9W, min 336.6W, max 1039.2W, std dev 153.64W, divergence 15.46%
2026-08-17 17:10:03.098524: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:10:03.098678: LoadML is_calculating False
2026-08-17 17:10:03.098813: Creating pool of 12 processes to match your CPU count
2026-08-17 17:10:03.193467: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 17:10:03.195540: Optimise levels pass started at 2026-08-17 17:10:03
2026-08-17 17:10:03.195610: Optimise all windows, total charge 94 export 1
2026-08-17 17:10:03.586107: >> Region optimisation pass width 960 gives best_metric 374.32p, best_cost 419.15p, best_cycle 47.39kWh, best_import 33.6kWh
2026-08-17 17:10:03.804382: >> Region optimisation pass width 480 gives best_metric 374.32p, best_cost 419.15p, best_cycle 47.39kWh, best_import 33.6kWh
2026-08-17 17:10:04.135134: >> Region optimisation pass width 240 gives best_metric 374.32p, best_cost 419.15p, best_cycle 47.39kWh, best_import 33.6kWh
2026-08-17 17:10:05.290688: >> Region optimisation pass width 120 gives best_metric 373.33p, best_cost 407.77p, best_cycle 48.87kWh, best_import 32.18kWh
2026-08-17 17:10:05.291006: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 59
2026-08-17 17:10:05.291306: Optimise levels pass ended at 2026-08-17 17:10:05, duration 2.1 seconds tried 211 combinations
2026-08-17 17:10:05.291430: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 373.33p, best_keep 0kWh, best_cycle 48.87kWh, best_carbon 0kg, best_import 32.18kWh
2026-08-17 17:10:05.310997: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 17:10:09.652714: Tweak plan optimisation started metric 262.44p, cost 274.44p
2026-08-17 17:10:09.936393: Tweak optimisation finished metric 262.44p, cost 274.44p, metric_keep 0.1kWh, cycle 26.98kWh, carbon 0kg, import 15.51kWh, changed 8 window(s)
2026-08-17 17:10:09.956243: Swap charge optimisation started metric 262.44p, cost 274.44p, min_improvement_swap 0.1p
2026-08-17 17:10:15.286455: Swap charge optimisation finished metric 262.44p, cost 274.44p
2026-08-17 17:10:15.432667: Raw charge windows [ 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:10:15.433231: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:10:15.433458: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:10:15.433644: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:10:15.472614: Previous plan best metric is 262.87 (cost 274.95) and new plan best metric is 262.44 (cost 274.44)
2026-08-17 17:10:15.472885: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 17:10:15.473029: Plan valid is now true after recompute was False
2026-08-17 17:10:15.502562: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.86p, metric_keep 278.99kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 29.33kWh, PV 0.0kWh
2026-08-17 17:10:15.603086: Battery has 9.5 hours left - now at 8.64kWh
2026-08-17 17:10:15.646465: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.96p, metric_keep 280.3kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.3kWh, PV 0.0kWh
2026-08-17 17:10:15.719583: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 324.59p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.3kWh, PV 0.0kWh
2026-08-17 17:10:15.799037: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 321.58p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.33kWh, PV 0.0kWh
2026-08-17 17:10:15.799125: Saving plan best values to HA entities
2026-08-17 17:10:15.945281: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:10:15.949748: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:10:15.954221: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.58kWh, house 0.0kWh, export 0.0kWh, metric 321.58p, metric10 324.59p
2026-08-17 17:10:16.014330: Marginal costs baseline metric (no standing charge): 274.9452
2026-08-17 17:10:16.235277: Marginal energy costs matrix computed: min=2.67 max=25.69
2026-08-17 17:10:16.303730: Rate array import [{'start': 1030, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1030, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:10:16.304448: - Your estimated bill for today is £1.74 and tomorrow is £1.72
2026-08-17 17:10:16.304498: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:10:16.304521: - The battery is currently at 54% and is in eco mode for the next 6 and a quarter hours.
2026-08-17 17:10:16.304539: - For the next 48 hours there will be no solar generation.
2026-08-17 17:10:16.304557: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:10:16.304575: - Your next charge slot will be in 6 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 17:10:16.304592:
2026-08-17 17:10:16.354638: Plan calculation took 13.29 seconds
2026-08-17 17:10:16.355008: Inverter 0: Type SK Sunsynk
2026-08-17 17:10:16.355067: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:10:16.355324: Reserve min: 7%, battery_min: 7%
2026-08-17 17:10:16.355446: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:10:16.355816: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 406W, current battery voltage 51.2V, grid power -54W, load power 468W, PV Power 0W
2026-08-17 17:10:16.356121: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:10:16.356254: Inverter 0 scheduled charge enable is False
2026-08-17 17:10:16.356300: Inverter 0 charge windows currently []
2026-08-17 17:10:16.356354: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:10:16.356521: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:10:16.356586: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:10:16.356673: Inverter 0 scheduled discharge enable is False
2026-08-17 17:10:16.356883: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:10:16.356955: Inverter 0 discharge windows currently []
2026-08-17 17:10:16.356985: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:10:16.357005: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:10:16.357023: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:10:16.410783: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-17 17:10:16.410929: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:10:16.410999: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:10:16.411205: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:10:16.411294: No export window planned
2026-08-17 17:10:16.411403: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:10:16.411525: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:10:16.411750: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:10:16.411992: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:10:16.412056: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:10:16.412117: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:10:16.412200: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412453: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:10:16.412977: Inverter 0 count register writes 0
2026-08-17 17:10:16.434152: Total inverter register writes now 861
2026-08-17 17:10:16.465758: Info: Completed run status Demand
2026-08-17 17:10:16.472275: Info: record_status Demand
2026-08-17 17:10:16.478992: Saved current settings to /config/predbat_config.json
2026-08-17 17:10:16.479316: Compare, best tariff: current metric 104.68p
2026-08-17 17:10:49.583282: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:10:49.583525: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:10:49.583565: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:10:49.583695: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:10:49.583733: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:10:49.583755: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:10:49.583777: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:13:03.806368: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:13:03.806612: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:13:03.806657: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:13:03.806787: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:13:03.806825: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:13:03.806847: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:13:03.806865: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:15:00.024229: --------------- PredBat - update at 2026-08-17 17:15:00+01:00 with clock skew 0 minutes, minutes now 1035
2026-08-17 17:15:00.025234: Saved current settings to /config/predbat_config.json
2026-08-17 17:15:00.025409: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 17:15:00.025472: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:15:00.051324: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:15:00.051442: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:15:00.051607: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:15:00.052183: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:15:00.052308: Predbat mode is set to Control charge & discharge
2026-08-17 17:15:00.248779: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:15:00.248909: Using load_power data to fill gaps in load_today data
2026-08-17 17:15:01.033037: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:15:01.033481: Zero load period starting at 2026-08-17T10:54:00+0100 (381 minutes) for 189 minutes with base value 213.8
2026-08-17 17:15:01.034406: Processing 721 30-minute periods for power integration
2026-08-17 17:15:01.232935: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:15:01.233062: Car charging hold False, threshold 6.0kWh
2026-08-17 17:15:01.233107: Current data so far today: load 9.05kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:15:01.250158: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:15:01.250264: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:15:01.251066: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:15:01.251159: Standing charge is set to 46.63p
2026-08-17 17:15:01.338292: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.338497: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.338644: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.338806: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.338948: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.339088: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.339228: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.339359: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.339487: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:15:01.340364: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:15:01.340451: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:15:01.344980: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:15:01.345306: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:15:01.385828: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:15:01.385995: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:15:01.388163: High export rate found rates in range 99p to -99p
2026-08-17 17:15:01.476591: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:15:01.476723: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:15:01.488112: Battery level now 8.64kWh, -1hr ago 9.12kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -12.7p, rate_forward 6.87p
2026-08-17 17:15:01.488491: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:15:01.539859: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 17:15:01.540070: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:15:01.630885: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:15:01.659404: Today's load divergence 97.33%, in-day adjustment 89.28%, damping 0.95x, yesterday 68.37% today 97.46% blend 28.12%
2026-08-17 17:15:01.659486: Today's predicted so far 10.7kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 10.7kWh forecast extra.
2026-08-17 17:15:01.659513: Today's actual load so far 10.29kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 17:15:01.698342: Inverter 0: Type SK Sunsynk
2026-08-17 17:15:01.698421: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:15:01.698651: Reserve min: 7%, battery_min: 7%
2026-08-17 17:15:01.698752: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:15:01.699086: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 404W, current battery voltage 51.2V, grid power -56W, load power 469W, PV Power 0W
2026-08-17 17:15:01.699274: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:15:01.699382: Inverter 0 scheduled charge enable is False
2026-08-17 17:15:01.699432: Inverter 0 charge windows currently []
2026-08-17 17:15:01.699468: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:15:01.699629: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:15:01.699671: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:15:01.699744: Inverter 0 scheduled discharge enable is False
2026-08-17 17:15:01.699977: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:15:01.700025: Inverter 0 discharge windows currently []
2026-08-17 17:15:01.700048: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:15:01.700068: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:15:01.700099: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:15:01.770326: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:15:01.770426: Plan was last updated on 2026-08-17 17:10:00+01:00 and is now 5.0 minutes old
2026-08-17 17:15:01.770727: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:15:01.770775: Best export window [ ]
2026-08-17 17:15:01.771692: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:15:01.774901: Load divergence over 8.0 hours mean 496.88W, min 331.2W, max 1005.0W, std dev 161.45W, divergence 16.25%
2026-08-17 17:15:01.793344: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:15:01.793444: LoadML is_calculating False
2026-08-17 17:15:01.793524: Creating pool of 12 processes to match your CPU count
2026-08-17 17:15:01.922132: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.78p, metric_keep 279.08kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.43kWh, PV 0.0kWh
2026-08-17 17:15:02.057075: Battery has 9.5 hours left - now at 8.64kWh
2026-08-17 17:15:02.099998: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.87p, metric_keep 280.42kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.39kWh, PV 0.0kWh
2026-08-17 17:15:02.188065: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 327.8p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.39kWh, PV 0.0kWh
2026-08-17 17:15:02.271420: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 325.31p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.43kWh, PV 0.0kWh
2026-08-17 17:15:02.271508: Saving plan best values to HA entities
2026-08-17 17:15:02.418635: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:15:02.424352: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:15:02.430537: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.04kWh, house 0.0kWh, export 0.0kWh, metric 325.31p, metric10 327.8p
2026-08-17 17:15:02.508507: Marginal costs baseline metric (no standing charge): 278.6792
2026-08-17 17:15:02.795689: Marginal energy costs matrix computed: min=2.39 max=26.1
2026-08-17 17:15:02.897482: Rate array import [{'start': 1035, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1035, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:15:02.898228: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 17:15:02.898272: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:15:02.898295: - The battery is currently at 54% and is in eco mode for the next 6 and a quarter hours.
2026-08-17 17:15:02.898313: - For the next 48 hours there will be no solar generation.
2026-08-17 17:15:02.898339: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:15:02.898357: - Your next charge slot will be in 6 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 17:15:02.898381:
2026-08-17 17:15:02.956644: Plan calculation took 1.19 seconds
2026-08-17 17:15:02.960792: No high rate period found
2026-08-17 17:15:03.023095: Import threshold used for optimisation was 8.0p
2026-08-17 17:15:03.077868: Low import rate windows [0: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 1: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 2: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 3: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 4: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 5: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 6: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 7: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 8: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 9: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 10: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 11: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 12: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 13: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 14: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 15: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 16: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 17: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 18: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 19: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 20: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 21: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 22: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 23: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 24: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 25: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 26: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 27: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 28: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 29: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 30: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 31: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 32: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 33: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 34: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 35: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 36: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 37: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 38: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 39: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 40: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 41: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 42: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 43: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 44: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 45: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 46: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 47: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 48: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 49: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 50: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 51: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 52: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 53: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 54: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 55: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 56: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 57: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 58: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 59: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 60: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 61: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 62: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 63: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 64: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 65: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 66: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 67: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 68: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 69: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 70: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 71: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 72: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 73: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 74: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 75: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 76: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 77: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 78: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 79: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 80: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 81: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 82: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 83: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 84: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 85: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 86: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 87: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 88: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 89: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 90: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 91: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 92: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 93: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 94: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75]
2026-08-17 17:15:03.085295: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-17 17:15:03.085426: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:15:03.085513: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:15:03.085784: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:15:03.085876: No export window planned
2026-08-17 17:15:03.086002: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:15:03.086036: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:15:03.086166: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:15:03.086342: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:15:03.086402: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:15:03.086466: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:15:03.086555: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086595: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086696: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086724: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.086994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.087018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:15:03.087043: Inverter 0 count register writes 0
2026-08-17 17:15:03.102121: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 17:15:03.107199: Total inverter register writes now 861
2026-08-17 17:15:03.139178: Info: Completed run status Demand
2026-08-17 17:15:03.144730: Info: record_status Demand
2026-08-17 17:15:03.150876: Saved current settings to /config/predbat_config.json
2026-08-17 17:15:03.151128: Compare, best tariff: current metric 104.68p
2026-08-17 17:15:34.251981: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:15:34.252212: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:15:34.252271: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:15:34.252433: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:15:34.252475: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:15:34.252498: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:15:34.252517: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:17:34.463490: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:17:34.463722: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:17:34.463764: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:17:34.463985: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:17:34.464029: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:17:34.464051: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:17:34.464068: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:19:48.699481: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:19:48.699787: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:19:48.699994: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:19:48.700320: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:19:48.700464: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:19:48.700518: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:19:48.700561: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:20:00.809356: --------------- PredBat - update at 2026-08-17 17:20:00+01:00 with clock skew 0 minutes, minutes now 1040
2026-08-17 17:20:00.810214: Saved current settings to /config/predbat_config.json
2026-08-17 17:20:00.810367: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 17:20:00.810469: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:20:00.825929: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:20:00.826090: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:20:00.826360: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:20:00.826904: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:20:00.827076: Predbat mode is set to Control charge & discharge
2026-08-17 17:20:01.046643: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:20:01.046762: Using load_power data to fill gaps in load_today data
2026-08-17 17:20:01.771581: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:20:01.771756: Zero load period starting at 2026-08-17T10:54:00+0100 (386 minutes) for 189 minutes with base value 213.775
2026-08-17 17:20:01.772283: Processing 721 30-minute periods for power integration
2026-08-17 17:20:01.926238: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:20:01.926353: Car charging hold False, threshold 6.0kWh
2026-08-17 17:20:01.926409: Current data so far today: load 9.15kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:20:01.939798: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:20:01.939880: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:20:01.940616: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:20:01.940683: Standing charge is set to 46.63p
2026-08-17 17:20:02.031773: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.032081: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.032305: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.032517: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.032727: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.032932: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.033154: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.033353: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.033593: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:20:02.034509: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:20:02.034624: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:20:02.039980: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:20:02.040498: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:20:02.082486: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:20:02.082603: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:20:02.084456: High export rate found rates in range 99p to -99p
2026-08-17 17:20:02.198103: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:20:02.198244: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:20:02.209535: Battery level now 8.64kWh, -1hr ago 9.12kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -12.7p, rate_forward 6.87p
2026-08-17 17:20:02.209848: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:20:02.261343: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 17:20:02.261500: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:20:02.349554: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:20:02.385403: Today's load divergence 97.7%, in-day adjustment 89.64%, damping 0.95x, yesterday 68.37% today 97.82% blend 27.78%
2026-08-17 17:20:02.385511: Today's predicted so far 10.72kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 10.72kWh forecast extra.
2026-08-17 17:20:02.385561: Today's actual load so far 10.37kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 17:20:02.417938: Inverter 0: Type SK Sunsynk
2026-08-17 17:20:02.418035: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:20:02.418256: Reserve min: 7%, battery_min: 7%
2026-08-17 17:20:02.418360: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:20:02.418669: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 407W, current battery voltage 51.2V, grid power -58W, load power 472W, PV Power 0W
2026-08-17 17:20:02.418849: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:20:02.418975: Inverter 0 scheduled charge enable is False
2026-08-17 17:20:02.419023: Inverter 0 charge windows currently []
2026-08-17 17:20:02.419060: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:20:02.419218: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:20:02.419259: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:20:02.419310: Inverter 0 scheduled discharge enable is False
2026-08-17 17:20:02.419490: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:20:02.419531: Inverter 0 discharge windows currently []
2026-08-17 17:20:02.419556: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:20:02.419598: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:20:02.419641: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:20:02.478124: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:20:02.478231: Plan was last updated on 2026-08-17 17:10:00+01:00 and is now 10.0 minutes old
2026-08-17 17:20:02.478463: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:20:02.478508: Best export window [ ]
2026-08-17 17:20:02.479395: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:20:02.482615: Load divergence over 8.0 hours mean 495.46W, min 361.2W, max 977.4W, std dev 152.82W, divergence 15.42%
2026-08-17 17:20:02.503260: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:20:02.503366: LoadML is_calculating False
2026-08-17 17:20:02.503416: Creating pool of 12 processes to match your CPU count
2026-08-17 17:20:02.616957: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.03p, metric_keep 279.24kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.59kWh, PV 0.0kWh
2026-08-17 17:20:02.749282: Battery has 9.5 hours left - now at 8.64kWh
2026-08-17 17:20:02.795625: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.19p, metric_keep 280.58kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.56kWh, PV 0.0kWh
2026-08-17 17:20:02.878358: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 331.12p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.56kWh, PV 0.0kWh
2026-08-17 17:20:02.966047: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.25p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.59kWh, PV 0.0kWh
2026-08-17 17:20:02.966167: Saving plan best values to HA entities
2026-08-17 17:20:03.213029: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:20:03.218270: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:20:03.223306: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.54kWh, house 0.0kWh, export 0.0kWh, metric 329.25p, metric10 331.12p
2026-08-17 17:20:03.311853: Marginal costs baseline metric (no standing charge): 282.6113
2026-08-17 17:20:03.532833: Marginal energy costs matrix computed: min=4.23 max=26.5
2026-08-17 17:20:03.605363: Rate array import [{'start': 1040, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1040, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:20:03.606002: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 17:20:03.606053: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:20:03.606086: - The battery is currently at 54% and is in eco mode for the next 6 and a quarter hours.
2026-08-17 17:20:03.606131: - For the next 48 hours there will be no solar generation.
2026-08-17 17:20:03.606161: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:20:03.606184: - Your next charge slot will be in 6 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 17:20:03.606199:
2026-08-17 17:20:03.653384: Plan calculation took 1.18 seconds
2026-08-17 17:20:03.657023: No high rate period found
2026-08-17 17:20:03.708209: Import threshold used for optimisation was 8.0p
2026-08-17 17:20:03.773356: Low import rate windows [0: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 1: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 2: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 3: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 4: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 5: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 6: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 7: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 8: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 9: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 10: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 11: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 12: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 13: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 14: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 15: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 16: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 17: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 18: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 19: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 20: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 21: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 22: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 23: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 24: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 25: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 26: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 27: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 28: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 29: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 30: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 31: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 32: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 33: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 34: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 35: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 36: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 37: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 38: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 39: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 40: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 41: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 42: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 43: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 44: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 45: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 46: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 47: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 48: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 49: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 50: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 51: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 52: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 53: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 54: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 55: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 56: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 57: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 58: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 59: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 60: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 61: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 62: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 63: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 64: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 65: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 66: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 67: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 68: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 69: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 70: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 71: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 72: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 73: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 74: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 75: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 76: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 77: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 78: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 79: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 80: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 81: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 82: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 83: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 84: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 85: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 86: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 87: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 88: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 89: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 90: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 91: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 92: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 93: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 94: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75]
2026-08-17 17:20:03.781545: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-17 17:20:03.781694: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:20:03.781783: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:20:03.782056: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:20:03.782153: No export window planned
2026-08-17 17:20:03.782275: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:20:03.782310: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:20:03.782443: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:20:03.782619: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:20:03.782701: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:20:03.782774: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:20:03.782867: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.782906: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.782933: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.782973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783006: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783032: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783057: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783121: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783157: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783287: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:03.783307: Inverter 0 count register writes 0
2026-08-17 17:20:03.799236: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 17:20:03.799396: Recompute is saving previous plan...
2026-08-17 17:20:03.802518: Best charge window [ 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0% ]
2026-08-17 17:20:03.802603: Best export window [ ]
2026-08-17 17:20:03.803445: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:20:03.806598: Load divergence over 8.0 hours mean 495.46W, min 361.2W, max 977.4W, std dev 152.82W, divergence 15.42%
2026-08-17 17:20:03.824323: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:20:03.824431: LoadML is_calculating False
2026-08-17 17:20:03.824493: Creating pool of 12 processes to match your CPU count
2026-08-17 17:20:03.902057: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 17:20:03.904148: Optimise levels pass started at 2026-08-17 17:20:03
2026-08-17 17:20:03.904213: Optimise all windows, total charge 94 export 1
2026-08-17 17:20:04.336894: >> Region optimisation pass width 960 gives best_metric 374.38p, best_cost 418.52p, best_cycle 47.35kWh, best_import 33.52kWh
2026-08-17 17:20:04.565494: >> Region optimisation pass width 480 gives best_metric 374.38p, best_cost 418.52p, best_cycle 47.35kWh, best_import 33.52kWh
2026-08-17 17:20:04.943395: >> Region optimisation pass width 240 gives best_metric 374.38p, best_cost 418.52p, best_cycle 47.35kWh, best_import 33.52kWh
2026-08-17 17:20:06.089526: >> Region optimisation pass width 120 gives best_metric 373.39p, best_cost 407.12p, best_cycle 48.84kWh, best_import 32.1kWh
2026-08-17 17:20:06.089974: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 59
2026-08-17 17:20:06.090122: Optimise levels pass ended at 2026-08-17 17:20:06, duration 2.2 seconds tried 211 combinations
2026-08-17 17:20:06.090217: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 373.39p, best_keep 0kWh, best_cycle 48.84kWh, best_carbon 0kg, best_import 32.1kWh
2026-08-17 17:20:06.110615: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 17:20:10.518188: Tweak plan optimisation started metric 261.78p, cost 273.75p
2026-08-17 17:20:10.821416: Tweak optimisation finished metric 261.78p, cost 273.75p, metric_keep 0.11kWh, cycle 26.84kWh, carbon 0kg, import 15.43kWh, changed 8 window(s)
2026-08-17 17:20:10.841059: Swap charge optimisation started metric 261.78p, cost 273.75p, min_improvement_swap 0.1p
2026-08-17 17:20:16.601019: Swap charge optimisation finished metric 261.78p, cost 273.75p
2026-08-17 17:20:16.743414: Raw charge windows [ 17-08 17:00:00 - 17-08 17:30:00 @ 33.75p 0%, 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:20:16.744039: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:20:16.744264: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:20:16.744434: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:20:16.781800: Previous plan best metric is 262.27 (cost 274.32) and new plan best metric is 261.78 (cost 273.75)
2026-08-17 17:20:16.782059: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 17:20:16.782228: Plan valid is now true after recompute was False
2026-08-17 17:20:16.810748: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.41p, metric_keep 278.65kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.38kWh, PV 0.0kWh
2026-08-17 17:20:16.911863: Battery has 9.5 hours left - now at 8.64kWh
2026-08-17 17:20:16.954871: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.49p, metric_keep 279.99kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 17:20:17.040535: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 323.87p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 17:20:17.113983: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 320.95p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.38kWh, PV 0.0kWh
2026-08-17 17:20:17.114074: Saving plan best values to HA entities
2026-08-17 17:20:17.256019: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:20:17.261645: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:20:17.266785: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0.0kWh, export 0.0kWh, metric 320.95p, metric10 323.87p
2026-08-17 17:20:17.339408: Marginal costs baseline metric (no standing charge): 274.3191
2026-08-17 17:20:17.609047: Marginal energy costs matrix computed: min=4.23 max=26.5
2026-08-17 17:20:17.685317: Rate array import [{'start': 1040, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1040, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:20:17.686054: - Your estimated bill for today is £1.74 and tomorrow is £1.71
2026-08-17 17:20:17.686105: - Import rates are very expensive (33.8p - 46.4p) for the next 6 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:20:17.686129: - The battery is currently at 54% and is in eco mode for the next 6 and a quarter hours.
2026-08-17 17:20:17.686153: - For the next 48 hours there will be no solar generation.
2026-08-17 17:20:17.686171: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:20:17.686191: - Your next charge slot will be in 6 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 17:20:17.686209:
2026-08-17 17:20:17.744824: Plan calculation took 13.95 seconds
2026-08-17 17:20:17.745178: Inverter 0: Type SK Sunsynk
2026-08-17 17:20:17.745224: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:20:17.745439: Reserve min: 7%, battery_min: 7%
2026-08-17 17:20:17.745517: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:20:17.745817: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 408W, current battery voltage 51.2V, grid power -55W, load power 471W, PV Power 0W
2026-08-17 17:20:17.746059: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:20:17.746159: Inverter 0 scheduled charge enable is False
2026-08-17 17:20:17.746194: Inverter 0 charge windows currently []
2026-08-17 17:20:17.746225: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:20:17.746332: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:20:17.746370: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:20:17.746409: Inverter 0 scheduled discharge enable is False
2026-08-17 17:20:17.746540: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:20:17.746576: Inverter 0 discharge windows currently []
2026-08-17 17:20:17.746598: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:20:17.746621: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:20:17.746639: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:20:17.798179: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-17 17:20:17.798317: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:20:17.798390: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:20:17.798563: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:20:17.798644: No export window planned
2026-08-17 17:20:17.798749: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:20:17.798784: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:20:17.798916: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:20:17.799088: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:20:17.799161: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:20:17.799214: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:20:17.799312: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799380: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799405: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799431: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799455: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799482: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799783: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:20:17.799808: Inverter 0 count register writes 0
2026-08-17 17:20:17.818578: Total inverter register writes now 861
2026-08-17 17:20:17.849332: Info: Completed run status Demand
2026-08-17 17:20:17.854101: Info: record_status Demand
2026-08-17 17:20:17.859513: Saved current settings to /config/predbat_config.json
2026-08-17 17:20:17.859743: Compare, best tariff: current metric 104.68p
2026-08-17 17:20:48.956367: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:20:48.956593: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:20:48.956682: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:20:48.956859: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:20:48.956897: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:20:48.956918: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:20:48.956943: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:22:49.160657: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:22:49.160916: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:22:49.160961: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:22:49.161135: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:22:49.161174: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:22:49.161195: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:22:49.161213: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:24:49.386121: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:24:49.386447: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:24:49.386501: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:24:49.386643: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:24:49.386681: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:24:49.386703: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:24:49.386721: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:25:00.476088: --------------- PredBat - update at 2026-08-17 17:25:00+01:00 with clock skew 0 minutes, minutes now 1045
2026-08-17 17:25:00.477147: Saved current settings to /config/predbat_config.json
2026-08-17 17:25:00.477315: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 17:25:00.477371: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:25:00.490180: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:25:00.490304: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:25:00.490481: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:25:00.490916: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:25:00.491047: Predbat mode is set to Control charge & discharge
2026-08-17 17:25:00.663086: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:25:00.663239: Using load_power data to fill gaps in load_today data
2026-08-17 17:25:01.394174: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:25:01.394354: Zero load period starting at 2026-08-17T10:54:00+0100 (391 minutes) for 189 minutes with base value 213.75
2026-08-17 17:25:01.394849: Processing 721 30-minute periods for power integration
2026-08-17 17:25:01.554116: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:25:01.554273: Car charging hold False, threshold 6.0kWh
2026-08-17 17:25:01.554311: Current data so far today: load 9.2kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:25:01.567673: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:25:01.567741: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:25:01.568501: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:25:01.568564: Standing charge is set to 46.63p
2026-08-17 17:25:01.647988: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.648260: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.648498: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.648709: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.648912: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.649111: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.649411: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.649637: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.649818: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:25:01.651009: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:25:01.651122: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:25:01.657035: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:25:01.657376: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:25:01.693140: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:25:01.693244: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:25:01.694465: High export rate found rates in range 99p to -99p
2026-08-17 17:25:01.799146: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:25:01.799295: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:25:01.818610: Battery level now 8.64kWh, -1hr ago 9.08kWh, at midnight 10.49kWh, battery value change in the last hour -3.02p, change today -12.7p, rate_forward 6.87p
2026-08-17 17:25:01.818973: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:25:01.876030: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 150.33p, import 103.69p, export 0.0p, carbon 0.0kg
2026-08-17 17:25:01.876201: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:25:01.963534: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:25:01.986112: Today's load divergence 97.86%, in-day adjustment 89.85%, damping 0.95x, yesterday 68.37% today 97.97% blend 27.43%
2026-08-17 17:25:01.986214: Today's predicted so far 10.75kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 10.75kWh forecast extra.
2026-08-17 17:25:01.986268: Today's actual load so far 10.42kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 17:25:02.015314: Inverter 0: Type SK Sunsynk
2026-08-17 17:25:02.015388: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:25:02.015579: Reserve min: 7%, battery_min: 7%
2026-08-17 17:25:02.015668: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:25:02.015997: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 403W, current battery voltage 51.2V, grid power -54W, load power 466W, PV Power 0W
2026-08-17 17:25:02.016198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:25:02.016306: Inverter 0 scheduled charge enable is False
2026-08-17 17:25:02.016350: Inverter 0 charge windows currently []
2026-08-17 17:25:02.016391: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:25:02.016517: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:25:02.016558: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:25:02.016613: Inverter 0 scheduled discharge enable is False
2026-08-17 17:25:02.016754: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:25:02.016794: Inverter 0 discharge windows currently []
2026-08-17 17:25:02.016827: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:25:02.016859: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:25:02.016886: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:25:02.070761: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:25:02.070857: Plan was last updated on 2026-08-17 17:20:00+01:00 and is now 5.0 minutes old
2026-08-17 17:25:02.071058: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:25:02.071099: Best export window [ ]
2026-08-17 17:25:02.071999: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:25:02.075087: Load divergence over 8.0 hours mean 493.82W, min 344.4W, max 1032.6W, std dev 164.91W, divergence 16.7%
2026-08-17 17:25:02.090195: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:25:02.090295: LoadML is_calculating False
2026-08-17 17:25:02.090364: Creating pool of 12 processes to match your CPU count
2026-08-17 17:25:02.190938: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.18p, metric_keep 278.79kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.51kWh, PV 0.0kWh
2026-08-17 17:25:02.320234: Battery has 9.5 hours left - now at 8.64kWh
2026-08-17 17:25:02.364867: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.33p, metric_keep 280.14kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.48kWh, PV 0.0kWh
2026-08-17 17:25:02.442308: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 327.19p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.48kWh, PV 0.0kWh
2026-08-17 17:25:02.513148: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 324.81p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.51kWh, PV 0.0kWh
2026-08-17 17:25:02.513244: Saving plan best values to HA entities
2026-08-17 17:25:02.658973: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:25:02.663970: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:25:02.669239: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.98kWh, house 0kWh, export 0.0kWh, metric 324.81p, metric10 327.19p
2026-08-17 17:25:02.743298: Marginal costs baseline metric (no standing charge): 278.1811
2026-08-17 17:25:02.997981: Marginal energy costs matrix computed: min=6.59 max=28.48
2026-08-17 17:25:03.068942: Rate array import [{'start': 1045, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1045, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:25:03.069669: - Your estimated bill for today is £1.75 and tomorrow is £1.71
2026-08-17 17:25:03.069714: - Import rates are very expensive (33.8p - 46.4p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:25:03.069737: - The battery is currently at 54% and is in eco mode for the next 6 hours.
2026-08-17 17:25:03.069756: - For the next 48 hours there will be no solar generation.
2026-08-17 17:25:03.069773: - You will reach a minimum of 12% battery in 30 hours.
2026-08-17 17:25:03.069790: - Your next charge slot will be in 6 hours where import rates will be cheap (8.0p).
2026-08-17 17:25:03.069807:
2026-08-17 17:25:03.122959: Plan calculation took 1.05 seconds
2026-08-17 17:25:03.126755: No high rate period found
2026-08-17 17:25:03.176856: Import threshold used for optimisation was 8.0p
2026-08-17 17:25:03.226848: Low import rate windows [0: 08-17 17:00:00 - 08-17 17:30:00 @ 33.75, 1: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 2: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 3: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 4: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 5: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 6: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 7: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 8: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 9: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 10: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 11: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 12: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 13: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 14: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 15: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 16: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 17: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 18: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 19: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 20: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 21: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 22: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 23: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 24: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 25: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 26: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 27: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 28: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 29: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 30: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 31: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 32: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 33: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 34: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 35: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 36: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 37: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 38: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 39: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 40: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 41: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 42: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 43: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 44: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 45: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 46: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 47: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 48: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 49: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 50: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 51: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 52: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 53: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 54: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 55: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 56: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 57: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 58: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 59: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 60: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 61: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 62: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 63: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 64: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 65: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 66: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 67: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 68: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 69: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 70: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 71: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 72: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 73: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 74: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 75: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 76: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 77: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 78: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 79: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 80: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 81: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 82: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 83: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 84: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 85: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 86: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 87: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 88: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 89: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 90: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 91: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 92: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 93: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 94: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75]
2026-08-17 17:25:03.232831: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-17 17:25:03.232965: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:25:03.233067: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:25:03.233332: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:25:03.233428: No export window planned
2026-08-17 17:25:03.233555: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:25:03.233590: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:25:03.233722: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:25:03.233898: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:25:03.233958: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:25:03.234023: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:25:03.234108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234147: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234225: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234251: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234281: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234311: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234410: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:25:03.234599: Inverter 0 count register writes 0
2026-08-17 17:25:03.249189: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 17:25:03.253988: Total inverter register writes now 861
2026-08-17 17:25:03.283089: Info: Completed run status Demand
2026-08-17 17:25:03.288555: Info: record_status Demand
2026-08-17 17:25:03.294405: Saved current settings to /config/predbat_config.json
2026-08-17 17:25:03.294668: Compare, best tariff: current metric 104.68p
2026-08-17 17:25:34.394281: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:25:34.394480: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:25:34.394519: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:25:34.394633: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:25:34.394667: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:25:34.394685: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:25:34.394699: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:27:34.595475: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:27:34.595760: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:27:34.595801: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:27:34.596028: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:27:34.596082: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:27:34.596105: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:27:34.596124: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:29:48.818027: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:29:48.818244: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:29:48.818278: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:29:48.818605: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:29:48.818677: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:29:48.818699: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:29:48.818724: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:30:00.903852: --------------- PredBat - update at 2026-08-17 17:30:00+01:00 with clock skew 0 minutes, minutes now 1050
2026-08-17 17:30:00.904970: Saved current settings to /config/predbat_config.json
2026-08-17 17:30:00.905146: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 17:30:00.905205: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:30:00.920237: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:30:00.920401: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:30:00.920568: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:30:00.921096: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:30:00.921218: Predbat mode is set to Control charge & discharge
2026-08-17 17:30:01.136679: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:30:01.136804: Using load_power data to fill gaps in load_today data
2026-08-17 17:30:01.859271: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:30:01.859496: Zero load period starting at 2026-08-17T10:54:00+0100 (396 minutes) for 189 minutes with base value 213.725
2026-08-17 17:30:01.860405: Processing 721 30-minute periods for power integration
2026-08-17 17:30:02.056171: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:30:02.056314: Car charging hold False, threshold 6.0kWh
2026-08-17 17:30:02.056361: Current data so far today: load 9.25kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:30:02.073806: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:30:02.073919: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:30:02.074750: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:30:02.074831: Standing charge is set to 46.63p
2026-08-17 17:30:02.167001: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.167252: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.167463: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.167644: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.167812: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.168073: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.168254: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.168437: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.168599: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:30:02.169648: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:30:02.169749: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:30:02.175497: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:30:02.175893: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:30:02.223614: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:30:02.223798: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:30:02.226336: High export rate found rates in range 99p to -99p
2026-08-17 17:30:02.330483: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:30:02.330608: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:30:02.343432: Battery level now 8.64kWh, -1hr ago 8.96kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -12.7p, rate_forward 6.87p
2026-08-17 17:30:02.343836: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:30:02.401898: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 17:30:02.402041: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:30:02.516005: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:30:02.558488: Today's load divergence 97.55%, in-day adjustment 89.73%, damping 0.95x, yesterday 68.37% today 97.67% blend 27.08%
2026-08-17 17:30:02.558610: Today's predicted so far 10.86kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 10.86kWh forecast extra.
2026-08-17 17:30:02.558648: Today's actual load so far 10.49kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 17:30:02.592254: Inverter 0: Type SK Sunsynk
2026-08-17 17:30:02.592355: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:30:02.592612: Reserve min: 7%, battery_min: 7%
2026-08-17 17:30:02.592707: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:30:02.592973: Inverter 0 SoC: 8.64kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power 408W, current battery voltage 51.2V, grid power -54W, load power 470W, PV Power 0W
2026-08-17 17:30:02.593124: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:30:02.593209: Inverter 0 scheduled charge enable is False
2026-08-17 17:30:02.593242: Inverter 0 charge windows currently []
2026-08-17 17:30:02.593269: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:30:02.593396: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:30:02.593432: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:30:02.593469: Inverter 0 scheduled discharge enable is False
2026-08-17 17:30:02.593707: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:30:02.593770: Inverter 0 discharge windows currently []
2026-08-17 17:30:02.593810: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:30:02.593841: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:30:02.593865: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:30:02.662740: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:30:02.662841: Plan was last updated on 2026-08-17 17:20:00+01:00 and is now 10.0 minutes old
2026-08-17 17:30:02.663050: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:30:02.663090: Best export window [ ]
2026-08-17 17:30:02.664059: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:30:02.667151: Load divergence over 8.0 hours mean 492.3W, min 353.4W, max 1063.8W, std dev 152.92W, divergence 15.53%
2026-08-17 17:30:02.686336: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:30:02.686461: LoadML is_calculating False
2026-08-17 17:30:02.686547: Creating pool of 12 processes to match your CPU count
2026-08-17 17:30:02.800799: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.78p, metric_keep 278.93kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.61kWh, PV 0.0kWh
2026-08-17 17:30:02.931949: Battery has 9.42 hours left - now at 8.64kWh
2026-08-17 17:30:02.977580: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.91p, metric_keep 280.27kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.58kWh, PV 0.0kWh
2026-08-17 17:30:03.059893: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 333.77p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.58kWh, PV 0.0kWh
2026-08-17 17:30:03.138124: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 332.02p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.61kWh, PV 0.0kWh
2026-08-17 17:30:03.138221: Saving plan best values to HA entities
2026-08-17 17:30:03.305185: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:30:03.310574: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:30:03.316392: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.46kWh, house 0.0kWh, export 0.0kWh, metric 332.02p, metric10 333.77p
2026-08-17 17:30:03.394714: Marginal costs baseline metric (no standing charge): 285.3829
2026-08-17 17:30:03.649762: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 17:30:03.727147: Rate array import [{'start': 1050, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1050, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:30:03.727841: - Your estimated bill for today is £1.77 and tomorrow is £1.71
2026-08-17 17:30:03.727885: - Import rates are very expensive (33.8p - 46.4p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:30:03.727929: - The battery is currently at 54% and is in eco mode for the next 6 hours.
2026-08-17 17:30:03.727951: - For the next 48 hours there will be no solar generation.
2026-08-17 17:30:03.727969: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:30:03.727986: - Your next charge slot will be in 6 hours where import rates will be cheap (8.0p).
2026-08-17 17:30:03.728012:
2026-08-17 17:30:03.782947: Plan calculation took 1.12 seconds
2026-08-17 17:30:03.786682: No high rate period found
2026-08-17 17:30:03.834813: Import threshold used for optimisation was 8.0p
2026-08-17 17:30:03.888897: Low import rate windows [0: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 1: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 2: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 3: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 4: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 5: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 6: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 7: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 8: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 9: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 10: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 11: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 12: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 13: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 14: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 15: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 16: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 17: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 18: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 19: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 20: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 21: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 22: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 23: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 24: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 25: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 26: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 27: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 28: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 29: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 30: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 31: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 32: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 33: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 34: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 35: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 36: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 37: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 38: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 39: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 40: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 41: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 42: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 43: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 44: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 45: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 46: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 47: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 48: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 49: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 50: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 51: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 52: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 53: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 54: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 55: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 56: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 57: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 58: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 59: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 60: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 61: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 62: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 63: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 64: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 65: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 66: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 67: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 68: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 69: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 70: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 71: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 72: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 73: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 74: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 75: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 76: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 77: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 78: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 79: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 80: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 81: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 82: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 83: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 84: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 85: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 86: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 87: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 88: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 89: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 90: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 91: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 92: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 93: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75]
2026-08-17 17:30:03.894224: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 54%, target 100%
2026-08-17 17:30:03.894365: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:30:03.894455: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:30:03.894668: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:30:03.894750: No export window planned
2026-08-17 17:30:03.894856: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:30:03.894885: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:30:03.894991: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:30:03.895164: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:30:03.895240: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:30:03.895310: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:30:03.895384: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895439: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895460: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895479: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895573: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895596: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895681: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:03.895720: Inverter 0 count register writes 0
2026-08-17 17:30:03.911584: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 17:30:03.911753: Recompute is saving previous plan...
2026-08-17 17:30:03.914889: Best charge window [ 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0% ]
2026-08-17 17:30:03.915007: Best export window [ ]
2026-08-17 17:30:03.915971: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:30:03.919223: Load divergence over 8.0 hours mean 492.3W, min 353.4W, max 1063.8W, std dev 152.92W, divergence 15.53%
2026-08-17 17:30:03.937177: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:30:03.937303: LoadML is_calculating False
2026-08-17 17:30:03.937369: Creating pool of 12 processes to match your CPU count
2026-08-17 17:30:04.026843: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 17:30:04.028944: Optimise levels pass started at 2026-08-17 17:30:04
2026-08-17 17:30:04.029022: Optimise all windows, total charge 94 export 1
2026-08-17 17:30:04.690541: >> Region optimisation pass width 960 gives best_metric 377.74p, best_cost 421.33p, best_cycle 47.28kWh, best_import 33.45kWh
2026-08-17 17:30:05.394163: >> Region optimisation pass width 480 gives best_metric 372.35p, best_cost 383.37p, best_cycle 46.85kWh, best_import 28.71kWh
2026-08-17 17:30:05.782587: >> Region optimisation pass width 240 gives best_metric 372.35p, best_cost 383.37p, best_cycle 46.85kWh, best_import 28.71kWh
2026-08-17 17:30:06.717788: >> Region optimisation pass width 120 gives best_metric 372.35p, best_cost 383.37p, best_cycle 46.85kWh, best_import 28.71kWh
2026-08-17 17:30:06.718117: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 58
2026-08-17 17:30:06.718361: Optimise levels pass ended at 2026-08-17 17:30:06, duration 2.7 seconds tried 232 combinations
2026-08-17 17:30:06.718468: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 372.35p, best_keep 0.18kWh, best_cycle 46.85kWh, best_carbon 0kg, best_import 28.71kWh
2026-08-17 17:30:06.735500: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 17:30:11.403271: Tweak plan optimisation started metric 265.66p, cost 278.49p
2026-08-17 17:30:11.740191: Tweak optimisation finished metric 265.66p, cost 278.49p, metric_keep 0kWh, cycle 28.58kWh, carbon 0kg, import 15.6kWh, changed 8 window(s)
2026-08-17 17:30:11.759527: Swap charge optimisation started metric 265.66p, cost 278.49p, min_improvement_swap 0.1p
2026-08-17 17:30:15.924656: Swap charge optimisation finished metric 265.66p, cost 278.49p
2026-08-17 17:30:16.028436: Raw charge windows [ 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:30:16.029246: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:30:16.029560: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:30:16.029741: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 17:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:30:16.069208: Previous plan best metric is 265.12 (cost 277.2) and new plan best metric is 265.66 (cost 278.49)
2026-08-17 17:30:16.069469: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 17:30:16.069616: Plan valid is now true after recompute was False
2026-08-17 17:30:16.099582: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.26p, metric_keep 278.35kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.42kWh, PV 0.0kWh
2026-08-17 17:30:16.200570: Battery has 9.42 hours left - now at 8.64kWh
2026-08-17 17:30:16.240972: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 629.32p, metric_keep 279.68kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.38kWh, PV 0.0kWh
2026-08-17 17:30:16.311590: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 326.63p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.38kWh, PV 0.0kWh
2026-08-17 17:30:16.374837: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 323.83p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.42kWh, PV 0.0kWh
2026-08-17 17:30:16.374919: Saving plan best values to HA entities
2026-08-17 17:30:16.510892: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:30:16.516034: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:30:16.521024: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.44kWh, house 0.0kWh, export 0.0kWh, metric 323.83p, metric10 326.63p
2026-08-17 17:30:16.588678: Marginal costs baseline metric (no standing charge): 277.2003
2026-08-17 17:30:16.814345: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 17:30:16.892965: Rate array import [{'start': 1050, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1050, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:30:16.893814: - Your estimated bill for today is £1.77 and tomorrow is £1.71
2026-08-17 17:30:16.893870: - Import rates are very expensive (33.8p - 46.4p) for the next 6 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:30:16.893894: - The battery is currently at 54% and is in eco mode for the next 6 hours.
2026-08-17 17:30:16.893912: - For the next 48 hours there will be no solar generation.
2026-08-17 17:30:16.893930: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:30:16.893953: - Your next charge slot will be in 6 hours where import rates will be cheap (8.0p).
2026-08-17 17:30:16.893975:
2026-08-17 17:30:16.949398: Plan calculation took 13.04 seconds
2026-08-17 17:30:16.950007: Inverter 0: Type SK Sunsynk
2026-08-17 17:30:16.950070: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:30:16.950392: Reserve min: 7%, battery_min: 7%
2026-08-17 17:30:16.950501: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:30:16.950848: Inverter 0 SoC: 8.5kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 406W, current battery voltage 51.2V, grid power -54W, load power 468W, PV Power 0W
2026-08-17 17:30:16.951079: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:30:16.951179: Inverter 0 scheduled charge enable is False
2026-08-17 17:30:16.951215: Inverter 0 charge windows currently []
2026-08-17 17:30:16.951245: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:30:16.951459: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:30:16.951525: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:30:16.951573: Inverter 0 scheduled discharge enable is False
2026-08-17 17:30:16.951717: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:30:16.951756: Inverter 0 discharge windows currently []
2026-08-17 17:30:16.951780: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:30:16.951821: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:30:16.951839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:30:17.005235: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:30:17.005377: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:30:17.005436: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:30:17.005588: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:30:17.005660: No export window planned
2026-08-17 17:30:17.005753: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:30:17.005782: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:30:17.005895: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:30:17.006026: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:30:17.006071: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:30:17.006116: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:30:17.006189: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006224: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006266: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006300: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006327: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006489: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006530: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:30:17.006553: Inverter 0 count register writes 0
2026-08-17 17:30:17.024724: Total inverter register writes now 861
2026-08-17 17:30:17.056133: Info: Completed run status Demand
2026-08-17 17:30:17.062094: Info: record_status Demand
2026-08-17 17:30:17.068888: Saved current settings to /config/predbat_config.json
2026-08-17 17:30:17.069142: Compare, best tariff: current metric 104.68p
2026-08-17 17:30:49.212265: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:30:49.212533: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:30:49.212577: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:30:49.212746: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:30:49.212793: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:30:49.212816: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:30:49.212834: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:32:49.430935: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:32:49.431168: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:32:49.431202: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:32:49.431351: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:32:49.431392: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:32:49.431414: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:32:49.431432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:35:00.661752: --------------- PredBat - update at 2026-08-17 17:35:00+01:00 with clock skew 0 minutes, minutes now 1055
2026-08-17 17:35:00.662445: Saved current settings to /config/predbat_config.json
2026-08-17 17:35:00.662542: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 17:35:00.662569: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:35:00.672853: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:35:00.672946: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:35:00.673076: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:35:00.673506: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:35:00.673604: Predbat mode is set to Control charge & discharge
2026-08-17 17:35:00.836385: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:35:00.836500: Using load_power data to fill gaps in load_today data
2026-08-17 17:35:01.547525: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:35:01.547705: Zero load period starting at 2026-08-17T10:54:00+0100 (401 minutes) for 189 minutes with base value 213.7
2026-08-17 17:35:01.548187: Processing 721 30-minute periods for power integration
2026-08-17 17:35:01.702319: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:35:01.702444: Car charging hold False, threshold 6.0kWh
2026-08-17 17:35:01.702479: Current data so far today: load 9.3kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:35:01.715815: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:35:01.715884: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:35:01.716604: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:35:01.716665: Standing charge is set to 46.63p
2026-08-17 17:35:01.792705: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.792907: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.793076: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.793221: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.793378: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.793522: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.793695: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.793834: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.793966: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:35:01.794990: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:35:01.795088: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:35:01.799595: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:35:01.799972: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:35:01.841199: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:35:01.841294: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:35:01.842386: High export rate found rates in range 99p to -99p
2026-08-17 17:35:01.926468: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:35:01.926586: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:35:01.940489: Battery level now 8.64kWh, -1hr ago 8.96kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -12.7p, rate_forward 6.87p
2026-08-17 17:35:01.940811: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:35:01.998926: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 17:35:01.999076: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:35:02.103111: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:35:02.129913: Today's load divergence 97.32%, in-day adjustment 89.68%, damping 0.95x, yesterday 68.37% today 97.46% blend 26.74%
2026-08-17 17:35:02.130013: Today's predicted so far 10.96kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 10.96kWh forecast extra.
2026-08-17 17:35:02.130055: Today's actual load so far 10.55kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 17:35:02.158886: Inverter 0: Type SK Sunsynk
2026-08-17 17:35:02.158961: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:35:02.159127: Reserve min: 7%, battery_min: 7%
2026-08-17 17:35:02.159195: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:35:02.159451: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 397W, current battery voltage 51.2V, grid power -56W, load power 461W, PV Power 0W
2026-08-17 17:35:02.159596: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:35:02.159698: Inverter 0 scheduled charge enable is False
2026-08-17 17:35:02.159734: Inverter 0 charge windows currently []
2026-08-17 17:35:02.159760: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:35:02.159864: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:35:02.159935: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:35:02.159984: Inverter 0 scheduled discharge enable is False
2026-08-17 17:35:02.160117: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:35:02.160153: Inverter 0 discharge windows currently []
2026-08-17 17:35:02.160175: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:35:02.160195: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:35:02.160213: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:35:02.220372: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:35:02.220510: Plan was last updated on 2026-08-17 17:30:00+01:00 and is now 5.0 minutes old
2026-08-17 17:35:02.220740: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:35:02.220783: Best export window [ ]
2026-08-17 17:35:02.221623: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:35:02.224814: Load divergence over 8.0 hours mean 490.77W, min 322.2W, max 1002.6W, std dev 155.46W, divergence 15.84%
2026-08-17 17:35:02.245407: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:35:02.245519: LoadML is_calculating False
2026-08-17 17:35:02.245577: Creating pool of 12 processes to match your CPU count
2026-08-17 17:35:02.362071: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 608.8p, metric_keep 279.12kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.53kWh, PV 0.0kWh
2026-08-17 17:35:02.475227: Battery has 9.17 hours left - now at 8.48kWh
2026-08-17 17:35:02.512142: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 630.85p, metric_keep 280.41kWh, min_soc 1.12kWh @ 08-18 02:20:00, load 30.49kWh, PV 0.0kWh
2026-08-17 17:35:02.590130: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 331.22p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.49kWh, PV 0.0kWh
2026-08-17 17:35:02.672682: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 328.8p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.53kWh, PV 0.0kWh
2026-08-17 17:35:02.672802: Saving plan best values to HA entities
2026-08-17 17:35:02.812157: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:35:02.816756: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 17:35:02.821392: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.06kWh, house 0.0kWh, export 0.0kWh, metric 328.8p, metric10 331.22p
2026-08-17 17:35:02.892145: Marginal costs baseline metric (no standing charge): 282.1702
2026-08-17 17:35:03.149113: Marginal energy costs matrix computed: min=8.0 max=30.58
2026-08-17 17:35:03.231293: Rate array import [{'start': 1055, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1055, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:35:03.232117: - Your estimated bill for today is £1.77 and tomorrow is £1.71
2026-08-17 17:35:03.232169: - Import rates are very expensive (33.8p - 46.4p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:35:03.232192: - The battery is currently at 53% and is in eco mode for the next 5 hours.
2026-08-17 17:35:03.232219: - For the next 48 hours there will be no solar generation.
2026-08-17 17:35:03.232259: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:35:03.232302: - Your next charge slot will be in 5 hours where import rates will be cheap (8.0p).
2026-08-17 17:35:03.232371:
2026-08-17 17:35:03.287794: Plan calculation took 1.07 seconds
2026-08-17 17:35:03.292092: No high rate period found
2026-08-17 17:35:03.342977: Import threshold used for optimisation was 8.0p
2026-08-17 17:35:03.394967: Low import rate windows [0: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 1: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 2: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 3: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 4: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 5: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 6: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 7: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 8: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 9: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 10: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 11: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 12: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 13: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 14: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 15: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 16: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 17: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 18: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 19: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 20: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 21: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 22: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 23: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 24: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 25: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 26: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 27: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 28: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 29: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 30: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 31: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 32: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 33: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 34: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 35: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 36: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 37: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 38: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 39: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 40: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 41: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 42: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 43: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 44: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 45: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 46: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 47: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 48: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 49: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 50: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 51: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 52: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 53: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 54: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 55: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 56: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 57: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 58: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 59: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 60: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 61: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 62: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 63: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 64: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 65: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 66: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 67: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 68: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 69: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 70: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 71: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 72: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 73: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 74: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 75: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 76: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 77: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 78: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 79: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 80: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 81: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 82: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 83: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 84: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 85: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 86: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 87: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 88: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 89: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 90: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 91: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 92: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 93: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 94: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75]
2026-08-17 17:35:03.400876: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:35:03.400979: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:35:03.401101: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:35:03.401416: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:35:03.401541: No export window planned
2026-08-17 17:35:03.401720: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:35:03.401770: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:35:03.401961: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:35:03.402198: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:35:03.402282: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:35:03.402391: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:35:03.402529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402689: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402736: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402820: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.402978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.403004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.403030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.403050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.403087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.403107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:35:03.403123: Inverter 0 count register writes 0
2026-08-17 17:35:03.417085: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 17:35:03.421463: Total inverter register writes now 861
2026-08-17 17:35:03.453326: Info: Completed run status Demand
2026-08-17 17:35:03.460532: Info: record_status Demand
2026-08-17 17:35:03.467322: Saved current settings to /config/predbat_config.json
2026-08-17 17:35:03.467615: Compare, best tariff: current metric 104.68p
2026-08-17 17:35:34.564256: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:35:34.564533: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:35:34.564574: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:35:34.564780: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:35:34.564820: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:35:34.564840: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:35:34.564854: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:37:24.284633: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 17:37:25.145065: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:37:25.145246: Zero load period starting at 2026-08-17T10:54:00+0100 (401 minutes) for 189 minutes with base value 410.1
2026-08-17 17:37:25.145698: Processing 1345 30-minute periods for power integration
2026-08-17 17:37:25.240702: ML Component: Car charging hold False, car energy reported load False
2026-08-17 17:37:25.321654: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:37:25.401128: ML Temperature data points: 49346
2026-08-17 17:37:25.617167: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 17:37:25.650845: ML Component: Data fetch completed, load data age 59.0 days, 17035 data points
2026-08-17 17:37:25.650948: ML Component: No training needed, model age is 0.78 hours
2026-08-17 17:37:25.650998: ML Component: Generating predictions load data age 59.0 days, 17035 data points
2026-08-17 17:37:25.783760: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0497 max_dow {0: 0.08182500006258488, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 17:37:26.701060: ML Component: Generated 576 predictions (total 25.64 kWh over 48h)
2026-08-17 17:37:26.740175: ML Component: Prediction cycle completed
2026-08-17 17:37:26.859126: ML Component: Saved 17035 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 17:37:48.872293: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:37:48.872514: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:37:48.872543: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:37:48.872674: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:37:48.872720: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:37:48.872745: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:37:48.872760: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:39:49.084021: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:39:49.084279: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:39:49.084341: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:39:49.084493: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:39:49.084532: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:39:49.084553: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:39:49.084571: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:40:00.170971: --------------- PredBat - update at 2026-08-17 17:40:00+01:00 with clock skew 0 minutes, minutes now 1060
2026-08-17 17:40:00.171711: Saved current settings to /config/predbat_config.json
2026-08-17 17:40:00.171827: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 17:40:00.171864: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:40:00.187533: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:40:00.187686: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:40:00.187866: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:40:00.188412: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:40:00.188538: Predbat mode is set to Control charge & discharge
2026-08-17 17:40:00.388225: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:40:00.388382: Using load_power data to fill gaps in load_today data
2026-08-17 17:40:01.248695: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:40:01.248878: Zero load period starting at 2026-08-17T10:54:00+0100 (406 minutes) for 189 minutes with base value 213.675
2026-08-17 17:40:01.249441: Processing 721 30-minute periods for power integration
2026-08-17 17:40:01.436080: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:40:01.436206: Car charging hold False, threshold 6.0kWh
2026-08-17 17:40:01.436252: Current data so far today: load 9.35kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:40:01.452279: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:40:01.452379: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:40:01.453164: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:40:01.453235: Standing charge is set to 46.63p
2026-08-17 17:40:01.539540: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.539789: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.540040: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.540234: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.540437: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.540612: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.540813: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.540990: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.541154: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:40:01.542253: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:40:01.542359: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:40:01.547750: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:40:01.548110: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:40:01.590138: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:40:01.590238: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:40:01.591321: High export rate found rates in range 99p to -99p
2026-08-17 17:40:01.699809: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:40:01.699954: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:40:01.712026: Battery level now 8.48kWh, -1hr ago 8.96kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -13.8p, rate_forward 6.87p
2026-08-17 17:40:01.712552: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:40:01.769228: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 17:40:01.769446: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:40:01.862628: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:40:01.894679: Today's load divergence 97.46%, in-day adjustment 89.88%, damping 0.95x, yesterday 68.37% today 97.59% blend 26.39%
2026-08-17 17:40:01.894774: Today's predicted so far 10.97kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 10.97kWh forecast extra.
2026-08-17 17:40:01.894807: Today's actual load so far 10.58kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 17:40:01.930594: Inverter 0: Type SK Sunsynk
2026-08-17 17:40:01.930677: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:40:01.930855: Reserve min: 7%, battery_min: 7%
2026-08-17 17:40:01.930927: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:40:01.931183: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 382W, current battery voltage 51.2V, grid power -55W, load power 445W, PV Power 0W
2026-08-17 17:40:01.931329: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:40:01.931486: Inverter 0 scheduled charge enable is False
2026-08-17 17:40:01.931546: Inverter 0 charge windows currently []
2026-08-17 17:40:01.931578: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:40:01.931720: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:40:01.931758: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:40:01.931793: Inverter 0 scheduled discharge enable is False
2026-08-17 17:40:01.931951: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:40:01.931992: Inverter 0 discharge windows currently []
2026-08-17 17:40:01.932043: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:40:01.932064: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:40:01.932088: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:40:02.001238: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:40:02.001336: Plan was last updated on 2026-08-17 17:30:00+01:00 and is now 10.0 minutes old
2026-08-17 17:40:02.001608: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:40:02.001656: Best export window [ ]
2026-08-17 17:40:02.002546: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:40:02.005944: Load divergence over 8.0 hours mean 490.85W, min 336.6W, max 1039.2W, std dev 157.2W, divergence 16.01%
2026-08-17 17:40:02.025545: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:40:02.025665: LoadML is_calculating False
2026-08-17 17:40:02.025727: Creating pool of 12 processes to match your CPU count
2026-08-17 17:40:02.140012: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 609.26p, metric_keep 279.25kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.63kWh, PV 0.0kWh
2026-08-17 17:40:02.276718: Battery has 9.17 hours left - now at 8.48kWh
2026-08-17 17:40:02.319240: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 631.36p, metric_keep 280.54kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.6kWh, PV 0.0kWh
2026-08-17 17:40:02.389562: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 334.43p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.6kWh, PV 0.0kWh
2026-08-17 17:40:02.458706: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 332.63p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.63kWh, PV 0.0kWh
2026-08-17 17:40:02.458792: Saving plan best values to HA entities
2026-08-17 17:40:02.603690: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:40:02.608811: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:40:02.613256: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.54kWh, house 0.0kWh, export 0.0kWh, metric 332.63p, metric10 334.43p
2026-08-17 17:40:02.695111: Marginal costs baseline metric (no standing charge): 286.0002
2026-08-17 17:40:02.982597: Marginal energy costs matrix computed: min=7.97 max=30.58
2026-08-17 17:40:03.048474: Rate array import [{'start': 1060, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1060, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:40:03.049126: - Your estimated bill for today is £1.77 and tomorrow is £1.71
2026-08-17 17:40:03.049167: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:40:03.049190: - The battery is currently at 53% and is in eco mode for the next 5 and three quarters hours.
2026-08-17 17:40:03.049211: - For the next 48 hours there will be no solar generation.
2026-08-17 17:40:03.049233: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:40:03.049250: - Your next charge slot will be in 5 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 17:40:03.049267:
2026-08-17 17:40:03.097960: Plan calculation took 1.10 seconds
2026-08-17 17:40:03.101033: No high rate period found
2026-08-17 17:40:03.145968: Import threshold used for optimisation was 8.0p
2026-08-17 17:40:03.198361: Low import rate windows [0: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 1: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 2: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 3: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 4: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 5: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 6: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 7: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 8: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 9: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 10: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 11: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 12: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 13: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 14: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 15: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 16: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 17: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 18: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 19: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 20: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 21: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 22: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 23: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 24: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 25: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 26: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 27: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 28: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 29: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 30: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 31: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 32: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 33: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 34: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 35: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 36: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 37: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 38: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 39: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 40: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 41: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 42: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 43: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 44: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 45: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 46: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 47: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 48: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 49: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 50: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 51: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 52: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 53: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 54: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 55: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 56: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 57: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 58: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 59: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 60: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 61: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 62: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 63: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 64: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 65: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 66: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 67: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 68: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 69: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 70: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 71: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 72: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 73: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 74: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 75: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 76: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 77: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 78: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 79: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 80: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 81: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 82: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 83: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 84: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 85: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 86: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 87: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 88: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 89: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 90: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 91: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 92: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 93: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 94: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75]
2026-08-17 17:40:03.204472: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:40:03.204600: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:40:03.204697: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:40:03.204944: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:40:03.205036: No export window planned
2026-08-17 17:40:03.205164: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:40:03.205199: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:40:03.205355: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:40:03.205650: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:40:03.205742: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:40:03.205840: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:40:03.205980: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206031: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206115: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206144: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206168: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:03.206449: Inverter 0 count register writes 0
2026-08-17 17:40:03.221017: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 17:40:03.221155: Recompute is saving previous plan...
2026-08-17 17:40:03.224264: Best charge window [ 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0% ]
2026-08-17 17:40:03.224350: Best export window [ ]
2026-08-17 17:40:03.225107: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:40:03.229097: Load divergence over 8.0 hours mean 490.85W, min 336.6W, max 1039.2W, std dev 157.2W, divergence 16.01%
2026-08-17 17:40:03.248364: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:40:03.248493: LoadML is_calculating False
2026-08-17 17:40:03.248557: Creating pool of 12 processes to match your CPU count
2026-08-17 17:40:03.334018: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 17:40:03.335896: Optimise levels pass started at 2026-08-17 17:40:03
2026-08-17 17:40:03.336031: Optimise all windows, total charge 94 export 1
2026-08-17 17:40:03.694922: >> Region optimisation pass width 960 gives best_metric 379.16p, best_cost 421.84p, best_cycle 47.37kWh, best_import 33.52kWh
2026-08-17 17:40:03.823800: >> Region optimisation pass width 480 gives best_metric 379.16p, best_cost 421.84p, best_cycle 47.37kWh, best_import 33.52kWh
2026-08-17 17:40:04.078090: >> Region optimisation pass width 240 gives best_metric 379.16p, best_cost 421.84p, best_cycle 47.37kWh, best_import 33.52kWh
2026-08-17 17:40:04.874817: >> Region optimisation pass width 120 gives best_metric 378.38p, best_cost 413.14p, best_cycle 48.5kWh, best_import 32.43kWh
2026-08-17 17:40:04.875085: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 58
2026-08-17 17:40:04.875168: Optimise levels pass ended at 2026-08-17 17:40:04, duration 1.5 seconds tried 81 combinations
2026-08-17 17:40:04.875264: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 378.38p, best_keep 0kWh, best_cycle 48.5kWh, best_carbon 0kg, best_import 32.43kWh
2026-08-17 17:40:04.894633: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 17:40:09.047595: Tweak plan optimisation started metric 266.23p, cost 279.24p
2026-08-17 17:40:09.337204: Tweak optimisation finished metric 266.23p, cost 279.24p, metric_keep 0kWh, cycle 28.53kWh, carbon 0kg, import 15.69kWh, changed 8 window(s)
2026-08-17 17:40:09.358399: Swap charge optimisation started metric 266.23p, cost 279.24p, min_improvement_swap 0.1p
2026-08-17 17:40:13.682211: Swap charge optimisation finished metric 266.23p, cost 279.24p
2026-08-17 17:40:13.786929: Raw charge windows [ 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:40:13.787534: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:40:13.787758: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:40:13.787959: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:40:13.825774: Previous plan best metric is 265.61 (cost 277.72) and new plan best metric is 266.23 (cost 279.24)
2026-08-17 17:40:13.826041: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 17:40:13.826188: Plan valid is now true after recompute was False
2026-08-17 17:40:13.854347: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.64p, metric_keep 278.66kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.43kWh, PV 0.0kWh
2026-08-17 17:40:13.956312: Battery has 9.17 hours left - now at 8.48kWh
2026-08-17 17:40:14.009914: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 629.66p, metric_keep 279.95kWh, min_soc 1.12kWh @ 08-18 02:25:00, load 30.39kWh, PV 0.0kWh
2026-08-17 17:40:14.086566: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 327.18p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.39kWh, PV 0.0kWh
2026-08-17 17:40:14.158772: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 324.35p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.43kWh, PV 0.0kWh
2026-08-17 17:40:14.158862: Saving plan best values to HA entities
2026-08-17 17:40:14.297418: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:40:14.302548: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:40:14.308181: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0.0kWh, export 0.0kWh, metric 324.35p, metric10 327.18p
2026-08-17 17:40:14.381235: Marginal costs baseline metric (no standing charge): 277.716
2026-08-17 17:40:14.647623: Marginal energy costs matrix computed: min=7.97 max=30.58
2026-08-17 17:40:14.711566: Rate array import [{'start': 1060, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1060, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:40:14.712388: - Your estimated bill for today is £1.77 and tomorrow is £1.71
2026-08-17 17:40:14.712458: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:40:14.712501: - The battery is currently at 53% and is in eco mode for the next 5 and three quarters hours.
2026-08-17 17:40:14.712537: - For the next 48 hours there will be no solar generation.
2026-08-17 17:40:14.712576: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:40:14.712612: - Your next charge slot will be in 5 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 17:40:14.712649:
2026-08-17 17:40:14.763055: Plan calculation took 11.54 seconds
2026-08-17 17:40:14.763406: Inverter 0: Type SK Sunsynk
2026-08-17 17:40:14.763452: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:40:14.763681: Reserve min: 7%, battery_min: 7%
2026-08-17 17:40:14.763760: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:40:14.764126: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 375W, current battery voltage 51.2V, grid power -56W, load power 439W, PV Power 0W
2026-08-17 17:40:14.764350: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:40:14.764468: Inverter 0 scheduled charge enable is False
2026-08-17 17:40:14.764505: Inverter 0 charge windows currently []
2026-08-17 17:40:14.764534: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:40:14.764641: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:40:14.764680: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:40:14.764718: Inverter 0 scheduled discharge enable is False
2026-08-17 17:40:14.764839: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:40:14.764875: Inverter 0 discharge windows currently []
2026-08-17 17:40:14.764898: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:40:14.764916: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:40:14.764938: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:40:14.820320: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:40:14.820482: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:40:14.820551: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:40:14.820722: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:40:14.820803: No export window planned
2026-08-17 17:40:14.820911: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:40:14.820946: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:40:14.821079: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:40:14.821233: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:40:14.821283: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:40:14.821341: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:40:14.821443: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821485: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821515: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821629: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:40:14.821907: Inverter 0 count register writes 0
2026-08-17 17:40:14.843307: Total inverter register writes now 861
2026-08-17 17:40:14.874609: Info: Completed run status Demand
2026-08-17 17:40:14.880571: Info: record_status Demand
2026-08-17 17:40:14.886883: Saved current settings to /config/predbat_config.json
2026-08-17 17:40:14.887128: Compare, best tariff: current metric 104.68p
2026-08-17 17:40:48.993662: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:40:48.993900: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:40:48.993942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:40:48.994110: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:40:48.994154: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:40:48.994176: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:40:48.994194: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:42:49.215558: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:42:49.215785: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:42:49.215827: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:42:49.216011: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:42:49.216078: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:42:49.216100: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:42:49.216118: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:44:49.426620: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:44:49.426851: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:44:49.426884: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:44:49.427031: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:44:49.427069: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:44:49.427090: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:44:49.427118: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:45:00.520161: --------------- PredBat - update at 2026-08-17 17:45:00+01:00 with clock skew 0 minutes, minutes now 1065
2026-08-17 17:45:00.520886: Saved current settings to /config/predbat_config.json
2026-08-17 17:45:00.520996: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 17:45:00.521033: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:45:00.532669: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:45:00.532786: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:45:00.532982: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:45:00.533500: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:45:00.533616: Predbat mode is set to Control charge & discharge
2026-08-17 17:45:00.715248: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:45:00.715371: Using load_power data to fill gaps in load_today data
2026-08-17 17:45:01.546740: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:45:01.546938: Zero load period starting at 2026-08-17T10:54:00+0100 (411 minutes) for 189 minutes with base value 213.65
2026-08-17 17:45:01.547483: Processing 721 30-minute periods for power integration
2026-08-17 17:45:01.731123: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:45:01.731267: Car charging hold False, threshold 6.0kWh
2026-08-17 17:45:01.731313: Current data so far today: load 9.4kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:45:01.747685: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:45:01.747786: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:45:01.748582: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:45:01.748658: Standing charge is set to 46.63p
2026-08-17 17:45:01.834457: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.834707: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.834929: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.835141: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.835374: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.835568: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.835770: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.835963: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.836137: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:45:01.837248: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:45:01.837353: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:45:01.842738: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:45:01.843153: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:45:01.886785: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:45:01.886890: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:45:01.888307: High export rate found rates in range 99p to -99p
2026-08-17 17:45:01.987199: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:45:01.987316: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:45:01.999840: Battery level now 8.48kWh, -1hr ago 8.96kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -13.8p, rate_forward 6.87p
2026-08-17 17:45:02.000260: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:45:02.055443: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 17:45:02.055582: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:45:02.158553: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:45:02.189107: Today's load divergence 97.65%, in-day adjustment 90.11%, damping 0.95x, yesterday 68.37% today 97.77% blend 26.04%
2026-08-17 17:45:02.189194: Today's predicted so far 10.98kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 10.98kWh forecast extra.
2026-08-17 17:45:02.189222: Today's actual load so far 10.62kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 17:45:02.221918: Inverter 0: Type SK Sunsynk
2026-08-17 17:45:02.222002: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:45:02.222189: Reserve min: 7%, battery_min: 7%
2026-08-17 17:45:02.222260: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:45:02.222509: Inverter 0 SoC: 8.48kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 374W, current battery voltage 51.2V, grid power -54W, load power 437W, PV Power 0W
2026-08-17 17:45:02.222656: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:45:02.222739: Inverter 0 scheduled charge enable is False
2026-08-17 17:45:02.222768: Inverter 0 charge windows currently []
2026-08-17 17:45:02.222798: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:45:02.222902: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:45:02.222938: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:45:02.222973: Inverter 0 scheduled discharge enable is False
2026-08-17 17:45:02.223091: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:45:02.223127: Inverter 0 discharge windows currently []
2026-08-17 17:45:02.223150: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:45:02.223182: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:45:02.223209: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:45:02.277888: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:45:02.278007: Plan was last updated on 2026-08-17 17:40:00+01:00 and is now 5.0 minutes old
2026-08-17 17:45:02.278247: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:45:02.278291: Best export window [ ]
2026-08-17 17:45:02.279133: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:45:02.282421: Load divergence over 8.0 hours mean 490.86W, min 331.2W, max 1005.0W, std dev 164.84W, divergence 16.79%
2026-08-17 17:45:02.301179: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:45:02.301274: LoadML is_calculating False
2026-08-17 17:45:02.301350: Creating pool of 12 processes to match your CPU count
2026-08-17 17:45:02.415686: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 608.56p, metric_keep 278.74kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.55kWh, PV 0.0kWh
2026-08-17 17:45:02.524897: Battery has 9.17 hours left - now at 8.48kWh
2026-08-17 17:45:02.569323: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 630.58p, metric_keep 280.05kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.51kWh, PV 0.0kWh
2026-08-17 17:45:02.645039: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 330.38p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.51kWh, PV 0.0kWh
2026-08-17 17:45:02.719514: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 328.13p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.55kWh, PV 0.0kWh
2026-08-17 17:45:02.720016: Saving plan best values to HA entities
2026-08-17 17:45:02.877498: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:45:02.883655: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:45:02.889154: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.97kWh, house 0.0kWh, export 0.0kWh, metric 328.13p, metric10 330.38p
2026-08-17 17:45:02.960379: Marginal costs baseline metric (no standing charge): 281.4988
2026-08-17 17:45:03.235039: Marginal energy costs matrix computed: min=7.98 max=30.64
2026-08-17 17:45:03.316630: Rate array import [{'start': 1065, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1065, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:45:03.317475: - Your estimated bill for today is £1.78 and tomorrow is £1.71
2026-08-17 17:45:03.317529: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:45:03.317553: - The battery is currently at 53% and is in eco mode for the next 5 and three quarters hours.
2026-08-17 17:45:03.317572: - For the next 48 hours there will be no solar generation.
2026-08-17 17:45:03.317590: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:45:03.317607: - Your next charge slot will be in 5 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 17:45:03.317624:
2026-08-17 17:45:03.381363: Plan calculation took 1.10 seconds
2026-08-17 17:45:03.387691: No high rate period found
2026-08-17 17:45:03.440485: Import threshold used for optimisation was 8.0p
2026-08-17 17:45:03.508150: Low import rate windows [0: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 1: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 2: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 3: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 4: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 5: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 6: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 7: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 8: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 9: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 10: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 11: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 12: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 13: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 14: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 15: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 16: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 17: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 18: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 19: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 20: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 21: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 22: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 23: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 24: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 25: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 26: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 27: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 28: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 29: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 30: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 31: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 32: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 33: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 34: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 35: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 36: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 37: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 38: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 39: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 40: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 41: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 42: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 43: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 44: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 45: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 46: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 47: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 48: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 49: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 50: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 51: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 52: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 53: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 54: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 55: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 56: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 57: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 58: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 59: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 60: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 61: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 62: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 63: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 64: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 65: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 66: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 67: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 68: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 69: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 70: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 71: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 72: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 73: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 74: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 75: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 76: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 77: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 78: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 79: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 80: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 81: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 82: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 83: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 84: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 85: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 86: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 87: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 88: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 89: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 90: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 91: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 92: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 93: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 94: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75]
2026-08-17 17:45:03.515202: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:45:03.515341: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:45:03.515449: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:45:03.515693: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:45:03.515786: No export window planned
2026-08-17 17:45:03.515972: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:45:03.516021: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:45:03.516182: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:45:03.516366: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:45:03.516449: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:45:03.516513: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:45:03.516607: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516668: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516693: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516748: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516774: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516901: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516926: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.516975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.517004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:45:03.517024: Inverter 0 count register writes 0
2026-08-17 17:45:03.536055: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 17:45:03.541581: Total inverter register writes now 861
2026-08-17 17:45:03.585418: Info: Completed run status Demand
2026-08-17 17:45:03.601911: Info: record_status Demand
2026-08-17 17:45:03.610076: Saved current settings to /config/predbat_config.json
2026-08-17 17:45:03.610411: Compare, best tariff: current metric 104.68p
2026-08-17 17:45:33.721872: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:45:33.722153: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:45:33.722220: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:45:33.722377: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:45:33.722419: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:45:33.722442: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:45:33.722464: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:47:33.932850: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:47:33.933126: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:47:33.933170: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:47:33.933321: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:47:33.933369: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:47:33.933424: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:47:33.933463: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:49:34.146343: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:49:34.146563: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:49:34.146604: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:49:34.146755: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:49:34.146793: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:49:34.146814: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:49:34.146832: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:50:00.254002: --------------- PredBat - update at 2026-08-17 17:50:00+01:00 with clock skew 0 minutes, minutes now 1070
2026-08-17 17:50:00.254803: Saved current settings to /config/predbat_config.json
2026-08-17 17:50:00.254983: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 17:50:00.255047: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:50:00.267527: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:50:00.267655: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:50:00.267810: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:50:00.268344: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:50:00.268465: Predbat mode is set to Control charge & discharge
2026-08-17 17:50:00.451706: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:50:00.451834: Using load_power data to fill gaps in load_today data
2026-08-17 17:50:01.292997: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:50:01.293599: Zero load period starting at 2026-08-17T10:54:00+0100 (416 minutes) for 189 minutes with base value 213.625
2026-08-17 17:50:01.294172: Processing 721 30-minute periods for power integration
2026-08-17 17:50:01.469988: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:50:01.470117: Car charging hold False, threshold 6.0kWh
2026-08-17 17:50:01.470152: Current data so far today: load 9.3kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:50:01.483709: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:50:01.483825: Cars: SoC: [48.638000000000005]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:50:01.484533: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:50:01.484599: Standing charge is set to 46.63p
2026-08-17 17:50:01.564396: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.564606: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.564759: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.564926: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.565098: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.565261: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.565406: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.565542: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.565676: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:50:01.566526: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:50:01.566609: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:50:01.571176: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:50:01.571499: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:50:01.612039: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:50:01.612142: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:50:01.613303: High export rate found rates in range 99p to -99p
2026-08-17 17:50:01.697368: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:50:01.697491: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:50:01.707706: Battery level now 8.48kWh, -1hr ago 8.85kWh, at midnight 10.49kWh, battery value change in the last hour -2.53p, change today -13.8p, rate_forward 6.87p
2026-08-17 17:50:01.708078: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:50:01.758242: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 17:50:01.758386: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:50:01.833743: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:50:01.860618: Today's load divergence 96.86%, in-day adjustment 89.65%, damping 0.95x, yesterday 68.37% today 97.01% blend 25.69%
2026-08-17 17:50:01.860712: Today's predicted so far 11.01kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.01kWh forecast extra.
2026-08-17 17:50:01.860757: Today's actual load so far 10.53kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 17:50:01.892722: Inverter 0: Type SK Sunsynk
2026-08-17 17:50:01.892817: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:50:01.893073: Reserve min: 7%, battery_min: 7%
2026-08-17 17:50:01.893194: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:50:01.893518: Inverter 0 SoC: 8.42kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 379W, current battery voltage 51.2V, grid power -55W, load power 440W, PV Power 0W
2026-08-17 17:50:01.893728: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:50:01.893857: Inverter 0 scheduled charge enable is False
2026-08-17 17:50:01.893907: Inverter 0 charge windows currently []
2026-08-17 17:50:01.894078: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:50:01.894242: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:50:01.894303: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:50:01.894346: Inverter 0 scheduled discharge enable is False
2026-08-17 17:50:01.894484: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:50:01.894522: Inverter 0 discharge windows currently []
2026-08-17 17:50:01.894545: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:50:01.894571: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:50:01.894589: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:50:01.949460: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:50:01.949560: Plan was last updated on 2026-08-17 17:40:00+01:00 and is now 10.0 minutes old
2026-08-17 17:50:01.949771: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:50:01.949812: Best export window [ ]
2026-08-17 17:50:01.950606: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:50:01.953749: Load divergence over 8.0 hours mean 490.87W, min 361.2W, max 977.4W, std dev 155.15W, divergence 15.8%
2026-08-17 17:50:01.970795: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:50:01.971044: LoadML is_calculating False
2026-08-17 17:50:01.971148: Creating pool of 12 processes to match your CPU count
2026-08-17 17:50:02.104069: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.86p, metric_keep 278.92kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.47kWh, PV 0.0kWh
2026-08-17 17:50:02.264477: Battery has 9.08 hours left - now at 8.42kWh
2026-08-17 17:50:02.309360: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.91p, metric_keep 280.23kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.43kWh, PV 0.0kWh
2026-08-17 17:50:02.383262: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 333.75p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.43kWh, PV 0.0kWh
2026-08-17 17:50:02.451789: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 332.06p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.47kWh, PV 0.0kWh
2026-08-17 17:50:02.451867: Saving plan best values to HA entities
2026-08-17 17:50:02.596312: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:50:02.601721: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:50:02.607063: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.47kWh, house 0.0kWh, export 0.0kWh, metric 332.06p, metric10 333.75p
2026-08-17 17:50:02.697075: Marginal costs baseline metric (no standing charge): 285.431
2026-08-17 17:50:02.939406: Marginal energy costs matrix computed: min=7.99 max=30.6
2026-08-17 17:50:03.003098: Rate array import [{'start': 1070, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1070, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:50:03.003645: - Your estimated bill for today is £1.78 and tomorrow is £1.71
2026-08-17 17:50:03.003681: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:50:03.003700: - The battery is currently at 53% and is in eco mode for the next 5 and three quarters hours.
2026-08-17 17:50:03.003715: - For the next 48 hours there will be no solar generation.
2026-08-17 17:50:03.003750: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:50:03.003766: - Your next charge slot will be in 5 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 17:50:03.003780:
2026-08-17 17:50:03.051348: Plan calculation took 1.10 seconds
2026-08-17 17:50:03.054971: No high rate period found
2026-08-17 17:50:03.096817: Import threshold used for optimisation was 8.0p
2026-08-17 17:50:03.142776: Low import rate windows [0: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 1: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 2: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 3: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 4: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 5: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 6: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 7: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 8: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 9: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 10: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 11: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 12: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 13: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 14: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 15: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 16: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 17: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 18: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 19: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 20: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 21: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 22: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 23: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 24: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 25: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 26: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 27: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 28: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 29: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 30: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 31: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 32: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 33: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 34: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 35: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 36: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 37: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 38: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 39: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 40: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 41: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 42: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 43: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 44: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 45: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 46: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 47: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 48: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 49: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 50: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 51: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 52: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 53: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 54: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 55: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 56: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 57: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 58: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 59: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 60: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 61: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 62: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 63: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 64: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 65: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 66: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 67: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 68: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 69: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 70: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 71: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 72: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 73: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 74: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 75: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 76: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 77: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 78: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 79: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 80: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 81: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 82: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 83: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 84: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 85: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 86: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 87: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 88: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 89: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 90: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 91: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 92: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 93: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 94: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75]
2026-08-17 17:50:03.149574: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:50:03.149712: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:50:03.149815: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:50:03.150090: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:50:03.150189: No export window planned
2026-08-17 17:50:03.150315: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:50:03.150353: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:50:03.150532: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:50:03.150800: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:50:03.150881: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:50:03.151003: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:50:03.151149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151223: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151280: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151344: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151467: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151710: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:03.151859: Inverter 0 count register writes 0
2026-08-17 17:50:03.171358: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 17:50:03.171519: Recompute is saving previous plan...
2026-08-17 17:50:03.175116: Best charge window [ 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0% ]
2026-08-17 17:50:03.175243: Best export window [ ]
2026-08-17 17:50:03.176175: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:50:03.179821: Load divergence over 8.0 hours mean 490.87W, min 361.2W, max 977.4W, std dev 155.15W, divergence 15.8%
2026-08-17 17:50:03.199713: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:50:03.199848: LoadML is_calculating False
2026-08-17 17:50:03.199989: Creating pool of 12 processes to match your CPU count
2026-08-17 17:50:03.282995: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 17:50:03.284892: Optimise levels pass started at 2026-08-17 17:50:03
2026-08-17 17:50:03.284989: Optimise all windows, total charge 94 export 1
2026-08-17 17:50:03.653507: >> Region optimisation pass width 960 gives best_metric 379.34p, best_cost 421.27p, best_cycle 47.31kWh, best_import 33.45kWh
2026-08-17 17:50:03.850344: >> Region optimisation pass width 480 gives best_metric 379.34p, best_cost 421.27p, best_cycle 47.31kWh, best_import 33.45kWh
2026-08-17 17:50:04.154260: >> Region optimisation pass width 240 gives best_metric 379.34p, best_cost 421.27p, best_cycle 47.31kWh, best_import 33.45kWh
2026-08-17 17:50:05.377848: >> Region optimisation pass width 120 gives best_metric 378.56p, best_cost 412.62p, best_cycle 48.44kWh, best_import 32.36kWh
2026-08-17 17:50:05.378509: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 58
2026-08-17 17:50:05.378717: Optimise levels pass ended at 2026-08-17 17:50:05, duration 2.1 seconds tried 215 combinations
2026-08-17 17:50:05.378854: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 378.56p, best_keep 0kWh, best_cycle 48.44kWh, best_carbon 0kg, best_import 32.36kWh
2026-08-17 17:50:05.404085: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 17:50:09.519222: Tweak plan optimisation started metric 265.62p, cost 278.66p
2026-08-17 17:50:09.798433: Tweak optimisation finished metric 265.62p, cost 278.66p, metric_keep 0kWh, cycle 28.35kWh, carbon 0kg, import 15.62kWh, changed 8 window(s)
2026-08-17 17:50:09.818418: Swap charge optimisation started metric 265.62p, cost 278.66p, min_improvement_swap 0.1p
2026-08-17 17:50:14.089593: Swap charge optimisation finished metric 265.62p, cost 278.66p
2026-08-17 17:50:14.203416: Raw charge windows [ 17-08 17:30:00 - 17-08 18:00:00 @ 33.75p 0%, 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:50:14.204028: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:50:14.204254: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:50:14.204425: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 17:50:14.244193: Previous plan best metric is 265.06 (cost 277.14) and new plan best metric is 265.62 (cost 278.66)
2026-08-17 17:50:14.244416: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 17:50:14.244536: Plan valid is now true after recompute was False
2026-08-17 17:50:14.268485: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.24p, metric_keep 278.33kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.26kWh, PV 0.0kWh
2026-08-17 17:50:14.369518: Battery has 9.08 hours left - now at 8.42kWh
2026-08-17 17:50:14.420975: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 629.21p, metric_keep 279.65kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.22kWh, PV 0.0kWh
2026-08-17 17:50:14.508445: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 326.49p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.22kWh, PV 0.0kWh
2026-08-17 17:50:14.577441: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 323.77p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.26kWh, PV 0.0kWh
2026-08-17 17:50:14.577510: Saving plan best values to HA entities
2026-08-17 17:50:14.713793: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:50:14.718385: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:50:14.722851: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.43kWh, house 0.0kWh, export 0.0kWh, metric 323.77p, metric10 326.49p
2026-08-17 17:50:14.787285: Marginal costs baseline metric (no standing charge): 277.1387
2026-08-17 17:50:15.009740: Marginal energy costs matrix computed: min=7.99 max=30.6
2026-08-17 17:50:15.073804: Rate array import [{'start': 1070, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1070, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:50:15.074437: - Your estimated bill for today is £1.78 and tomorrow is £1.71
2026-08-17 17:50:15.074478: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:50:15.074504: - The battery is currently at 53% and is in eco mode for the next 5 and three quarters hours.
2026-08-17 17:50:15.074533: - For the next 48 hours there will be no solar generation.
2026-08-17 17:50:15.074555: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:50:15.074573: - Your next charge slot will be in 5 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 17:50:15.074587:
2026-08-17 17:50:15.122890: Plan calculation took 11.95 seconds
2026-08-17 17:50:15.123228: Inverter 0: Type SK Sunsynk
2026-08-17 17:50:15.123291: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:50:15.123494: Reserve min: 7%, battery_min: 7%
2026-08-17 17:50:15.123569: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:50:15.123884: Inverter 0 SoC: 8.42kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 379W, current battery voltage 51.2V, grid power -55W, load power 440W, PV Power 0W
2026-08-17 17:50:15.124209: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:50:15.124314: Inverter 0 scheduled charge enable is False
2026-08-17 17:50:15.124344: Inverter 0 charge windows currently []
2026-08-17 17:50:15.124373: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:50:15.124480: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:50:15.124518: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:50:15.124557: Inverter 0 scheduled discharge enable is False
2026-08-17 17:50:15.124681: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:50:15.124717: Inverter 0 discharge windows currently []
2026-08-17 17:50:15.124739: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:50:15.124759: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:50:15.124799: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:50:15.175009: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:50:15.175144: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:50:15.175222: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:50:15.175459: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:50:15.175549: No export window planned
2026-08-17 17:50:15.175687: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:50:15.175723: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:50:15.175888: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:50:15.176099: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:50:15.176193: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:50:15.176262: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:50:15.176355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176403: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176443: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176482: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176507: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176548: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176579: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176832: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:50:15.176968: Inverter 0 count register writes 0
2026-08-17 17:50:15.194395: Total inverter register writes now 861
2026-08-17 17:50:15.224773: Info: Completed run status Demand
2026-08-17 17:50:15.231140: Info: record_status Demand
2026-08-17 17:50:15.238129: Saved current settings to /config/predbat_config.json
2026-08-17 17:50:15.238434: Compare, best tariff: current metric 104.68p
2026-08-17 17:50:49.345004: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:50:49.345311: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:50:49.345675: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:50:49.345930: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:50:49.345974: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:50:49.345997: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:50:49.346015: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:52:49.566713: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:52:49.566969: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:52:49.567013: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:52:49.567148: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:52:49.567187: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:52:49.567208: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:52:49.567226: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:55:00.342869: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 17:55:00.496484: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 17:55:00.805979: --------------- PredBat - update at 2026-08-17 17:55:00+01:00 with clock skew 0 minutes, minutes now 1075
2026-08-17 17:55:00.806901: Saved current settings to /config/predbat_config.json
2026-08-17 17:55:00.807057: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 17:55:00.807119: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 17:55:00.827088: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 17:55:00.827208: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 17:55:00.827364: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 17:55:00.827946: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 17:55:00.828071: Predbat mode is set to Control charge & discharge
2026-08-17 17:55:01.021062: Found 21602 load_today datapoints going back 28 days
2026-08-17 17:55:01.021304: Using load_power data to fill gaps in load_today data
2026-08-17 17:55:01.903450: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 17:55:01.903653: Zero load period starting at 2026-08-17T10:54:00+0100 (421 minutes) for 189 minutes with base value 213.6
2026-08-17 17:55:01.904314: Processing 721 30-minute periods for power integration
2026-08-17 17:55:02.109885: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 17:55:02.110007: Car charging hold False, threshold 6.0kWh
2026-08-17 17:55:02.110051: Current data so far today: load 9.3kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 17:55:02.126430: Car 0 using Octopus Intelligent is unplugged
2026-08-17 17:55:02.126523: Cars: SoC: [48.052]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 17:55:02.127262: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 17:55:02.127333: Standing charge is set to 46.63p
2026-08-17 17:55:02.218605: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.218942: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.219207: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.219463: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.219708: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.220048: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.220323: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.220609: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.220912: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 17:55:02.222085: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 17:55:02.222202: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 17:55:02.227799: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 17:55:02.228215: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 17:55:02.271932: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 17:55:02.272068: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 17:55:02.273462: High export rate found rates in range 99p to -99p
2026-08-17 17:55:02.378667: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 17:55:02.378809: Car 0 on Octopus Intelligent, no active plan
2026-08-17 17:55:02.390491: Battery level now 8.42kWh, -1hr ago 8.8kWh, at midnight 10.49kWh, battery value change in the last hour -2.58p, change today -14.19p, rate_forward 6.87p
2026-08-17 17:55:02.390891: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 17:55:02.443961: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 17:55:02.444103: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 17:55:02.537720: Using weighted-bucket historical load forecast over 14 days
2026-08-17 17:55:02.566995: Today's load divergence 96.71%, in-day adjustment 89.65%, damping 0.95x, yesterday 68.37% today 96.88% blend 25.35%
2026-08-17 17:55:02.567086: Today's predicted so far 11.04kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 11.04kWh forecast extra.
2026-08-17 17:55:02.567118: Today's actual load so far 10.54kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 17:55:02.596864: Inverter 0: Type SK Sunsynk
2026-08-17 17:55:02.596945: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 17:55:02.597115: Reserve min: 7%, battery_min: 7%
2026-08-17 17:55:02.597184: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 17:55:02.597454: Inverter 0 SoC: 8.42kW 53%, current charge rate 5000W, current discharge rate 5250W, current battery power 381W, current battery voltage 51.2V, grid power -54W, load power 442W, PV Power 0W
2026-08-17 17:55:02.597606: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:55:02.597693: Inverter 0 scheduled charge enable is False
2026-08-17 17:55:02.597721: Inverter 0 charge windows currently []
2026-08-17 17:55:02.597747: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 17:55:02.597902: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:55:02.597938: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:55:02.597975: Inverter 0 scheduled discharge enable is False
2026-08-17 17:55:02.598098: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:55:02.598135: Inverter 0 discharge windows currently []
2026-08-17 17:55:02.598158: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:55:02.598180: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:55:02.598198: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:55:02.660331: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 17:55:02.660424: Plan was last updated on 2026-08-17 17:50:00+01:00 and is now 5.0 minutes old
2026-08-17 17:55:02.660627: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 17:55:02.660670: Best export window [ ]
2026-08-17 17:55:02.661597: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 17:55:02.664740: Load divergence over 8.0 hours mean 490.75W, min 344.4W, max 1032.6W, std dev 166.12W, divergence 16.93%
2026-08-17 17:55:02.683583: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 17:55:02.683699: LoadML is_calculating False
2026-08-17 17:55:02.683774: Creating pool of 12 processes to match your CPU count
2026-08-17 17:55:02.799281: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.88p, metric_keep 278.38kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.32kWh, PV 0.0kWh
2026-08-17 17:55:02.914851: Battery has 9.08 hours left - now at 8.42kWh
2026-08-17 17:55:02.960500: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 629.92p, metric_keep 279.72kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.28kWh, PV 0.0kWh
2026-08-17 17:55:03.040147: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 329.67p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.28kWh, PV 0.0kWh
2026-08-17 17:55:03.135270: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 327.55p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.32kWh, PV 0.0kWh
2026-08-17 17:55:03.135361: Saving plan best values to HA entities
2026-08-17 17:55:03.371231: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 17:55:03.376545: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 17:55:03.382242: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.9kWh, house 0kWh, export 0.0kWh, metric 327.55p, metric10 329.67p
2026-08-17 17:55:03.454693: Marginal costs baseline metric (no standing charge): 280.917
2026-08-17 17:55:03.666125: Marginal energy costs matrix computed: min=7.99 max=30.62
2026-08-17 17:55:03.729470: Rate array import [{'start': 1075, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1075, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 17:55:03.730095: - Your estimated bill for today is £1.78 and tomorrow is £1.70
2026-08-17 17:55:03.730142: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 17:55:03.730176: - The battery is currently at 53% and is in eco mode for the next 5 and a half hours.
2026-08-17 17:55:03.730211: - For the next 48 hours there will be no solar generation.
2026-08-17 17:55:03.730246: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 17:55:03.730269: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-17 17:55:03.730284:
2026-08-17 17:55:03.776877: Plan calculation took 1.12 seconds
2026-08-17 17:55:03.780518: No high rate period found
2026-08-17 17:55:03.836995: Import threshold used for optimisation was 8.0p
2026-08-17 17:55:03.884032: Low import rate windows [0: 08-17 17:30:00 - 08-17 18:00:00 @ 33.75, 1: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 2: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 3: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 4: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 5: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 6: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 7: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 8: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 9: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 10: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 11: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 12: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 13: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 14: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 15: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 16: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 17: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 18: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 19: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 20: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 21: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 22: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 23: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 24: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 25: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 26: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 27: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 28: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 29: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 30: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 31: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 32: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 33: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 34: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 35: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 36: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 37: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 38: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 39: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 40: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 41: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 42: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 43: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 44: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 45: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 46: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 47: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 48: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 49: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 50: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 51: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 52: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 53: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 54: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 55: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 56: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 57: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 58: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 59: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 60: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 61: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 62: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 63: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 64: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 65: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 66: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 67: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 68: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 69: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 70: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 71: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 72: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 73: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 74: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 75: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 76: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 77: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 78: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 79: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 80: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 81: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 82: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 83: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 84: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 85: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 86: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 87: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 88: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 89: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 90: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 91: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 92: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 93: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 94: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75]
2026-08-17 17:55:03.889496: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 53%, target 100%
2026-08-17 17:55:03.889615: Inverter 0 disabled charge window while waiting for schedule (now 08-17 17:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 17:55:03.889739: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:55:03.889992: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:55:03.890092: No export window planned
2026-08-17 17:55:03.890222: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 17:55:03.890253: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 17:55:03.890363: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 17:55:03.890514: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 17:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 17:55:03.890571: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 17:55:03.890623: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 17:55:03.890708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890780: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890845: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890865: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890961: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.890986: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.891006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.891032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.891051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 17:55:03.891067: Inverter 0 count register writes 0
2026-08-17 17:55:03.904052: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 17:55:03.909199: Total inverter register writes now 861
2026-08-17 17:55:03.942062: Info: Completed run status Demand
2026-08-17 17:55:03.947613: Info: record_status Demand
2026-08-17 17:55:03.954650: Saved current settings to /config/predbat_config.json
2026-08-17 17:55:03.954920: Compare, best tariff: current metric 104.68p
2026-08-17 17:55:34.046180: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:55:34.046420: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:55:34.046469: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:55:34.046632: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:55:34.046675: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:55:34.046698: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:55:34.046716: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:55:50.938305: Info: HAHistory: Pruning history data started.
2026-08-17 17:55:50.940698: Info: HAHistory: Pruning history data completed.
2026-08-17 17:57:34.269375: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:57:34.269677: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:57:34.269759: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:57:34.269950: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:57:34.269995: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:57:34.270018: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:57:34.270061: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 17:59:34.495107: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 17:59:34.495348: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 17:59:34.495383: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 17:59:34.495530: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 17:59:34.495568: Note: Inverter does not support discharge freeze - disabled
2026-08-17 17:59:34.495590: Note: Inverter does not support charge freeze - disabled
2026-08-17 17:59:34.495607: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:00:00.600922: --------------- PredBat - update at 2026-08-17 18:00:00+01:00 with clock skew 0 minutes, minutes now 1080
2026-08-17 18:00:00.601767: Saved current settings to /config/predbat_config.json
2026-08-17 18:00:00.601916: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 18:00:00.601958: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:00:00.615243: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:00:00.615368: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:00:00.615553: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:00:00.616137: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:00:00.616261: Predbat mode is set to Control charge & discharge
2026-08-17 18:00:00.818902: Found 21602 load_today datapoints going back 27 days
2026-08-17 18:00:00.819061: Using load_power data to fill gaps in load_today data
2026-08-17 18:00:01.787858: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:00:01.788272: Zero load period starting at 2026-08-17T10:54:00+0100 (426 minutes) for 189 minutes with base value 213.575
2026-08-17 18:00:01.788909: Processing 721 30-minute periods for power integration
2026-08-17 18:00:02.021138: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:00:02.022173: Car charging hold False, threshold 6.0kWh
2026-08-17 18:00:02.022262: Current data so far today: load 9.42kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:00:02.041022: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:00:02.041120: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:00:02.041794: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:00:02.041865: Standing charge is set to 46.63p
2026-08-17 18:00:02.181823: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.182246: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.182629: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.182940: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.183293: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.183779: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.185167: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.188705: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.188992: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:00:02.190844: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:00:02.191103: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:00:02.199005: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:00:02.201582: Import rates: min 8.0p, max 46.38p, average 27.58p
2026-08-17 18:00:02.269943: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:00:02.270070: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:00:02.271733: High export rate found rates in range 99p to -99p
2026-08-17 18:00:02.376752: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:00:02.376915: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:00:02.391081: Battery level now 8.42kWh, -1hr ago 8.8kWh, at midnight 10.49kWh, battery value change in the last hour -2.58p, change today -14.19p, rate_forward 6.87p
2026-08-17 18:00:02.391380: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:00:02.453512: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:00:02.453740: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:00:02.556739: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:00:02.579130: Today's load divergence 96.83%, in-day adjustment 89.83%, damping 0.95x, yesterday 68.37% today 96.98% blend 25.0%
2026-08-17 18:00:02.579204: Today's predicted so far 11.16kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 11.16kWh forecast extra.
2026-08-17 18:00:02.579230: Today's actual load so far 10.67kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 18:00:02.615353: Inverter 0: Type SK Sunsynk
2026-08-17 18:00:02.615435: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:00:02.615610: Reserve min: 7%, battery_min: 7%
2026-08-17 18:00:02.615701: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:00:02.616044: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 379W, current battery voltage 51.2V, grid power -54W, load power 439W, PV Power 0W
2026-08-17 18:00:02.616256: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:00:02.616369: Inverter 0 scheduled charge enable is False
2026-08-17 18:00:02.616418: Inverter 0 charge windows currently []
2026-08-17 18:00:02.616456: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:00:02.616614: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:00:02.616679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:00:02.616771: Inverter 0 scheduled discharge enable is False
2026-08-17 18:00:02.616952: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:00:02.616997: Inverter 0 discharge windows currently []
2026-08-17 18:00:02.617037: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:00:02.617072: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:00:02.617113: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:00:02.696821: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:00:02.696967: Plan was last updated on 2026-08-17 17:50:00+01:00 and is now 10.0 minutes old
2026-08-17 18:00:02.697207: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:00:02.697254: Best export window [ ]
2026-08-17 18:00:02.698096: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:00:02.701373: Load divergence over 8.0 hours mean 492.11W, min 353.4W, max 1063.8W, std dev 152.95W, divergence 15.54%
2026-08-17 18:00:02.722181: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:00:02.722301: LoadML is_calculating False
2026-08-17 18:00:02.722370: Creating pool of 12 processes to match your CPU count
2026-08-17 18:00:02.848136: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.96p, metric_keep 279.04kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.51kWh, PV 0.0kWh
2026-08-17 18:00:02.995224: Battery has 8.92 hours left - now at 8.32kWh
2026-08-17 18:00:03.048067: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.99p, metric_keep 280.31kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.47kWh, PV 0.0kWh
2026-08-17 18:00:03.126359: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 333.86p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.47kWh, PV 0.0kWh
2026-08-17 18:00:03.216896: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 332.23p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.51kWh, PV 0.0kWh
2026-08-17 18:00:03.216984: Saving plan best values to HA entities
2026-08-17 18:00:03.435410: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 18:00:03.444629: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:00:03.454225: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.49kWh, house 0.0kWh, export 0.0kWh, metric 332.23p, metric10 333.86p
2026-08-17 18:00:03.557289: Marginal costs baseline metric (no standing charge): 285.5924
2026-08-17 18:00:03.946056: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 18:00:04.035019: Rate array import [{'start': 1080, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1080, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:00:04.036023: - Your estimated bill for today is £1.77 and tomorrow is £1.71
2026-08-17 18:00:04.036086: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:00:04.036111: - The battery is currently at 52% and is in eco mode for the next 5 and a half hours.
2026-08-17 18:00:04.036136: - For the next 48 hours there will be no solar generation.
2026-08-17 18:00:04.036170: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:00:04.036230: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-17 18:00:04.036264:
2026-08-17 18:00:04.091146: Plan calculation took 1.39 seconds
2026-08-17 18:00:04.094977: No high rate period found
2026-08-17 18:00:04.149071: Import threshold used for optimisation was 8.0p
2026-08-17 18:00:04.203761: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75]
2026-08-17 18:00:04.209978: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 52%, target 100%
2026-08-17 18:00:04.210115: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:00:04.210221: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:00:04.210469: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:00:04.210567: No export window planned
2026-08-17 18:00:04.210714: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:00:04.210751: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:00:04.210894: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:00:04.211115: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:00:04.211184: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:00:04.211249: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:00:04.211340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211379: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211473: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211498: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211532: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211633: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211685: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211767: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:04.211840: Inverter 0 count register writes 0
2026-08-17 18:00:04.227700: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 18:00:04.227972: Recompute is saving previous plan...
2026-08-17 18:00:04.231349: Best charge window [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0% ]
2026-08-17 18:00:04.231448: Best export window [ ]
2026-08-17 18:00:04.232385: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:00:04.235557: Load divergence over 8.0 hours mean 492.11W, min 353.4W, max 1063.8W, std dev 152.95W, divergence 15.54%
2026-08-17 18:00:04.250545: Calculating data from yesterday for savings calculation
2026-08-17 18:00:04.261286: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 18:00:04.304777: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 18:00:04.320248: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 18:00:04.340570: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 18:00:04.378682: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 18:00:04.479213: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 18:00:04.479359: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 18:00:04.497757: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:00:04.497882: LoadML is_calculating False
2026-08-17 18:00:04.497955: Creating pool of 12 processes to match your CPU count
2026-08-17 18:00:04.593151: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 18:00:04.595420: Optimise levels pass started at 2026-08-17 18:00:04
2026-08-17 18:00:04.595490: Optimise all windows, total charge 94 export 1
2026-08-17 18:00:05.306319: >> Region optimisation pass width 960 gives best_metric 380.23p, best_cost 421.54p, best_cycle 47.34kWh, best_import 33.48kWh
2026-08-17 18:00:05.792185: >> Region optimisation pass width 480 gives best_metric 375.69p, best_cost 387.67p, best_cycle 47.96kWh, best_import 29.25kWh
2026-08-17 18:00:06.094637: >> Region optimisation pass width 240 gives best_metric 375.69p, best_cost 387.67p, best_cycle 47.96kWh, best_import 29.25kWh
2026-08-17 18:00:06.727075: >> Region optimisation pass width 120 gives best_metric 375.69p, best_cost 387.67p, best_cycle 47.96kWh, best_import 29.25kWh
2026-08-17 18:00:06.728948: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 57
2026-08-17 18:00:06.730470: Optimise levels pass ended at 2026-08-17 18:00:06, duration 2.1 seconds tried 71 combinations
2026-08-17 18:00:06.730628: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 375.69p, best_keep 0kWh, best_cycle 47.96kWh, best_carbon 0kg, best_import 29.25kWh
2026-08-17 18:00:06.755789: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 18:00:12.027894: Tweak plan optimisation started metric 265.85p, cost 278.7p
2026-08-17 18:00:12.381598: Tweak optimisation finished metric 265.85p, cost 278.7p, metric_keep 0kWh, cycle 28.31kWh, carbon 0kg, import 15.62kWh, changed 8 window(s)
2026-08-17 18:00:12.403948: Swap charge optimisation started metric 265.85p, cost 278.7p, min_improvement_swap 0.1p
2026-08-17 18:00:17.304946: Swap charge optimisation finished metric 265.85p, cost 278.7p
2026-08-17 18:00:17.402968: Raw charge windows [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:00:17.403878: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:00:17.404289: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:00:17.404784: Filtered charge windows [ 17-08 23:30:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 69%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:00:17.450349: Previous plan best metric is 265.31 (cost 277.41) and new plan best metric is 265.85 (cost 278.7)
2026-08-17 18:00:17.451564: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 18:00:17.452064: Plan valid is now true after recompute was False
2026-08-17 18:00:17.496146: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.44p, metric_keep 278.45kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.32kWh, PV 0.0kWh
2026-08-17 18:00:17.620974: Battery has 8.92 hours left - now at 8.32kWh
2026-08-17 18:00:17.664359: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 629.4p, metric_keep 279.73kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.27kWh, PV 0.0kWh
2026-08-17 18:00:17.731289: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 326.72p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.27kWh, PV 0.0kWh
2026-08-17 18:00:17.797929: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 324.04p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.32kWh, PV 0.0kWh
2026-08-17 18:00:17.798009: Saving plan best values to HA entities
2026-08-17 18:00:17.958729: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 18:00:17.964480: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:00:17.969565: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.46kWh, house 0.0kWh, export 0.0kWh, metric 324.04p, metric10 326.72p
2026-08-17 18:00:18.043222: Marginal costs baseline metric (no standing charge): 277.4097
2026-08-17 18:00:18.324365: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 18:00:18.388824: Rate array import [{'start': 1080, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1080, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:00:18.389381: - Your estimated bill for today is £1.77 and tomorrow is £1.71
2026-08-17 18:00:18.389417: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:00:18.389435: - The battery is currently at 52% and is in eco mode for the next 5 and a half hours.
2026-08-17 18:00:18.389450: - For the next 48 hours there will be no solar generation.
2026-08-17 18:00:18.389464: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:00:18.389478: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-17 18:00:18.389492:
2026-08-17 18:00:18.443699: Plan calculation took 14.22 seconds
2026-08-17 18:00:18.444035: Inverter 0: Type SK Sunsynk
2026-08-17 18:00:18.444083: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:00:18.444291: Reserve min: 7%, battery_min: 7%
2026-08-17 18:00:18.444367: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:00:18.444682: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 377W, current battery voltage 51.2V, grid power -55W, load power 439W, PV Power 0W
2026-08-17 18:00:18.444907: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:00:18.445003: Inverter 0 scheduled charge enable is False
2026-08-17 18:00:18.445032: Inverter 0 charge windows currently []
2026-08-17 18:00:18.445061: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:00:18.445173: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:00:18.445212: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:00:18.445251: Inverter 0 scheduled discharge enable is False
2026-08-17 18:00:18.445379: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:00:18.445417: Inverter 0 discharge windows currently []
2026-08-17 18:00:18.445440: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:00:18.445458: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:00:18.445475: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:00:18.510315: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 52%, target 100%
2026-08-17 18:00:18.510457: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:00:18.510544: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:00:18.510831: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:00:18.510938: No export window planned
2026-08-17 18:00:18.511115: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:00:18.511180: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:00:18.511356: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:00:18.511525: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:00:18.511578: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:00:18.511666: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:00:18.511808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.511867: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.511952: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.511994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512037: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:00:18.512538: Inverter 0 count register writes 0
2026-08-17 18:00:18.534150: Total inverter register writes now 861
2026-08-17 18:00:18.568061: Info: Completed run status Demand
2026-08-17 18:00:18.573990: Info: record_status Demand
2026-08-17 18:00:18.580146: Saved current settings to /config/predbat_config.json
2026-08-17 18:00:18.580432: Compare, best tariff: current metric 104.68p
2026-08-17 18:00:48.685457: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:00:48.685701: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:00:48.685745: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:00:48.685875: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:00:48.685912: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:00:48.685933: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:00:48.685951: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:02:48.894843: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:02:48.895076: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:02:48.895138: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:02:48.895277: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:02:48.895328: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:02:48.895375: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:02:48.895404: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:04:49.123755: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:04:49.124031: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:04:49.124073: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:04:49.124211: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:04:49.124249: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:04:49.124271: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:04:49.124289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:05:00.212240: --------------- PredBat - update at 2026-08-17 18:05:00+01:00 with clock skew 0 minutes, minutes now 1085
2026-08-17 18:05:00.212991: Saved current settings to /config/predbat_config.json
2026-08-17 18:05:00.213133: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 18:05:00.213176: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:05:00.225927: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:05:00.226046: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:05:00.226269: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:05:00.226944: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:05:00.227086: Predbat mode is set to Control charge & discharge
2026-08-17 18:05:00.428516: Found 21602 load_today datapoints going back 27 days
2026-08-17 18:05:00.428671: Using load_power data to fill gaps in load_today data
2026-08-17 18:05:01.156136: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:05:01.156360: Zero load period starting at 2026-08-17T10:54:00+0100 (431 minutes) for 189 minutes with base value 213.55
2026-08-17 18:05:01.156848: Processing 721 30-minute periods for power integration
2026-08-17 18:05:01.328630: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:05:01.330318: Car charging hold False, threshold 6.0kWh
2026-08-17 18:05:01.330972: Current data so far today: load 9.45kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:05:01.345741: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:05:01.345833: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:05:01.346420: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:05:01.346480: Standing charge is set to 46.63p
2026-08-17 18:05:01.436208: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.436424: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.436632: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.436851: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.437003: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.437145: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.437288: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.437423: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.437557: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:05:01.438403: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:05:01.438486: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:05:01.443281: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:05:01.443642: Import rates: min 8.0p, max 46.38p, average 27.55p
2026-08-17 18:05:01.479713: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:05:01.479829: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:05:01.481033: High export rate found rates in range 99p to -99p
2026-08-17 18:05:01.566499: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:05:01.566627: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:05:01.576677: Battery level now 8.32kWh, -1hr ago 8.74kWh, at midnight 10.49kWh, battery value change in the last hour -2.91p, change today -14.9p, rate_forward 6.87p
2026-08-17 18:05:01.577094: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:05:01.626412: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:05:01.626538: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:05:01.707961: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:05:01.731541: Today's load divergence 96.5%, in-day adjustment 89.7%, damping 0.95x, yesterday 68.37% today 96.67% blend 24.65%
2026-08-17 18:05:01.731631: Today's predicted so far 11.25kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.25kWh forecast extra.
2026-08-17 18:05:01.731658: Today's actual load so far 10.72kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 18:05:01.762738: Inverter 0: Type SK Sunsynk
2026-08-17 18:05:01.762821: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:05:01.762994: Reserve min: 7%, battery_min: 7%
2026-08-17 18:05:01.763062: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:05:01.763303: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 481W, current battery voltage 51.2V, grid power -65W, load power 553W, PV Power 0W
2026-08-17 18:05:01.763452: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:05:01.763538: Inverter 0 scheduled charge enable is False
2026-08-17 18:05:01.763606: Inverter 0 charge windows currently []
2026-08-17 18:05:01.763643: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:05:01.763761: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:05:01.763796: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:05:01.763831: Inverter 0 scheduled discharge enable is False
2026-08-17 18:05:01.763987: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:05:01.764028: Inverter 0 discharge windows currently []
2026-08-17 18:05:01.764051: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:05:01.764069: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:05:01.764093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:05:01.825881: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:05:01.825979: Plan was last updated on 2026-08-17 18:00:00+01:00 and is now 5.0 minutes old
2026-08-17 18:05:01.826179: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:05:01.826218: Best export window [ ]
2026-08-17 18:05:01.827117: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:05:01.830278: Load divergence over 8.0 hours mean 493.55W, min 322.2W, max 1002.6W, std dev 155.04W, divergence 15.71%
2026-08-17 18:05:01.853303: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:05:01.853535: LoadML is_calculating False
2026-08-17 18:05:01.853635: Creating pool of 12 processes to match your CPU count
2026-08-17 18:05:02.018086: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.8p, metric_keep 278.55kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.4kWh, PV 0.0kWh
2026-08-17 18:05:02.174743: Battery has 8.83 hours left - now at 8.32kWh
2026-08-17 18:05:02.222072: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 629.75p, metric_keep 279.83kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.35kWh, PV 0.0kWh
2026-08-17 18:05:02.316628: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 329.95p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-17 18:05:02.396246: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 327.8p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.4kWh, PV 0.0kWh
2026-08-17 18:05:02.396329: Saving plan best values to HA entities
2026-08-17 18:05:02.572844: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:05:02.578562: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:05:02.584235: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.93kWh, house 0.0kWh, export 0.0kWh, metric 327.8p, metric10 329.95p
2026-08-17 18:05:02.658978: Marginal costs baseline metric (no standing charge): 281.1658
2026-08-17 18:05:02.939549: Marginal energy costs matrix computed: min=8.0 max=30.58
2026-08-17 18:05:03.016733: Rate array import [{'start': 1085, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1085, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:05:03.017393: - Your estimated bill for today is £1.77 and tomorrow is £1.70
2026-08-17 18:05:03.017435: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:05:03.017474: - The battery is currently at 52% and is in eco mode for the next 5 and a half hours.
2026-08-17 18:05:03.017494: - For the next 48 hours there will be no solar generation.
2026-08-17 18:05:03.017518: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:05:03.017536: - Your next charge slot will be in 5 and a half hours where import rates will be cheap (8.0p).
2026-08-17 18:05:03.017558:
2026-08-17 18:05:03.076997: Plan calculation took 1.25 seconds
2026-08-17 18:05:03.080725: No high rate period found
2026-08-17 18:05:03.131196: Import threshold used for optimisation was 8.0p
2026-08-17 18:05:03.186218: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75]
2026-08-17 18:05:03.194791: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 52%, target 100%
2026-08-17 18:05:03.194942: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:05:03.195041: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:05:03.195289: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:05:03.195379: No export window planned
2026-08-17 18:05:03.195499: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:05:03.195533: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:05:03.195690: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:05:03.195871: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:05:03.195980: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:05:03.196056: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:05:03.196144: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196184: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196212: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196237: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196267: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196292: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196656: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:05:03.196680: Inverter 0 count register writes 0
2026-08-17 18:05:03.234840: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 18:05:03.242026: Total inverter register writes now 861
2026-08-17 18:05:03.279122: Info: Completed run status Demand
2026-08-17 18:05:03.288389: Info: record_status Demand
2026-08-17 18:05:03.296069: Saved current settings to /config/predbat_config.json
2026-08-17 18:05:03.296361: Compare, best tariff: current metric 104.68p
2026-08-17 18:05:34.396810: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:05:34.397040: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:05:34.397112: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:05:34.397256: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:05:34.397320: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:05:34.397342: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:05:34.397364: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:07:28.391766: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 18:07:29.238992: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:07:29.239168: Zero load period starting at 2026-08-17T10:54:00+0100 (431 minutes) for 189 minutes with base value 394.6
2026-08-17 18:07:29.239629: Processing 1297 30-minute periods for power integration
2026-08-17 18:07:29.321806: ML Component: Car charging hold False, car energy reported load False
2026-08-17 18:07:29.406733: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:07:29.484590: ML Temperature data points: 47876
2026-08-17 18:07:29.699008: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 18:07:29.731658: ML Component: Data fetch completed, load data age 59.0 days, 17041 data points
2026-08-17 18:07:29.731786: ML Component: No training needed, model age is 1.28 hours
2026-08-17 18:07:29.731844: ML Component: Generating predictions load data age 59.0 days, 17041 data points
2026-08-17 18:07:29.877854: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0348 max_dow {0: 0.08182500006258488, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 18:07:30.459290: ML Component: Generated 576 predictions (total 25.69 kWh over 48h)
2026-08-17 18:07:30.506056: ML Component: Prediction cycle completed
2026-08-17 18:07:30.621906: ML Component: Saved 17041 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 18:07:34.620398: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:07:34.620631: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:07:34.620690: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:07:34.620848: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:07:34.620897: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:07:34.620919: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:07:34.620936: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:09:48.852303: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:09:48.852559: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:09:48.852622: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:09:48.852762: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:09:48.852800: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:09:48.852821: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:09:48.852839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:10:00.939374: --------------- PredBat - update at 2026-08-17 18:10:00+01:00 with clock skew 0 minutes, minutes now 1090
2026-08-17 18:10:00.940334: Saved current settings to /config/predbat_config.json
2026-08-17 18:10:00.940487: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 18:10:00.940535: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:10:00.952623: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:10:00.952745: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:10:00.952905: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:10:00.953454: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:10:00.953598: Predbat mode is set to Control charge & discharge
2026-08-17 18:10:01.145226: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:10:01.145353: Using load_power data to fill gaps in load_today data
2026-08-17 18:10:01.977809: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:10:01.977988: Zero load period starting at 2026-08-17T10:54:00+0100 (436 minutes) for 189 minutes with base value 213.525
2026-08-17 18:10:01.978535: Processing 721 30-minute periods for power integration
2026-08-17 18:10:02.170572: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:10:02.170690: Car charging hold False, threshold 6.0kWh
2026-08-17 18:10:02.170738: Current data so far today: load 9.55kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:10:02.187191: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:10:02.187290: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:10:02.188186: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:10:02.188267: Standing charge is set to 46.63p
2026-08-17 18:10:02.274890: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.275156: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.275342: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.275539: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.275739: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.275960: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.276184: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.276377: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.276559: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:10:02.277633: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:10:02.277735: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:10:02.283399: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:10:02.283705: Import rates: min 8.0p, max 46.38p, average 27.53p
2026-08-17 18:10:02.330046: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:10:02.330160: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:10:02.331488: High export rate found rates in range 99p to -99p
2026-08-17 18:10:02.432993: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:10:02.433106: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:10:02.444192: Battery level now 8.32kWh, -1hr ago 8.64kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -14.9p, rate_forward 6.87p
2026-08-17 18:10:02.444584: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:10:02.497160: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:10:02.497299: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:10:02.591695: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:10:02.619642: Today's load divergence 96.83%, in-day adjustment 90.03%, damping 0.95x, yesterday 68.37% today 96.99% blend 24.31%
2026-08-17 18:10:02.619724: Today's predicted so far 11.27kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 11.27kWh forecast extra.
2026-08-17 18:10:02.619756: Today's actual load so far 10.78kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 18:10:02.656042: Inverter 0: Type SK Sunsynk
2026-08-17 18:10:02.656125: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:10:02.656303: Reserve min: 7%, battery_min: 7%
2026-08-17 18:10:02.656378: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:10:02.656655: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 481W, current battery voltage 51.2V, grid power -52W, load power 540W, PV Power 0W
2026-08-17 18:10:02.656806: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:10:02.656890: Inverter 0 scheduled charge enable is False
2026-08-17 18:10:02.656924: Inverter 0 charge windows currently []
2026-08-17 18:10:02.656951: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:10:02.657056: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:10:02.657090: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:10:02.657126: Inverter 0 scheduled discharge enable is False
2026-08-17 18:10:02.657250: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:10:02.657286: Inverter 0 discharge windows currently []
2026-08-17 18:10:02.657309: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:10:02.657350: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:10:02.657370: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:10:02.714254: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:10:02.714348: Plan was last updated on 2026-08-17 18:00:00+01:00 and is now 10.0 minutes old
2026-08-17 18:10:02.714647: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:10:02.714697: Best export window [ ]
2026-08-17 18:10:02.715586: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:10:02.718798: Load divergence over 8.0 hours mean 493.57W, min 336.6W, max 1039.2W, std dev 156.73W, divergence 15.88%
2026-08-17 18:10:02.737579: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:10:02.737676: LoadML is_calculating False
2026-08-17 18:10:02.737741: Creating pool of 12 processes to match your CPU count
2026-08-17 18:10:02.853878: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.27p, metric_keep 278.67kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.56kWh, PV 0.0kWh
2026-08-17 18:10:02.967101: Battery has 8.83 hours left - now at 8.32kWh
2026-08-17 18:10:03.014082: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.26p, metric_keep 279.96kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.52kWh, PV 0.0kWh
2026-08-17 18:10:03.094623: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 333.17p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.52kWh, PV 0.0kWh
2026-08-17 18:10:03.171581: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 331.64p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.56kWh, PV 0.0kWh
2026-08-17 18:10:03.171668: Saving plan best values to HA entities
2026-08-17 18:10:03.323361: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:10:03.327741: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:10:03.332070: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.41kWh, house 0.0kWh, export 0.0kWh, metric 331.64p, metric10 333.17p
2026-08-17 18:10:03.394325: Marginal costs baseline metric (no standing charge): 285.0012
2026-08-17 18:10:03.617039: Marginal energy costs matrix computed: min=8.0 max=30.58
2026-08-17 18:10:03.692623: Rate array import [{'start': 1090, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1090, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:10:03.693301: - Your estimated bill for today is £1.77 and tomorrow is £1.70
2026-08-17 18:10:03.693344: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:10:03.693366: - The battery is currently at 52% and is in eco mode for the next 5 and a quarter hours.
2026-08-17 18:10:03.693384: - For the next 48 hours there will be no solar generation.
2026-08-17 18:10:03.693402: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:10:03.693431: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 18:10:03.693473:
2026-08-17 18:10:03.741136: Plan calculation took 1.03 seconds
2026-08-17 18:10:03.744931: No high rate period found
2026-08-17 18:10:03.790373: Import threshold used for optimisation was 8.0p
2026-08-17 18:10:03.841719: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75]
2026-08-17 18:10:03.847886: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 52%, target 100%
2026-08-17 18:10:03.848065: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:10:03.848147: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:10:03.848427: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:10:03.848554: No export window planned
2026-08-17 18:10:03.848722: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:10:03.848773: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:10:03.848964: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:10:03.849188: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:10:03.849272: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:10:03.849367: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:10:03.849499: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849572: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849618: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849713: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849799: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.849951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.850002: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.850045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.850093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.850130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.850152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:03.850169: Inverter 0 count register writes 0
2026-08-17 18:10:03.863967: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 18:10:03.864105: Recompute is saving previous plan...
2026-08-17 18:10:03.866683: Best charge window [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0% ]
2026-08-17 18:10:03.866755: Best export window [ ]
2026-08-17 18:10:03.867393: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:10:03.869972: Load divergence over 8.0 hours mean 493.57W, min 336.6W, max 1039.2W, std dev 156.73W, divergence 15.88%
2026-08-17 18:10:03.884647: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:10:03.884729: LoadML is_calculating False
2026-08-17 18:10:03.884782: Creating pool of 12 processes to match your CPU count
2026-08-17 18:10:03.965279: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 18:10:03.967029: Optimise levels pass started at 2026-08-17 18:10:03
2026-08-17 18:10:03.967089: Optimise all windows, total charge 94 export 1
2026-08-17 18:10:04.370878: >> Region optimisation pass width 960 gives best_metric 380.31p, best_cost 420.7p, best_cycle 47.27kWh, best_import 33.37kWh
2026-08-17 18:10:04.575163: >> Region optimisation pass width 480 gives best_metric 380.31p, best_cost 420.7p, best_cycle 47.27kWh, best_import 33.37kWh
2026-08-17 18:10:04.904794: >> Region optimisation pass width 240 gives best_metric 380.31p, best_cost 420.7p, best_cycle 47.27kWh, best_import 33.37kWh
2026-08-17 18:10:06.002953: >> Region optimisation pass width 120 gives best_metric 379.71p, best_cost 414.2p, best_cycle 48.12kWh, best_import 32.56kWh
2026-08-17 18:10:06.003441: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 57
2026-08-17 18:10:06.003535: Optimise levels pass ended at 2026-08-17 18:10:06, duration 2.0 seconds tried 206 combinations
2026-08-17 18:10:06.003633: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 379.71p, best_keep 0kWh, best_cycle 48.12kWh, best_carbon 0kg, best_import 32.56kWh
2026-08-17 18:10:06.019678: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 18:10:11.192263: Tweak plan optimisation started metric 263.95p, cost 275.99p
2026-08-17 18:10:11.492727: Tweak optimisation finished metric 263.95p, cost 275.99p, metric_keep 0.1kWh, cycle 26.23kWh, carbon 0kg, import 15.29kWh, changed 8 window(s)
2026-08-17 18:10:11.513850: Swap charge optimisation started metric 263.95p, cost 275.99p, min_improvement_swap 0.1p
2026-08-17 18:10:17.078184: Swap charge optimisation finished metric 263.95p, cost 275.99p
2026-08-17 18:10:17.188874: Raw charge windows [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:10:17.189481: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:10:17.189742: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:10:17.189950: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:10:17.219349: Previous plan best metric is 264.57 (cost 276.72) and new plan best metric is 263.95 (cost 275.99)
2026-08-17 18:10:17.219597: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 18:10:17.219787: Plan valid is now true after recompute was False
2026-08-17 18:10:17.243598: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 606.65p, metric_keep 278.09kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.36kWh, PV 0.0kWh
2026-08-17 18:10:17.356934: Battery has 8.83 hours left - now at 8.32kWh
2026-08-17 18:10:17.402380: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 628.57p, metric_keep 279.38kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.3kWh, PV 0.0kWh
2026-08-17 18:10:17.469781: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 325.92p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.3kWh, PV 0.0kWh
2026-08-17 18:10:17.547008: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 323.35p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.36kWh, PV 0.0kWh
2026-08-17 18:10:17.547079: Saving plan best values to HA entities
2026-08-17 18:10:17.683712: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:10:17.688616: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:10:17.693575: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.38kWh, house 0.0kWh, export 0.0kWh, metric 323.35p, metric10 325.92p
2026-08-17 18:10:17.765378: Marginal costs baseline metric (no standing charge): 276.7169
2026-08-17 18:10:18.035810: Marginal energy costs matrix computed: min=8.0 max=30.58
2026-08-17 18:10:18.095506: Rate array import [{'start': 1090, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1090, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:10:18.096338: - Your estimated bill for today is £1.77 and tomorrow is £1.70
2026-08-17 18:10:18.096415: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:10:18.096438: - The battery is currently at 52% and is in eco mode for the next 5 and a quarter hours.
2026-08-17 18:10:18.096457: - For the next 48 hours there will be no solar generation.
2026-08-17 18:10:18.096475: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:10:18.096501: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 18:10:18.096538:
2026-08-17 18:10:18.145720: Plan calculation took 14.28 seconds
2026-08-17 18:10:18.146012: Inverter 0: Type SK Sunsynk
2026-08-17 18:10:18.146042: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:10:18.146299: Reserve min: 7%, battery_min: 7%
2026-08-17 18:10:18.146370: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:10:18.146638: Inverter 0 SoC: 8.32kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power 451W, current battery voltage 51.2V, grid power -49W, load power 506W, PV Power 0W
2026-08-17 18:10:18.146842: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:10:18.146925: Inverter 0 scheduled charge enable is False
2026-08-17 18:10:18.146950: Inverter 0 charge windows currently []
2026-08-17 18:10:18.146973: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:10:18.147063: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:10:18.147095: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:10:18.147126: Inverter 0 scheduled discharge enable is False
2026-08-17 18:10:18.147223: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:10:18.147253: Inverter 0 discharge windows currently []
2026-08-17 18:10:18.147283: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:10:18.147311: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:10:18.147336: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:10:18.199176: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 52%, target 100%
2026-08-17 18:10:18.199342: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:10:18.199407: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:10:18.199604: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:10:18.199686: No export window planned
2026-08-17 18:10:18.199795: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:10:18.199830: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:10:18.199999: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:10:18.200161: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:10:18.200211: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:10:18.200270: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:10:18.200357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200396: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200424: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200448: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200477: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200508: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200555: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200658: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200683: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200713: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200758: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:10:18.200841: Inverter 0 count register writes 0
2026-08-17 18:10:18.220871: Total inverter register writes now 861
2026-08-17 18:10:18.252745: Info: Completed run status Demand
2026-08-17 18:10:18.259099: Info: record_status Demand
2026-08-17 18:10:18.265594: Saved current settings to /config/predbat_config.json
2026-08-17 18:10:18.265900: Compare, best tariff: current metric 104.68p
2026-08-17 18:10:49.362801: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:10:49.363179: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:10:49.363238: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:10:49.363440: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:10:49.363490: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:10:49.363538: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:10:49.363567: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:12:49.580340: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:12:49.580599: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:12:49.580644: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:12:49.580802: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:12:49.580857: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:12:49.580879: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:12:49.580897: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:15:00.803528: --------------- PredBat - update at 2026-08-17 18:15:00+01:00 with clock skew 0 minutes, minutes now 1095
2026-08-17 18:15:00.804447: Saved current settings to /config/predbat_config.json
2026-08-17 18:15:00.804621: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 18:15:00.804674: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:15:00.818354: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:15:00.818511: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:15:00.818678: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:15:00.819157: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:15:00.819280: Predbat mode is set to Control charge & discharge
2026-08-17 18:15:01.008731: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:15:01.008869: Using load_power data to fill gaps in load_today data
2026-08-17 18:15:01.778809: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:15:01.778988: Zero load period starting at 2026-08-17T10:54:00+0100 (441 minutes) for 189 minutes with base value 213.5
2026-08-17 18:15:01.779587: Processing 721 30-minute periods for power integration
2026-08-17 18:15:01.966954: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:15:01.967077: Car charging hold False, threshold 6.0kWh
2026-08-17 18:15:01.967139: Current data so far today: load 9.6kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:15:01.980753: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:15:01.980872: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:15:01.981613: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:15:01.981691: Standing charge is set to 46.63p
2026-08-17 18:15:02.074522: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.075329: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.075569: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.075761: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.075993: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.076186: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.076386: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.076575: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.076744: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:15:02.077817: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:15:02.077918: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:15:02.083373: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:15:02.083751: Import rates: min 8.0p, max 46.38p, average 27.51p
2026-08-17 18:15:02.130913: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:15:02.131656: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:15:02.133231: High export rate found rates in range 99p to -99p
2026-08-17 18:15:02.238943: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:15:02.239075: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:15:02.252147: Battery level now 8.32kWh, -1hr ago 8.64kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -14.9p, rate_forward 6.87p
2026-08-17 18:15:02.252526: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:15:02.304997: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:15:02.305154: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:15:02.400472: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:15:02.430543: Today's load divergence 96.97%, in-day adjustment 90.23%, damping 0.95x, yesterday 68.37% today 97.12% blend 23.96%
2026-08-17 18:15:02.430661: Today's predicted so far 11.29kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 11.29kWh forecast extra.
2026-08-17 18:15:02.430737: Today's actual load so far 10.83kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 18:15:02.468248: Inverter 0: Type SK Sunsynk
2026-08-17 18:15:02.468338: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:15:02.468543: Reserve min: 7%, battery_min: 7%
2026-08-17 18:15:02.468617: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:15:02.468878: Inverter 0 SoC: 8.17kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 284W, current battery voltage 51.2V, grid power -54W, load power 347W, PV Power 0W
2026-08-17 18:15:02.469029: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:15:02.469113: Inverter 0 scheduled charge enable is False
2026-08-17 18:15:02.469148: Inverter 0 charge windows currently []
2026-08-17 18:15:02.469174: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:15:02.469282: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:15:02.469316: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:15:02.469353: Inverter 0 scheduled discharge enable is False
2026-08-17 18:15:02.469495: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:15:02.469534: Inverter 0 discharge windows currently []
2026-08-17 18:15:02.469557: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:15:02.469576: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:15:02.469593: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:15:02.532839: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:15:02.532929: Plan was last updated on 2026-08-17 18:10:00+01:00 and is now 5.0 minutes old
2026-08-17 18:15:02.533159: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:15:02.533199: Best export window [ ]
2026-08-17 18:15:02.533920: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:15:02.536473: Load divergence over 8.0 hours mean 493.58W, min 331.2W, max 1005.0W, std dev 164.37W, divergence 16.65%
2026-08-17 18:15:02.551852: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:15:02.551988: LoadML is_calculating False
2026-08-17 18:15:02.552051: Creating pool of 12 processes to match your CPU count
2026-08-17 18:15:02.660917: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 608.58p, metric_keep 278.76kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.46kWh, PV 0.0kWh
2026-08-17 18:15:02.780676: Battery has 8.58 hours left - now at 8.17kWh
2026-08-17 18:15:02.823949: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 630.49p, metric_keep 280.01kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.41kWh, PV 0.0kWh
2026-08-17 18:15:02.908016: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 330.29p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.41kWh, PV 0.0kWh
2026-08-17 18:15:02.975565: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 328.18p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.46kWh, PV 0.0kWh
2026-08-17 18:15:02.975638: Saving plan best values to HA entities
2026-08-17 18:15:03.115092: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:15:03.120156: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:15:03.124906: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.98kWh, house 0.0kWh, export 0.0kWh, metric 328.18p, metric10 330.29p
2026-08-17 18:15:03.193899: Marginal costs baseline metric (no standing charge): 281.5417
2026-08-17 18:15:03.453641: Marginal energy costs matrix computed: min=8.0 max=30.64
2026-08-17 18:15:03.520768: Rate array import [{'start': 1095, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1095, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:15:03.521429: - Your estimated bill for today is £1.78 and tomorrow is £1.71
2026-08-17 18:15:03.521471: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:15:03.521507: - The battery is currently at 51% and is in eco mode for the next 5 and a quarter hours.
2026-08-17 18:15:03.521528: - For the next 48 hours there will be no solar generation.
2026-08-17 18:15:03.521546: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:15:03.521568: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 18:15:03.521586:
2026-08-17 18:15:03.577152: Plan calculation took 1.04 seconds
2026-08-17 18:15:03.580933: No high rate period found
2026-08-17 18:15:03.637104: Import threshold used for optimisation was 8.0p
2026-08-17 18:15:03.702901: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75]
2026-08-17 18:15:03.708774: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:15:03.708883: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:15:03.708965: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:15:03.709169: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:15:03.709249: No export window planned
2026-08-17 18:15:03.709343: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:15:03.709371: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:15:03.709493: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:15:03.709640: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:15:03.709689: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:15:03.709743: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:15:03.709818: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.709858: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.709885: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.709906: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.709929: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.709980: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710003: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710057: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:15:03.710208: Inverter 0 count register writes 0
2026-08-17 18:15:03.724240: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 18:15:03.728869: Total inverter register writes now 861
2026-08-17 18:15:03.761251: Info: Completed run status Demand
2026-08-17 18:15:03.766458: Info: record_status Demand
2026-08-17 18:15:03.772765: Saved current settings to /config/predbat_config.json
2026-08-17 18:15:03.773055: Compare, best tariff: current metric 104.68p
2026-08-17 18:15:33.875866: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:15:33.876139: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:15:33.876215: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:15:33.876378: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:15:33.876419: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:15:33.876442: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:15:33.876459: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:17:34.083821: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:17:34.084048: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:17:34.084082: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:17:34.084190: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:17:34.084223: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:17:34.084254: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:17:34.084293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:19:34.295460: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:19:34.295785: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:19:34.295846: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:19:34.296068: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:19:34.296122: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:19:34.296146: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:19:34.296184: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:20:00.400931: --------------- PredBat - update at 2026-08-17 18:20:00+01:00 with clock skew 0 minutes, minutes now 1100
2026-08-17 18:20:00.401727: Saved current settings to /config/predbat_config.json
2026-08-17 18:20:00.401867: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 18:20:00.401911: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:20:00.413672: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:20:00.413818: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:20:00.414058: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:20:00.414627: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:20:00.414821: Predbat mode is set to Control charge & discharge
2026-08-17 18:20:00.597689: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:20:00.597804: Using load_power data to fill gaps in load_today data
2026-08-17 18:20:01.350847: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:20:01.351006: Zero load period starting at 2026-08-17T10:54:00+0100 (446 minutes) for 189 minutes with base value 213.45
2026-08-17 18:20:01.351482: Processing 721 30-minute periods for power integration
2026-08-17 18:20:01.502575: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:20:01.502688: Car charging hold False, threshold 6.0kWh
2026-08-17 18:20:01.502724: Current data so far today: load 9.65kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:20:01.515918: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:20:01.516007: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:20:01.516690: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:20:01.516751: Standing charge is set to 46.63p
2026-08-17 18:20:01.595491: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.595709: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.595894: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.596103: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.596269: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.596413: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.596553: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.596684: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.596820: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:20:01.597675: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:20:01.597781: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:20:01.602198: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:20:01.602532: Import rates: min 8.0p, max 46.38p, average 27.49p
2026-08-17 18:20:01.638722: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:20:01.638834: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:20:01.640266: High export rate found rates in range 99p to -99p
2026-08-17 18:20:01.751306: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:20:01.751455: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:20:01.762653: Battery level now 8.17kWh, -1hr ago 8.64kWh, at midnight 10.49kWh, battery value change in the last hour -3.24p, change today -15.95p, rate_forward 6.87p
2026-08-17 18:20:01.763123: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.16p, import 0.16p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:20:01.826684: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:20:01.826835: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:20:01.912065: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:20:01.936713: Today's load divergence 97.0%, in-day adjustment 90.35%, damping 0.95x, yesterday 68.37% today 97.15% blend 23.61%
2026-08-17 18:20:01.936795: Today's predicted so far 11.33kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.33kWh forecast extra.
2026-08-17 18:20:01.936821: Today's actual load so far 10.87kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 18:20:01.968316: Inverter 0: Type SK Sunsynk
2026-08-17 18:20:01.968397: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:20:01.968548: Reserve min: 7%, battery_min: 7%
2026-08-17 18:20:01.968635: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:20:01.968857: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 274W, current battery voltage 51.2V, grid power -54W, load power 337W, PV Power 0W
2026-08-17 18:20:01.969026: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:20:01.969192: Inverter 0 scheduled charge enable is False
2026-08-17 18:20:01.969244: Inverter 0 charge windows currently []
2026-08-17 18:20:01.969272: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:20:01.969384: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:20:01.969419: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:20:01.969450: Inverter 0 scheduled discharge enable is False
2026-08-17 18:20:01.969551: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:20:01.969589: Inverter 0 discharge windows currently []
2026-08-17 18:20:01.969622: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:20:01.969650: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:20:01.969681: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:20:02.031324: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:20:02.031425: Plan was last updated on 2026-08-17 18:10:00+01:00 and is now 10.0 minutes old
2026-08-17 18:20:02.031753: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:20:02.031830: Best export window [ ]
2026-08-17 18:20:02.032774: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:20:02.036009: Load divergence over 8.0 hours mean 492.1W, min 361.2W, max 977.4W, std dev 154.78W, divergence 15.73%
2026-08-17 18:20:02.051477: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:20:02.051571: LoadML is_calculating False
2026-08-17 18:20:02.051629: Creating pool of 12 processes to match your CPU count
2026-08-17 18:20:02.153070: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.68p, metric_keep 278.81kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.55kWh, PV 0.0kWh
2026-08-17 18:20:02.270919: Battery has 8.58 hours left - now at 8.16kWh
2026-08-17 18:20:02.315600: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.62p, metric_keep 280.08kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.5kWh, PV 0.0kWh
2026-08-17 18:20:02.385782: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 333.41p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.5kWh, PV 0.0kWh
2026-08-17 18:20:02.476364: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 331.84p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.55kWh, PV 0.0kWh
2026-08-17 18:20:02.476442: Saving plan best values to HA entities
2026-08-17 18:20:02.639763: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:20:02.645610: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:20:02.651417: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.44kWh, house 0.0kWh, export 0.0kWh, metric 331.84p, metric10 333.41p
2026-08-17 18:20:02.721522: Marginal costs baseline metric (no standing charge): 285.211
2026-08-17 18:20:02.961475: Marginal energy costs matrix computed: min=8.0 max=30.6
2026-08-17 18:20:03.038680: Rate array import [{'start': 1100, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1100, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:20:03.039279: - Your estimated bill for today is £1.78 and tomorrow is £1.70
2026-08-17 18:20:03.039317: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:20:03.039335: - The battery is currently at 51% and is in eco mode for the next 5 and a quarter hours.
2026-08-17 18:20:03.039356: - For the next 48 hours there will be no solar generation.
2026-08-17 18:20:03.039383: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:20:03.039407: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 18:20:03.039422:
2026-08-17 18:20:03.090857: Plan calculation took 1.06 seconds
2026-08-17 18:20:03.094533: No high rate period found
2026-08-17 18:20:03.142504: Import threshold used for optimisation was 8.0p
2026-08-17 18:20:03.190478: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75]
2026-08-17 18:20:03.196510: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:20:03.196643: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:20:03.196765: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:20:03.197013: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:20:03.197107: No export window planned
2026-08-17 18:20:03.197246: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:20:03.197284: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:20:03.197418: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:20:03.197588: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:20:03.197647: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:20:03.197709: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:20:03.197793: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.197832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.197860: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.197885: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.197915: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.197940: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.197964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:03.198223: Inverter 0 count register writes 0
2026-08-17 18:20:03.212482: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 18:20:03.212689: Recompute is saving previous plan...
2026-08-17 18:20:03.215824: Best charge window [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0% ]
2026-08-17 18:20:03.215964: Best export window [ ]
2026-08-17 18:20:03.216794: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:20:03.219388: Load divergence over 8.0 hours mean 492.1W, min 361.2W, max 977.4W, std dev 154.78W, divergence 15.73%
2026-08-17 18:20:03.235147: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:20:03.235277: LoadML is_calculating False
2026-08-17 18:20:03.235344: Creating pool of 12 processes to match your CPU count
2026-08-17 18:20:03.309993: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 18:20:03.311585: Optimise levels pass started at 2026-08-17 18:20:03
2026-08-17 18:20:03.311641: Optimise all windows, total charge 94 export 1
2026-08-17 18:20:03.696187: >> Region optimisation pass width 960 gives best_metric 381.6p, best_cost 421.05p, best_cycle 47.34kWh, best_import 33.42kWh
2026-08-17 18:20:03.888083: >> Region optimisation pass width 480 gives best_metric 381.6p, best_cost 421.05p, best_cycle 47.34kWh, best_import 33.42kWh
2026-08-17 18:20:04.233702: >> Region optimisation pass width 240 gives best_metric 381.6p, best_cost 421.05p, best_cycle 47.34kWh, best_import 33.42kWh
2026-08-17 18:20:05.331760: >> Region optimisation pass width 120 gives best_metric 380.98p, best_cost 414.59p, best_cycle 48.18kWh, best_import 32.61kWh
2026-08-17 18:20:05.332130: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 57
2026-08-17 18:20:05.332294: Optimise levels pass ended at 2026-08-17 18:20:05, duration 2.0 seconds tried 206 combinations
2026-08-17 18:20:05.332424: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 380.98p, best_keep 0kWh, best_cycle 48.18kWh, best_carbon 0kg, best_import 32.61kWh
2026-08-17 18:20:05.351120: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 18:20:10.769592: Tweak plan optimisation started metric 264.27p, cost 276.28p
2026-08-17 18:20:11.112727: Tweak optimisation finished metric 264.27p, cost 276.28p, metric_keep 0.11kWh, cycle 26.17kWh, carbon 0kg, import 15.32kWh, changed 8 window(s)
2026-08-17 18:20:11.130456: Swap charge optimisation started metric 264.27p, cost 276.28p, min_improvement_swap 0.1p
2026-08-17 18:20:16.200635: Swap charge optimisation finished metric 264.27p, cost 276.28p
2026-08-17 18:20:16.310753: Raw charge windows [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:20:16.311263: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:20:16.311481: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:20:16.311623: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:20:16.347349: Previous plan best metric is 264.82 (cost 276.92) and new plan best metric is 264.27 (cost 276.28)
2026-08-17 18:20:16.347585: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 18:20:16.347744: Plan valid is now true after recompute was False
2026-08-17 18:20:16.375815: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.05p, metric_keep 278.22kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.35kWh, PV 0.0kWh
2026-08-17 18:20:16.465748: Battery has 8.58 hours left - now at 8.16kWh
2026-08-17 18:20:16.502335: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 628.92p, metric_keep 279.49kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.28kWh, PV 0.0kWh
2026-08-17 18:20:16.576337: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 326.15p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.28kWh, PV 0.0kWh
2026-08-17 18:20:16.656226: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 323.55p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.35kWh, PV 0.0kWh
2026-08-17 18:20:16.656342: Saving plan best values to HA entities
2026-08-17 18:20:16.787123: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:20:16.792201: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:20:16.797202: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.4kWh, house 0.0kWh, export 0.0kWh, metric 323.55p, metric10 326.15p
2026-08-17 18:20:16.864772: Marginal costs baseline metric (no standing charge): 276.9187
2026-08-17 18:20:17.077358: Marginal energy costs matrix computed: min=8.0 max=30.6
2026-08-17 18:20:17.134059: Rate array import [{'start': 1100, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1100, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:20:17.134661: - Your estimated bill for today is £1.78 and tomorrow is £1.70
2026-08-17 18:20:17.134700: - Import rates are very expensive (33.8p - 46.4p) for the next 5 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:20:17.134724: - The battery is currently at 51% and is in eco mode for the next 5 and a quarter hours.
2026-08-17 18:20:17.134753: - For the next 48 hours there will be no solar generation.
2026-08-17 18:20:17.134784: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:20:17.134800: - Your next charge slot will be in 5 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 18:20:17.134814:
2026-08-17 18:20:17.183459: Plan calculation took 13.97 seconds
2026-08-17 18:20:17.183871: Inverter 0: Type SK Sunsynk
2026-08-17 18:20:17.183963: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:20:17.184190: Reserve min: 7%, battery_min: 7%
2026-08-17 18:20:17.184266: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:20:17.184599: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 274W, current battery voltage 51.2V, grid power -54W, load power 337W, PV Power 0W
2026-08-17 18:20:17.184822: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:20:17.184922: Inverter 0 scheduled charge enable is False
2026-08-17 18:20:17.184956: Inverter 0 charge windows currently []
2026-08-17 18:20:17.184985: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:20:17.185095: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:20:17.185153: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:20:17.185193: Inverter 0 scheduled discharge enable is False
2026-08-17 18:20:17.185337: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:20:17.185376: Inverter 0 discharge windows currently []
2026-08-17 18:20:17.185398: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:20:17.185416: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:20:17.185437: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:20:17.240386: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:20:17.240526: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:20:17.240595: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:20:17.240765: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:20:17.240846: No export window planned
2026-08-17 18:20:17.240949: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:20:17.240984: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:20:17.241118: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:20:17.241288: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:20:17.241341: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:20:17.241404: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:20:17.241513: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241553: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241581: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241612: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241662: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241690: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:20:17.241968: Inverter 0 count register writes 0
2026-08-17 18:20:17.261070: Total inverter register writes now 861
2026-08-17 18:20:17.297354: Info: Completed run status Demand
2026-08-17 18:20:17.302624: Info: record_status Demand
2026-08-17 18:20:17.308662: Saved current settings to /config/predbat_config.json
2026-08-17 18:20:17.308921: Compare, best tariff: current metric 104.68p
2026-08-17 18:20:49.408569: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:20:49.408790: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:20:49.408831: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:20:49.408963: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:20:49.409001: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:20:49.409022: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:20:49.409043: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:22:49.628372: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:22:49.628663: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:22:49.628708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:22:49.628907: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:22:49.628975: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:22:49.629002: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:22:49.629025: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:25:00.841360: --------------- PredBat - update at 2026-08-17 18:25:00+01:00 with clock skew 0 minutes, minutes now 1105
2026-08-17 18:25:00.842160: Saved current settings to /config/predbat_config.json
2026-08-17 18:25:00.842275: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 18:25:00.842317: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:25:00.854318: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:25:00.854435: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:25:00.854664: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:25:00.855256: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:25:00.855380: Predbat mode is set to Control charge & discharge
2026-08-17 18:25:01.039417: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:25:01.039533: Using load_power data to fill gaps in load_today data
2026-08-17 18:25:01.873649: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:25:01.873830: Zero load period starting at 2026-08-17T10:54:00+0100 (451 minutes) for 189 minutes with base value 213.4
2026-08-17 18:25:01.874405: Processing 721 30-minute periods for power integration
2026-08-17 18:25:02.063537: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:25:02.063653: Car charging hold False, threshold 6.0kWh
2026-08-17 18:25:02.063694: Current data so far today: load 9.7kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:25:02.080473: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:25:02.080582: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:25:02.081324: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:25:02.081418: Standing charge is set to 46.63p
2026-08-17 18:25:02.165988: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.166241: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.166432: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.166616: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.166786: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.166983: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.167163: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.167333: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.167499: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:25:02.168671: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:25:02.168784: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:25:02.174442: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:25:02.174834: Import rates: min 8.0p, max 46.38p, average 27.47p
2026-08-17 18:25:02.217784: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:25:02.217912: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:25:02.219249: High export rate found rates in range 99p to -99p
2026-08-17 18:25:02.321651: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:25:02.321775: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:25:02.332918: Battery level now 8.16kWh, -1hr ago 8.64kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -16.0p, rate_forward 6.87p
2026-08-17 18:25:02.333298: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:25:02.386214: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:25:02.386355: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:25:02.483273: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:25:02.513537: Today's load divergence 97.12%, in-day adjustment 90.54%, damping 0.95x, yesterday 68.37% today 97.27% blend 23.26%
2026-08-17 18:25:02.513634: Today's predicted so far 11.36kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 11.36kWh forecast extra.
2026-08-17 18:25:02.513667: Today's actual load so far 10.92kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 18:25:02.546818: Inverter 0: Type SK Sunsynk
2026-08-17 18:25:02.546916: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:25:02.547090: Reserve min: 7%, battery_min: 7%
2026-08-17 18:25:02.547162: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:25:02.547526: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-17 18:25:02.547702: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:25:02.547791: Inverter 0 scheduled charge enable is False
2026-08-17 18:25:02.547826: Inverter 0 charge windows currently []
2026-08-17 18:25:02.547856: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:25:02.548051: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:25:02.548096: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:25:02.548134: Inverter 0 scheduled discharge enable is False
2026-08-17 18:25:02.548257: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:25:02.548293: Inverter 0 discharge windows currently []
2026-08-17 18:25:02.548315: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:25:02.548338: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:25:02.548355: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:25:02.605623: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:25:02.605719: Plan was last updated on 2026-08-17 18:20:00+01:00 and is now 5.0 minutes old
2026-08-17 18:25:02.605942: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:25:02.605986: Best export window [ ]
2026-08-17 18:25:02.606769: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:25:02.610095: Load divergence over 8.0 hours mean 490.57W, min 344.4W, max 1032.6W, std dev 166.12W, divergence 16.93%
2026-08-17 18:25:02.628224: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:25:02.628328: LoadML is_calculating False
2026-08-17 18:25:02.628389: Creating pool of 12 processes to match your CPU count
2026-08-17 18:25:02.753513: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.75p, metric_keep 278.31kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.46kWh, PV 0.0kWh
2026-08-17 18:25:02.873291: Battery has 8.58 hours left - now at 8.16kWh
2026-08-17 18:25:02.922311: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 629.69p, metric_keep 279.6kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.4kWh, PV 0.0kWh
2026-08-17 18:25:02.997208: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 329.39p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.4kWh, PV 0.0kWh
2026-08-17 18:25:03.074117: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 327.4p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.46kWh, PV 0.0kWh
2026-08-17 18:25:03.074205: Saving plan best values to HA entities
2026-08-17 18:25:03.224602: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:25:03.229943: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:25:03.235021: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.88kWh, house 0kWh, export 0.0kWh, metric 327.4p, metric10 329.39p
2026-08-17 18:25:03.314892: Marginal costs baseline metric (no standing charge): 280.7652
2026-08-17 18:25:03.592048: Marginal energy costs matrix computed: min=8.0 max=30.62
2026-08-17 18:25:03.669585: Rate array import [{'start': 1105, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1105, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:25:03.670278: - Your estimated bill for today is £1.78 and tomorrow is £1.70
2026-08-17 18:25:03.670322: - Import rates are very expensive (33.8p - 46.4p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:25:03.670345: - The battery is currently at 51% and is in eco mode for the next 5 hours.
2026-08-17 18:25:03.670364: - For the next 48 hours there will be no solar generation.
2026-08-17 18:25:03.670381: - You will reach a minimum of 12% battery in 29 hours.
2026-08-17 18:25:03.670404: - Your next charge slot will be in 5 hours where import rates will be cheap (8.0p).
2026-08-17 18:25:03.670421:
2026-08-17 18:25:03.717981: Plan calculation took 1.11 seconds
2026-08-17 18:25:03.721609: No high rate period found
2026-08-17 18:25:03.765132: Import threshold used for optimisation was 8.0p
2026-08-17 18:25:03.818625: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75]
2026-08-17 18:25:03.825129: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:25:03.825245: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:25:03.825332: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:25:03.825540: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:25:03.825619: No export window planned
2026-08-17 18:25:03.825717: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:25:03.825745: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:25:03.825849: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:25:03.826010: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:25:03.826062: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:25:03.826115: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:25:03.826190: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826218: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826246: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826271: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826292: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826336: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826421: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826467: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:25:03.826583: Inverter 0 count register writes 0
2026-08-17 18:25:03.841017: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 18:25:03.846186: Total inverter register writes now 861
2026-08-17 18:25:03.878763: Info: Completed run status Demand
2026-08-17 18:25:03.884088: Info: record_status Demand
2026-08-17 18:25:03.890736: Saved current settings to /config/predbat_config.json
2026-08-17 18:25:03.891069: Compare, best tariff: current metric 104.68p
2026-08-17 18:25:33.990567: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:25:33.990792: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:25:33.990841: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:25:33.991019: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:25:33.991063: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:25:33.991086: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:25:33.991108: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:27:34.201930: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:27:34.202197: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:27:34.202233: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:27:34.202399: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:27:34.202437: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:27:34.202459: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:27:34.202477: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:29:34.422498: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:29:34.422818: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:29:34.422896: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:29:34.423089: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:29:34.423162: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:29:34.423184: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:29:34.423202: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:30:00.526925: --------------- PredBat - update at 2026-08-17 18:30:00+01:00 with clock skew 0 minutes, minutes now 1110
2026-08-17 18:30:00.527616: Saved current settings to /config/predbat_config.json
2026-08-17 18:30:00.527741: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 18:30:00.527805: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:30:00.541325: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:30:00.541476: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:30:00.541693: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:30:00.542185: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:30:00.542375: Predbat mode is set to Control charge & discharge
2026-08-17 18:30:00.746101: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:30:00.746283: Using load_power data to fill gaps in load_today data
2026-08-17 18:30:01.607719: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:30:01.607888: Zero load period starting at 2026-08-17T10:54:00+0100 (456 minutes) for 189 minutes with base value 213.375
2026-08-17 18:30:01.608520: Processing 721 30-minute periods for power integration
2026-08-17 18:30:01.791685: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:30:01.791788: Car charging hold False, threshold 6.0kWh
2026-08-17 18:30:01.791823: Current data so far today: load 9.6kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:30:01.806041: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:30:01.806126: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:30:01.806759: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:30:01.806821: Standing charge is set to 46.63p
2026-08-17 18:30:01.890159: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.890424: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.890593: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.890753: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.890903: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.891050: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.891197: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.891383: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.891527: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:30:01.892451: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:30:01.892546: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:30:01.897892: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:30:01.898304: Import rates: min 8.0p, max 46.38p, average 27.44p
2026-08-17 18:30:01.945454: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:30:01.945575: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:30:01.946894: High export rate found rates in range 99p to -99p
2026-08-17 18:30:02.038299: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:30:02.038439: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:30:02.049165: Battery level now 8.16kWh, -1hr ago 8.64kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -16.0p, rate_forward 6.87p
2026-08-17 18:30:02.049478: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:30:02.101200: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:30:02.101340: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:30:02.182380: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:30:02.208171: Today's load divergence 95.8%, in-day adjustment 89.68%, damping 0.95x, yesterday 68.37% today 96.01% blend 22.92%
2026-08-17 18:30:02.208256: Today's predicted so far 11.49kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 11.49kWh forecast extra.
2026-08-17 18:30:02.208299: Today's actual load so far 10.86kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 18:30:02.240944: Inverter 0: Type SK Sunsynk
2026-08-17 18:30:02.241056: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:30:02.241348: Reserve min: 7%, battery_min: 7%
2026-08-17 18:30:02.241477: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:30:02.241813: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 326W, PV Power 0W
2026-08-17 18:30:02.242015: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:30:02.242162: Inverter 0 scheduled charge enable is False
2026-08-17 18:30:02.242210: Inverter 0 charge windows currently []
2026-08-17 18:30:02.242246: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:30:02.242444: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:30:02.242497: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:30:02.242560: Inverter 0 scheduled discharge enable is False
2026-08-17 18:30:02.242749: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:30:02.242800: Inverter 0 discharge windows currently []
2026-08-17 18:30:02.242842: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:30:02.242879: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:30:02.242918: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:30:02.316647: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:30:02.316799: Plan was last updated on 2026-08-17 18:20:00+01:00 and is now 10.0 minutes old
2026-08-17 18:30:02.317054: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:30:02.317101: Best export window [ ]
2026-08-17 18:30:02.317975: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:30:02.321966: Load divergence over 8.0 hours mean 489.17W, min 353.4W, max 1063.8W, std dev 154.19W, divergence 15.76%
2026-08-17 18:30:02.342750: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:30:02.342875: LoadML is_calculating False
2026-08-17 18:30:02.342935: Creating pool of 12 processes to match your CPU count
2026-08-17 18:30:02.463289: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 607.61p, metric_keep 278.25kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.37kWh, PV 0.0kWh
2026-08-17 18:30:02.618178: Battery has 8.67 hours left - now at 8.16kWh
2026-08-17 18:30:02.677912: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 629.52p, metric_keep 279.54kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.31kWh, PV 0.0kWh
2026-08-17 18:30:02.763608: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 332.17p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-17 18:30:02.835295: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 330.83p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.37kWh, PV 0.0kWh
2026-08-17 18:30:02.835367: Saving plan best values to HA entities
2026-08-17 18:30:02.985082: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 18:30:02.990908: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:30:02.998477: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.31kWh, house 0.0kWh, export 0.0kWh, metric 330.83p, metric10 332.17p
2026-08-17 18:30:03.081254: Marginal costs baseline metric (no standing charge): 284.1939
2026-08-17 18:30:03.306438: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 18:30:03.394488: Rate array import [{'start': 1110, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1110, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:30:03.395383: - Your estimated bill for today is £1.77 and tomorrow is £1.69
2026-08-17 18:30:03.395435: - Import rates are very expensive (33.8p - 46.4p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:30:03.395459: - The battery is currently at 51% and is in eco mode for the next 5 hours.
2026-08-17 18:30:03.395478: - For the next 48 hours there will be no solar generation.
2026-08-17 18:30:03.395502: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:30:03.395520: - Your next charge slot will be in 5 hours where import rates will be cheap (8.0p).
2026-08-17 18:30:03.395537:
2026-08-17 18:30:03.463294: Plan calculation took 1.15 seconds
2026-08-17 18:30:03.467755: No high rate period found
2026-08-17 18:30:03.516945: Import threshold used for optimisation was 8.0p
2026-08-17 18:30:03.561913: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75]
2026-08-17 18:30:03.571061: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:30:03.571199: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:30:03.571328: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:30:03.571584: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:30:03.571677: No export window planned
2026-08-17 18:30:03.571798: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:30:03.571832: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:30:03.572077: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:30:03.572343: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:30:03.572443: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:30:03.572540: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:30:03.572681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.572764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.572830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.572882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.572931: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.572984: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573348: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573399: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:03.573529: Inverter 0 count register writes 0
2026-08-17 18:30:03.590754: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 18:30:03.590894: Recompute is saving previous plan...
2026-08-17 18:30:03.593552: Best charge window [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0% ]
2026-08-17 18:30:03.593620: Best export window [ ]
2026-08-17 18:30:03.594295: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:30:03.596824: Load divergence over 8.0 hours mean 489.17W, min 353.4W, max 1063.8W, std dev 154.19W, divergence 15.76%
2026-08-17 18:30:03.612089: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:30:03.612223: LoadML is_calculating False
2026-08-17 18:30:03.612321: Creating pool of 12 processes to match your CPU count
2026-08-17 18:30:03.697840: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 18:30:03.699829: Optimise levels pass started at 2026-08-17 18:30:03
2026-08-17 18:30:03.699887: Optimise all windows, total charge 95 export 1
2026-08-17 18:30:04.292444: >> Region optimisation pass width 960 gives best_metric 381.24p, best_cost 419.98p, best_cycle 47.19kWh, best_import 33.28kWh
2026-08-17 18:30:04.505867: >> Region optimisation pass width 480 gives best_metric 379.52p, best_cost 402.51p, best_cycle 49.46kWh, best_import 31.1kWh
2026-08-17 18:30:04.854903: >> Region optimisation pass width 240 gives best_metric 379.52p, best_cost 402.51p, best_cycle 49.46kWh, best_import 31.1kWh
2026-08-17 18:30:05.742808: >> Region optimisation pass width 120 gives best_metric 379.52p, best_cost 402.51p, best_cycle 49.46kWh, best_import 31.1kWh
2026-08-17 18:30:05.743183: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 57
2026-08-17 18:30:05.743265: Optimise levels pass ended at 2026-08-17 18:30:05, duration 2.0 seconds tried 197 combinations
2026-08-17 18:30:05.743356: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 379.52p, best_keep 0kWh, best_cycle 49.46kWh, best_carbon 0kg, best_import 31.1kWh
2026-08-17 18:30:05.766685: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 18:30:10.357560: Tweak plan optimisation started metric 264.28p, cost 277.15p
2026-08-17 18:30:10.696707: Tweak optimisation finished metric 264.28p, cost 277.15p, metric_keep 0kWh, cycle 27.8kWh, carbon 0kg, import 15.43kWh, changed 8 window(s)
2026-08-17 18:30:10.716247: Swap charge optimisation started metric 264.28p, cost 277.15p, min_improvement_swap 0.1p
2026-08-17 18:30:15.552231: Swap charge optimisation finished metric 264.28p, cost 277.15p
2026-08-17 18:30:15.662504: Raw charge windows [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 97%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 97%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:30:15.663118: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:30:15.663390: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:30:15.663590: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 18:30:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:30:15.702200: Previous plan best metric is 263.87 (cost 276.01) and new plan best metric is 264.28 (cost 277.15)
2026-08-17 18:30:15.702712: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 18:30:15.702892: Plan valid is now true after recompute was False
2026-08-17 18:30:15.740353: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 606.09p, metric_keep 277.66kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.18kWh, PV 0.0kWh
2026-08-17 18:30:15.875341: Battery has 8.67 hours left - now at 8.16kWh
2026-08-17 18:30:15.915254: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 627.93p, metric_keep 278.95kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.11kWh, PV 0.0kWh
2026-08-17 18:30:15.990913: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 325.03p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.11kWh, PV 0.0kWh
2026-08-17 18:30:16.057374: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 322.65p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.18kWh, PV 0.0kWh
2026-08-17 18:30:16.057476: Saving plan best values to HA entities
2026-08-17 18:30:16.201460: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 18:30:16.207816: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:30:16.212739: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.29kWh, house 0.0kWh, export 0.0kWh, metric 322.65p, metric10 325.03p
2026-08-17 18:30:16.278011: Marginal costs baseline metric (no standing charge): 276.0113
2026-08-17 18:30:16.503386: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 18:30:16.561883: Rate array import [{'start': 1110, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1110, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:30:16.562534: - Your estimated bill for today is £1.77 and tomorrow is £1.69
2026-08-17 18:30:16.562583: - Import rates are very expensive (33.8p - 46.4p) for the next 5 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:30:16.562603: - The battery is currently at 51% and is in eco mode for the next 5 hours.
2026-08-17 18:30:16.562618: - For the next 48 hours there will be no solar generation.
2026-08-17 18:30:16.562644: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:30:16.562677: - Your next charge slot will be in 5 hours where import rates will be cheap (8.0p).
2026-08-17 18:30:16.562705:
2026-08-17 18:30:16.616323: Plan calculation took 13.03 seconds
2026-08-17 18:30:16.616614: Inverter 0: Type SK Sunsynk
2026-08-17 18:30:16.616652: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:30:16.616836: Reserve min: 7%, battery_min: 7%
2026-08-17 18:30:16.616899: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:30:16.617157: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 326W, PV Power 0W
2026-08-17 18:30:16.617366: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:30:16.617454: Inverter 0 scheduled charge enable is False
2026-08-17 18:30:16.617484: Inverter 0 charge windows currently []
2026-08-17 18:30:16.617509: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:30:16.617633: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:30:16.617673: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:30:16.617714: Inverter 0 scheduled discharge enable is False
2026-08-17 18:30:16.617875: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:30:16.617910: Inverter 0 discharge windows currently []
2026-08-17 18:30:16.617931: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:30:16.617986: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:30:16.618012: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:30:16.665157: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:30:16.665330: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:30:16.665411: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:30:16.665587: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:30:16.665668: No export window planned
2026-08-17 18:30:16.665782: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:30:16.665817: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:30:16.666014: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:30:16.666192: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:30:16.666245: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:30:16.666322: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:30:16.666415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666457: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666493: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666526: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666556: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666581: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666611: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666675: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666710: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666741: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666820: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:30:16.666870: Inverter 0 count register writes 0
2026-08-17 18:30:16.691103: Total inverter register writes now 861
2026-08-17 18:30:16.719852: Info: Completed run status Demand
2026-08-17 18:30:16.725913: Info: record_status Demand
2026-08-17 18:30:16.731565: Saved current settings to /config/predbat_config.json
2026-08-17 18:30:16.731800: Compare, best tariff: current metric 104.68p
2026-08-17 18:30:48.841692: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:30:48.841959: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:30:48.842005: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:30:48.842177: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:30:48.842242: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:30:48.842271: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:30:48.842290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:32:49.063715: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:32:49.063965: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:32:49.064035: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:32:49.064166: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:32:49.064209: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:32:49.064227: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:32:49.064241: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:34:49.265034: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:34:49.265271: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:34:49.265328: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:34:49.265518: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:34:49.265657: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:34:49.265743: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:34:49.265796: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:35:00.359171: --------------- PredBat - update at 2026-08-17 18:35:00+01:00 with clock skew 0 minutes, minutes now 1115
2026-08-17 18:35:00.359986: Saved current settings to /config/predbat_config.json
2026-08-17 18:35:00.360158: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 18:35:00.360218: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:35:00.372715: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:35:00.372847: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:35:00.373013: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:35:00.373589: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:35:00.373771: Predbat mode is set to Control charge & discharge
2026-08-17 18:35:00.544896: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:35:00.545020: Using load_power data to fill gaps in load_today data
2026-08-17 18:35:01.301275: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:35:01.301453: Zero load period starting at 2026-08-17T10:54:00+0100 (461 minutes) for 189 minutes with base value 213.35
2026-08-17 18:35:01.302049: Processing 721 30-minute periods for power integration
2026-08-17 18:35:01.486245: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:35:01.486364: Car charging hold False, threshold 6.0kWh
2026-08-17 18:35:01.486407: Current data so far today: load 9.6kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:35:01.503000: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:35:01.503106: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:35:01.504013: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:35:01.504098: Standing charge is set to 46.63p
2026-08-17 18:35:01.586994: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.587208: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.587382: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.587542: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.587721: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.587855: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.588023: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.588161: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.588294: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:35:01.589164: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:35:01.589250: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:35:01.594601: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:35:01.594899: Import rates: min 8.0p, max 46.38p, average 27.42p
2026-08-17 18:35:01.629968: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:35:01.630069: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:35:01.631248: High export rate found rates in range 99p to -99p
2026-08-17 18:35:01.717672: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:35:01.717783: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:35:01.728323: Battery level now 8.16kWh, -1hr ago 8.48kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -16.0p, rate_forward 6.87p
2026-08-17 18:35:01.728654: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:35:01.781815: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:35:01.781948: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:35:01.858592: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:35:01.882409: Today's load divergence 95.07%, in-day adjustment 89.23%, damping 0.95x, yesterday 68.37% today 95.31% blend 22.57%
2026-08-17 18:35:01.882700: Today's predicted so far 11.62kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.62kWh forecast extra.
2026-08-17 18:35:01.882739: Today's actual load so far 10.88kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 18:35:01.910347: Inverter 0: Type SK Sunsynk
2026-08-17 18:35:01.910419: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:35:01.910593: Reserve min: 7%, battery_min: 7%
2026-08-17 18:35:01.910654: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:35:01.910862: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 270W, current battery voltage 51.2V, grid power -54W, load power 333W, PV Power 0W
2026-08-17 18:35:01.910982: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:35:01.911053: Inverter 0 scheduled charge enable is False
2026-08-17 18:35:01.911076: Inverter 0 charge windows currently []
2026-08-17 18:35:01.911098: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:35:01.911184: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:35:01.911213: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:35:01.911243: Inverter 0 scheduled discharge enable is False
2026-08-17 18:35:01.911403: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:35:01.911440: Inverter 0 discharge windows currently []
2026-08-17 18:35:01.911459: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:35:01.911475: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:35:01.911496: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:35:01.957287: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:35:01.957374: Plan was last updated on 2026-08-17 18:30:00+01:00 and is now 5.0 minutes old
2026-08-17 18:35:01.957555: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:35:01.957592: Best export window [ ]
2026-08-17 18:35:01.958245: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:35:01.960743: Load divergence over 8.0 hours mean 487.71W, min 322.2W, max 1002.6W, std dev 158.34W, divergence 16.23%
2026-08-17 18:35:01.976837: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:35:01.976929: LoadML is_calculating False
2026-08-17 18:35:01.976979: Creating pool of 12 processes to match your CPU count
2026-08-17 18:35:02.096119: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 606.09p, metric_keep 277.55kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.19kWh, PV 0.0kWh
2026-08-17 18:35:02.205800: Battery has 8.67 hours left - now at 8.16kWh
2026-08-17 18:35:02.244872: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.9p, metric_keep 278.86kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 30.12kWh, PV 0.0kWh
2026-08-17 18:35:02.320439: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 327.82p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.12kWh, PV 0.0kWh
2026-08-17 18:35:02.394116: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 326.16p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.19kWh, PV 0.0kWh
2026-08-17 18:35:02.394199: Saving plan best values to HA entities
2026-08-17 18:35:02.542204: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:35:02.548917: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:35:02.554746: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.73kWh, house 0.0kWh, export 0.0kWh, metric 326.16p, metric10 327.82p
2026-08-17 18:35:02.641711: Marginal costs baseline metric (no standing charge): 279.5285
2026-08-17 18:35:02.911656: Marginal energy costs matrix computed: min=7.33 max=30.58
2026-08-17 18:35:02.975430: Rate array import [{'start': 1115, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1115, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:35:02.976104: - Your estimated bill for today is £1.77 and tomorrow is £1.69
2026-08-17 18:35:02.976148: - Import rates are very expensive (33.8p - 46.4p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:35:02.976168: - The battery is currently at 51% and is in eco mode for the next 4 hours.
2026-08-17 18:35:02.976183: - For the next 48 hours there will be no solar generation.
2026-08-17 18:35:02.976197: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:35:02.976214: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-17 18:35:02.976228:
2026-08-17 18:35:03.018800: Plan calculation took 1.06 seconds
2026-08-17 18:35:03.022468: No high rate period found
2026-08-17 18:35:03.069191: Import threshold used for optimisation was 8.0p
2026-08-17 18:35:03.120136: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 95: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75]
2026-08-17 18:35:03.127409: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:35:03.127564: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:35:03.127696: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:35:03.128008: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:35:03.128098: No export window planned
2026-08-17 18:35:03.128204: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:35:03.128233: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:35:03.128338: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:35:03.128525: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:35:03.128619: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:35:03.128709: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:35:03.128798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.128831: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.128856: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.128877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.128902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.128927: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.128948: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:35:03.129183: Inverter 0 count register writes 0
2026-08-17 18:35:03.149418: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 18:35:03.155638: Total inverter register writes now 861
2026-08-17 18:35:03.198482: Info: Completed run status Demand
2026-08-17 18:35:03.205877: Info: record_status Demand
2026-08-17 18:35:03.212368: Saved current settings to /config/predbat_config.json
2026-08-17 18:35:03.212651: Compare, best tariff: current metric 104.68p
2026-08-17 18:35:34.309709: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:35:34.309936: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:35:34.309983: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:35:34.310157: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:35:34.310225: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:35:34.310247: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:35:34.310266: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:37:32.231725: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 18:37:33.202436: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:37:33.202616: Zero load period starting at 2026-08-17T10:54:00+0100 (461 minutes) for 189 minutes with base value 409.65
2026-08-17 18:37:33.203096: Processing 1345 30-minute periods for power integration
2026-08-17 18:37:33.289549: ML Component: Car charging hold False, car energy reported load False
2026-08-17 18:37:33.402528: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:37:33.497920: ML Temperature data points: 49286
2026-08-17 18:37:33.740807: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 18:37:33.775558: ML Component: Data fetch completed, load data age 59.0 days, 17047 data points
2026-08-17 18:37:33.775677: ML Component: No training needed, model age is 1.78 hours
2026-08-17 18:37:33.775727: ML Component: Generating predictions load data age 59.0 days, 17047 data points
2026-08-17 18:37:33.890135: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.029 max_dow {0: 0.08182500006258488, 1: 0.09517499981913714, 2: 0.11119374959506094, 3: 0.10481562534738333, 4: 0.1382125003574416, 5: 0.1015888893092672, 6: 0.10537222260319526}
2026-08-17 18:37:34.249351: ML Component: Generated 576 predictions (total 25.70 kWh over 48h)
2026-08-17 18:37:34.279723: ML Component: Prediction cycle completed
2026-08-17 18:37:34.385502: ML Component: Saved 17047 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 18:37:34.531397: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:37:34.531661: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:37:34.531697: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:37:34.531843: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:37:34.531880: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:37:34.531926: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:37:34.531950: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:39:48.761162: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:39:48.761471: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:39:48.761529: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:39:48.761733: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:39:48.761778: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:39:48.761801: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:39:48.761830: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:40:00.844349: --------------- PredBat - update at 2026-08-17 18:40:00+01:00 with clock skew 0 minutes, minutes now 1120
2026-08-17 18:40:00.845003: Saved current settings to /config/predbat_config.json
2026-08-17 18:40:00.845101: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 18:40:00.845127: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:40:00.856266: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:40:00.856367: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:40:00.856497: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:40:00.856940: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:40:00.857037: Predbat mode is set to Control charge & discharge
2026-08-17 18:40:01.021651: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:40:01.022289: Using load_power data to fill gaps in load_today data
2026-08-17 18:40:01.885033: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:40:01.885235: Zero load period starting at 2026-08-17T10:54:00+0100 (466 minutes) for 189 minutes with base value 213.325
2026-08-17 18:40:01.885830: Processing 721 30-minute periods for power integration
2026-08-17 18:40:02.058957: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:40:02.059070: Car charging hold False, threshold 6.0kWh
2026-08-17 18:40:02.059108: Current data so far today: load 9.72kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:40:02.072342: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:40:02.072423: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:40:02.073020: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:40:02.073079: Standing charge is set to 46.63p
2026-08-17 18:40:02.146561: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.146784: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.146956: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.147103: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.147247: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.147383: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.147531: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.147671: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.147821: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:40:02.148718: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:40:02.148823: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:40:02.153319: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:40:02.153559: Import rates: min 8.0p, max 46.38p, average 27.4p
2026-08-17 18:40:02.188475: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:40:02.188574: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:40:02.189714: High export rate found rates in range 99p to -99p
2026-08-17 18:40:02.282991: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:40:02.283115: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:40:02.294787: Battery level now 8.16kWh, -1hr ago 8.48kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -16.0p, rate_forward 6.87p
2026-08-17 18:40:02.295138: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:40:02.348858: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:40:02.349001: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:40:02.446602: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:40:02.475861: Today's load divergence 95.53%, in-day adjustment 89.67%, damping 0.95x, yesterday 68.37% today 95.76% blend 22.22%
2026-08-17 18:40:02.475992: Today's predicted so far 11.64kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 11.64kWh forecast extra.
2026-08-17 18:40:02.476066: Today's actual load so far 10.97kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 18:40:02.519277: Inverter 0: Type SK Sunsynk
2026-08-17 18:40:02.519369: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:40:02.519606: Reserve min: 7%, battery_min: 7%
2026-08-17 18:40:02.519710: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:40:02.520094: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 263W, current battery voltage 51.2V, grid power -55W, load power 324W, PV Power 0W
2026-08-17 18:40:02.520285: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:40:02.520435: Inverter 0 scheduled charge enable is False
2026-08-17 18:40:02.520484: Inverter 0 charge windows currently []
2026-08-17 18:40:02.520535: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:40:02.520686: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:40:02.520748: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:40:02.520818: Inverter 0 scheduled discharge enable is False
2026-08-17 18:40:02.521001: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:40:02.521050: Inverter 0 discharge windows currently []
2026-08-17 18:40:02.521081: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:40:02.521116: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:40:02.521138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:40:02.573648: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:40:02.573753: Plan was last updated on 2026-08-17 18:30:00+01:00 and is now 10.0 minutes old
2026-08-17 18:40:02.573925: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:40:02.573959: Best export window [ ]
2026-08-17 18:40:02.574638: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:40:02.577193: Load divergence over 8.0 hours mean 489.21W, min 336.6W, max 1039.2W, std dev 159.54W, divergence 16.31%
2026-08-17 18:40:02.592904: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:40:02.593007: LoadML is_calculating False
2026-08-17 18:40:02.593059: Creating pool of 12 processes to match your CPU count
2026-08-17 18:40:02.701953: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.5p, metric_keep 277.62kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.37kWh, PV 0.0kWh
2026-08-17 18:40:02.814010: Battery has 8.67 hours left - now at 8.16kWh
2026-08-17 18:40:02.855457: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.34p, metric_keep 278.94kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.3kWh, PV 0.0kWh
2026-08-17 18:40:02.925692: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 330.96p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.3kWh, PV 0.0kWh
2026-08-17 18:40:02.996035: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.84p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.37kWh, PV 0.0kWh
2026-08-17 18:40:02.996124: Saving plan best values to HA entities
2026-08-17 18:40:03.145678: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:40:03.151372: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:40:03.156570: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.19kWh, house 0.0kWh, export 0.0kWh, metric 329.84p, metric10 330.96p
2026-08-17 18:40:03.235496: Marginal costs baseline metric (no standing charge): 283.2084
2026-08-17 18:40:03.513718: Marginal energy costs matrix computed: min=6.67 max=30.58
2026-08-17 18:40:03.584454: Rate array import [{'start': 1120, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1120, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:40:03.585058: - Your estimated bill for today is £1.77 and tomorrow is £1.68
2026-08-17 18:40:03.585096: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:40:03.585114: - The battery is currently at 51% and is in eco mode for the next 4 and three quarters hours.
2026-08-17 18:40:03.585129: - For the next 48 hours there will be no solar generation.
2026-08-17 18:40:03.585143: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:40:03.585161: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 18:40:03.585175:
2026-08-17 18:40:03.628283: Plan calculation took 1.05 seconds
2026-08-17 18:40:03.631419: No high rate period found
2026-08-17 18:40:03.674191: Import threshold used for optimisation was 8.0p
2026-08-17 18:40:03.717646: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 95: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75]
2026-08-17 18:40:03.727440: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:40:03.727706: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:40:03.727850: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:40:03.728255: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:40:03.728381: No export window planned
2026-08-17 18:40:03.728510: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:40:03.728553: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:40:03.728692: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:40:03.728975: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:40:03.729049: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:40:03.729114: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:40:03.729233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.729278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.729969: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730019: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730107: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.730258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.731370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.732737: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.732781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:03.732801: Inverter 0 count register writes 0
2026-08-17 18:40:03.747020: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 18:40:03.747155: Recompute is saving previous plan...
2026-08-17 18:40:03.749717: Best charge window [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0% ]
2026-08-17 18:40:03.749797: Best export window [ ]
2026-08-17 18:40:03.750394: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:40:03.752853: Load divergence over 8.0 hours mean 489.21W, min 336.6W, max 1039.2W, std dev 159.54W, divergence 16.31%
2026-08-17 18:40:03.767124: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:40:03.767196: LoadML is_calculating False
2026-08-17 18:40:03.767247: Creating pool of 12 processes to match your CPU count
2026-08-17 18:40:03.838126: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 18:40:03.839752: Optimise levels pass started at 2026-08-17 18:40:03
2026-08-17 18:40:03.839814: Optimise all windows, total charge 95 export 1
2026-08-17 18:40:04.203060: >> Region optimisation pass width 960 gives best_metric 381.18p, best_cost 418.66p, best_cycle 47.06kWh, best_import 33.12kWh
2026-08-17 18:40:04.400900: >> Region optimisation pass width 480 gives best_metric 381.18p, best_cost 418.66p, best_cycle 47.06kWh, best_import 33.12kWh
2026-08-17 18:40:04.743688: >> Region optimisation pass width 240 gives best_metric 381.18p, best_cost 418.66p, best_cycle 47.06kWh, best_import 33.12kWh
2026-08-17 18:40:05.881607: >> Region optimisation pass width 120 gives best_metric 380.75p, best_cost 414.48p, best_cycle 47.6kWh, best_import 32.6kWh
2026-08-17 18:40:05.882202: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 57
2026-08-17 18:40:05.882327: Optimise levels pass ended at 2026-08-17 18:40:05, duration 2.0 seconds tried 220 combinations
2026-08-17 18:40:05.882442: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 380.75p, best_keep 0kWh, best_cycle 47.6kWh, best_carbon 0kg, best_import 32.6kWh
2026-08-17 18:40:05.902928: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 18:40:10.019501: Tweak plan optimisation started metric 262.49p, cost 276.27p
2026-08-17 18:40:10.322011: Tweak optimisation finished metric 262.49p, cost 276.27p, metric_keep 0kWh, cycle 26.38kWh, carbon 0kg, import 15.32kWh, changed 8 window(s)
2026-08-17 18:40:10.342128: Swap charge optimisation started metric 262.49p, cost 276.27p, min_improvement_swap 0.1p
2026-08-17 18:40:15.484181: Swap charge optimisation finished metric 262.49p, cost 276.27p
2026-08-17 18:40:15.583277: Raw charge windows [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 100%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:40:15.583747: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:40:15.583988: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:40:15.584158: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:40:15.614089: Previous plan best metric is 262.72 (cost 274.92) and new plan best metric is 262.49 (cost 276.27)
2026-08-17 18:40:15.614290: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 18:40:15.614410: Plan valid is now true after recompute was False
2026-08-17 18:40:15.637617: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.88p, metric_keep 277.03kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.16kWh, PV 0.0kWh
2026-08-17 18:40:15.744709: Battery has 8.67 hours left - now at 8.16kWh
2026-08-17 18:40:15.792619: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.65p, metric_keep 278.36kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.09kWh, PV 0.0kWh
2026-08-17 18:40:15.866224: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 323.71p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.09kWh, PV 0.0kWh
2026-08-17 18:40:15.934628: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 321.56p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.16kWh, PV 0.0kWh
2026-08-17 18:40:15.934860: Saving plan best values to HA entities
2026-08-17 18:40:16.065320: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:40:16.070267: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:40:16.075254: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.15kWh, house 0.0kWh, export 0.0kWh, metric 321.56p, metric10 323.71p
2026-08-17 18:40:16.142392: Marginal costs baseline metric (no standing charge): 274.9242
2026-08-17 18:40:16.414389: Marginal energy costs matrix computed: min=6.67 max=30.58
2026-08-17 18:40:16.482295: Rate array import [{'start': 1120, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1120, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:40:16.483027: - Your estimated bill for today is £1.77 and tomorrow is £1.68
2026-08-17 18:40:16.483085: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:40:16.483152: - The battery is currently at 51% and is in eco mode for the next 4 and three quarters hours.
2026-08-17 18:40:16.483191: - For the next 48 hours there will be no solar generation.
2026-08-17 18:40:16.483226: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:40:16.483269: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 18:40:16.483306:
2026-08-17 18:40:16.532539: Plan calculation took 12.79 seconds
2026-08-17 18:40:16.532880: Inverter 0: Type SK Sunsynk
2026-08-17 18:40:16.532926: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:40:16.533137: Reserve min: 7%, battery_min: 7%
2026-08-17 18:40:16.533212: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:40:16.533515: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 325W, PV Power 0W
2026-08-17 18:40:16.533749: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:40:16.533851: Inverter 0 scheduled charge enable is False
2026-08-17 18:40:16.533887: Inverter 0 charge windows currently []
2026-08-17 18:40:16.533917: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:40:16.534022: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:40:16.534060: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:40:16.534097: Inverter 0 scheduled discharge enable is False
2026-08-17 18:40:16.534227: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:40:16.534264: Inverter 0 discharge windows currently []
2026-08-17 18:40:16.534286: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:40:16.534305: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:40:16.534323: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:40:16.585262: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:40:16.585447: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:40:16.585558: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:40:16.585815: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:40:16.585934: No export window planned
2026-08-17 18:40:16.586119: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:40:16.586192: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:40:16.586372: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:40:16.586569: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:40:16.586628: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:40:16.586742: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:40:16.586879: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.586928: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.586983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587120: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587247: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587376: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:40:16.587795: Inverter 0 count register writes 0
2026-08-17 18:40:16.607498: Total inverter register writes now 861
2026-08-17 18:40:16.637563: Info: Completed run status Demand
2026-08-17 18:40:16.642398: Info: record_status Demand
2026-08-17 18:40:16.648685: Saved current settings to /config/predbat_config.json
2026-08-17 18:40:16.649007: Compare, best tariff: current metric 104.68p
2026-08-17 18:40:48.752170: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:40:48.752447: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:40:48.752501: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:40:48.752638: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:40:48.752690: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:40:48.752716: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:40:48.752731: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:42:48.972535: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:42:48.972784: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:42:48.972839: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:42:48.973080: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:42:48.973123: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:42:48.973145: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:42:48.973163: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:44:49.186094: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:44:49.186325: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:44:49.186365: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:44:49.186496: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:44:49.186534: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:44:49.186555: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:44:49.186592: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:45:00.269617: --------------- PredBat - update at 2026-08-17 18:45:00+01:00 with clock skew 0 minutes, minutes now 1125
2026-08-17 18:45:00.270354: Saved current settings to /config/predbat_config.json
2026-08-17 18:45:00.270482: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 18:45:00.270540: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:45:00.282570: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:45:00.282672: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:45:00.282846: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:45:00.283349: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:45:00.283467: Predbat mode is set to Control charge & discharge
2026-08-17 18:45:00.449368: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:45:00.449983: Using load_power data to fill gaps in load_today data
2026-08-17 18:45:01.299453: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:45:01.299705: Zero load period starting at 2026-08-17T10:54:00+0100 (471 minutes) for 189 minutes with base value 213.3
2026-08-17 18:45:01.300392: Processing 721 30-minute periods for power integration
2026-08-17 18:45:01.496799: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:45:01.496953: Car charging hold False, threshold 6.0kWh
2026-08-17 18:45:01.497006: Current data so far today: load 9.75kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:45:01.513719: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:45:01.513814: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:45:01.514659: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:45:01.514741: Standing charge is set to 46.63p
2026-08-17 18:45:01.612900: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.613218: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.613489: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.613767: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.614042: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.614290: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.614539: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.614780: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.615037: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:45:01.616571: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:45:01.616688: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:45:01.622190: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:45:01.622595: Import rates: min 8.0p, max 46.38p, average 27.38p
2026-08-17 18:45:01.665269: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:45:01.665377: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:45:01.666701: High export rate found rates in range 99p to -99p
2026-08-17 18:45:01.767993: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:45:01.768142: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:45:01.778863: Battery level now 8.16kWh, -1hr ago 8.48kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -16.0p, rate_forward 6.87p
2026-08-17 18:45:01.779236: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:45:01.833799: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:45:01.834016: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:45:01.932899: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:45:01.962418: Today's load divergence 95.55%, in-day adjustment 89.78%, damping 0.95x, yesterday 68.37% today 95.77% blend 21.88%
2026-08-17 18:45:01.962504: Today's predicted so far 11.66kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 11.66kWh forecast extra.
2026-08-17 18:45:01.962536: Today's actual load so far 10.99kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 18:45:01.991944: Inverter 0: Type SK Sunsynk
2026-08-17 18:45:01.992027: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:45:01.992205: Reserve min: 7%, battery_min: 7%
2026-08-17 18:45:01.992273: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:45:01.992531: Inverter 0 SoC: 8.16kW 51%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 324W, PV Power 0W
2026-08-17 18:45:01.992697: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:45:01.992808: Inverter 0 scheduled charge enable is False
2026-08-17 18:45:01.992847: Inverter 0 charge windows currently []
2026-08-17 18:45:01.992908: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:45:01.993076: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:45:01.993120: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:45:01.993159: Inverter 0 scheduled discharge enable is False
2026-08-17 18:45:01.993294: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:45:01.993330: Inverter 0 discharge windows currently []
2026-08-17 18:45:01.993352: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:45:01.993372: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:45:01.993394: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:45:02.048821: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:45:02.048958: Plan was last updated on 2026-08-17 18:40:00+01:00 and is now 5.0 minutes old
2026-08-17 18:45:02.049176: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:45:02.049217: Best export window [ ]
2026-08-17 18:45:02.050053: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:45:02.053213: Load divergence over 8.0 hours mean 490.72W, min 331.2W, max 1005.0W, std dev 166.35W, divergence 16.95%
2026-08-17 18:45:02.072339: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:45:02.072448: LoadML is_calculating False
2026-08-17 18:45:02.072510: Creating pool of 12 processes to match your CPU count
2026-08-17 18:45:02.187084: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.69p, metric_keep 277.05kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.25kWh, PV 0.0kWh
2026-08-17 18:45:02.310177: Battery has 8.67 hours left - now at 8.16kWh
2026-08-17 18:45:02.354148: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.45p, metric_keep 278.38kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.17kWh, PV 0.0kWh
2026-08-17 18:45:02.426029: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 326.8p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-17 18:45:02.500082: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 325.26p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.25kWh, PV 0.0kWh
2026-08-17 18:45:02.500161: Saving plan best values to HA entities
2026-08-17 18:45:02.666720: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:45:02.675693: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 18:45:02.690154: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.62kWh, house 0.0kWh, export 0.0kWh, metric 325.26p, metric10 326.8p
2026-08-17 18:45:02.783234: Marginal costs baseline metric (no standing charge): 278.6276
2026-08-17 18:45:03.011095: Marginal energy costs matrix computed: min=6.0 max=30.64
2026-08-17 18:45:03.075723: Rate array import [{'start': 1125, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1125, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:45:03.076336: - Your estimated bill for today is £1.78 and tomorrow is £1.68
2026-08-17 18:45:03.076379: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:45:03.076398: - The battery is currently at 51% and is in eco mode for the next 4 and three quarters hours.
2026-08-17 18:45:03.076413: - For the next 48 hours there will be no solar generation.
2026-08-17 18:45:03.076430: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:45:03.076464: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 18:45:03.076490:
2026-08-17 18:45:03.121228: Plan calculation took 1.07 seconds
2026-08-17 18:45:03.125517: No high rate period found
2026-08-17 18:45:03.168753: Import threshold used for optimisation was 8.0p
2026-08-17 18:45:03.215191: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 95: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75]
2026-08-17 18:45:03.220835: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 51%, target 100%
2026-08-17 18:45:03.220983: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:45:03.221065: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:45:03.221267: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:45:03.221348: No export window planned
2026-08-17 18:45:03.221447: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:45:03.221475: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:45:03.221579: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:45:03.221721: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:45:03.221772: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:45:03.221824: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:45:03.221906: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.221941: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.221964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.221985: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222026: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222104: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222223: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:45:03.222259: Inverter 0 count register writes 0
2026-08-17 18:45:03.235025: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 18:45:03.239254: Total inverter register writes now 861
2026-08-17 18:45:03.265954: Info: Completed run status Demand
2026-08-17 18:45:03.271360: Info: record_status Demand
2026-08-17 18:45:03.277285: Saved current settings to /config/predbat_config.json
2026-08-17 18:45:03.277540: Compare, best tariff: current metric 104.68p
2026-08-17 18:45:34.369517: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:45:34.369764: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:45:34.369832: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:45:34.370047: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:45:34.370094: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:45:34.370116: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:45:34.370138: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:47:34.572333: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:47:34.572597: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:47:34.572650: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:47:34.572826: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:47:34.572870: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:47:34.572892: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:47:34.572919: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:49:48.806359: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:49:48.806589: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:49:48.806631: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:49:48.806764: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:49:48.806801: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:49:48.806822: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:49:48.806844: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:50:00.907805: --------------- PredBat - update at 2026-08-17 18:50:00+01:00 with clock skew 0 minutes, minutes now 1130
2026-08-17 18:50:00.908669: Saved current settings to /config/predbat_config.json
2026-08-17 18:50:00.908836: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 18:50:00.908880: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:50:00.921103: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:50:00.921212: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:50:00.921389: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:50:00.921848: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:50:00.921986: Predbat mode is set to Control charge & discharge
2026-08-17 18:50:01.108969: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:50:01.109111: Using load_power data to fill gaps in load_today data
2026-08-17 18:50:01.837636: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:50:01.837786: Zero load period starting at 2026-08-17T10:54:00+0100 (476 minutes) for 189 minutes with base value 213.275
2026-08-17 18:50:01.838311: Processing 721 30-minute periods for power integration
2026-08-17 18:50:01.993796: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:50:01.993905: Car charging hold False, threshold 6.0kWh
2026-08-17 18:50:01.993940: Current data so far today: load 9.7kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:50:02.007477: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:50:02.007580: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:50:02.008298: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:50:02.008362: Standing charge is set to 46.63p
2026-08-17 18:50:02.103098: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.103449: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.103763: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.104227: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.104556: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.104827: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.105097: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.105367: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.105618: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:02.107054: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:50:02.107202: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:50:02.114936: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:50:02.115515: Import rates: min 8.0p, max 46.38p, average 27.36p
2026-08-17 18:50:02.165029: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:50:02.165160: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:50:02.166485: High export rate found rates in range 99p to -99p
2026-08-17 18:50:02.261190: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:50:02.261301: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:50:02.272608: Battery level now 8.16kWh, -1hr ago 8.42kWh, at midnight 10.49kWh, battery value change in the last hour -1.81p, change today -16.0p, rate_forward 6.87p
2026-08-17 18:50:02.272970: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.32kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:50:02.391664: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:50:02.391821: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:50:02.497171: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:50:02.524580: Today's load divergence 95.0%, in-day adjustment 89.46%, damping 0.95x, yesterday 68.37% today 95.25% blend 21.53%
2026-08-17 18:50:02.524723: Today's predicted so far 11.69kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.69kWh forecast extra.
2026-08-17 18:50:02.524902: Today's actual load so far 10.94kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 18:50:02.585788: Inverter 0: Type SK Sunsynk
2026-08-17 18:50:02.585891: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:50:02.586108: Reserve min: 7%, battery_min: 7%
2026-08-17 18:50:02.586187: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:50:02.586460: Inverter 0 SoC: 8.02kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 261W, current battery voltage 51.2V, grid power -55W, load power 322W, PV Power 0W
2026-08-17 18:50:02.586610: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:50:02.586692: Inverter 0 scheduled charge enable is False
2026-08-17 18:50:02.586726: Inverter 0 charge windows currently []
2026-08-17 18:50:02.586752: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:50:02.586863: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:50:02.586898: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:50:02.586933: Inverter 0 scheduled discharge enable is False
2026-08-17 18:50:02.587073: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:50:02.587111: Inverter 0 discharge windows currently []
2026-08-17 18:50:02.587134: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:50:02.587155: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:50:02.587172: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:50:02.680328: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:50:02.680415: Plan was last updated on 2026-08-17 18:40:00+01:00 and is now 10.0 minutes old
2026-08-17 18:50:02.680585: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:50:02.680620: Best export window [ ]
2026-08-17 18:50:02.681233: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:50:02.683679: Load divergence over 8.0 hours mean 490.79W, min 361.2W, max 977.4W, std dev 155.63W, divergence 15.85%
2026-08-17 18:50:02.702714: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:50:02.703262: LoadML is_calculating False
2026-08-17 18:50:02.704517: Creating pool of 12 processes to match your CPU count
2026-08-17 18:50:02.844669: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.73p, metric_keep 277.66kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.22kWh, PV 0.0kWh
2026-08-17 18:50:02.960447: Battery has 8.5 hours left - now at 8.02kWh
2026-08-17 18:50:03.006034: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.53p, metric_keep 278.95kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.15kWh, PV 0.0kWh
2026-08-17 18:50:03.093944: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 331.0p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.15kWh, PV 0.0kWh
2026-08-17 18:50:03.164599: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.93p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.22kWh, PV 0.0kWh
2026-08-17 18:50:03.164676: Saving plan best values to HA entities
2026-08-17 18:50:03.325432: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:50:03.330087: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:50:03.335103: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.2kWh, house 0.0kWh, export 0.0kWh, metric 329.93p, metric10 331.0p
2026-08-17 18:50:03.409907: Marginal costs baseline metric (no standing charge): 283.2924
2026-08-17 18:50:03.642916: Marginal energy costs matrix computed: min=5.33 max=30.6
2026-08-17 18:50:03.708300: Rate array import [{'start': 1130, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1130, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:50:03.708852: - Your estimated bill for today is £1.78 and tomorrow is £1.68
2026-08-17 18:50:03.708889: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:50:03.708908: - The battery is currently at 50% and is in eco mode for the next 4 and three quarters hours.
2026-08-17 18:50:03.708923: - For the next 48 hours there will be no solar generation.
2026-08-17 18:50:03.708936: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:50:03.708957: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 18:50:03.708971:
2026-08-17 18:50:03.752322: Plan calculation took 1.07 seconds
2026-08-17 18:50:03.755202: No high rate period found
2026-08-17 18:50:03.795293: Import threshold used for optimisation was 8.0p
2026-08-17 18:50:03.838366: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 95: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75]
2026-08-17 18:50:03.844261: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 18:50:03.844387: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:50:03.844568: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:50:03.844832: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:50:03.844928: No export window planned
2026-08-17 18:50:03.845103: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:50:03.845147: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:50:03.845283: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:50:03.845454: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:50:03.845513: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:50:03.845575: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:50:03.845667: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845741: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845772: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845802: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845829: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845858: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.845977: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.846025: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.846066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.846115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.846151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.846184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:03.846206: Inverter 0 count register writes 0
2026-08-17 18:50:03.860874: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 18:50:03.861108: Recompute is saving previous plan...
2026-08-17 18:50:03.864892: Best charge window [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0% ]
2026-08-17 18:50:03.864982: Best export window [ ]
2026-08-17 18:50:03.865830: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:50:03.869018: Load divergence over 8.0 hours mean 490.79W, min 361.2W, max 977.4W, std dev 155.63W, divergence 15.85%
2026-08-17 18:50:03.886576: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:50:03.886679: LoadML is_calculating False
2026-08-17 18:50:03.886740: Creating pool of 12 processes to match your CPU count
2026-08-17 18:50:03.967145: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 18:50:03.969113: Optimise levels pass started at 2026-08-17 18:50:03
2026-08-17 18:50:03.969171: Optimise all windows, total charge 95 export 1
2026-08-17 18:50:04.354275: >> Region optimisation pass width 960 gives best_metric 382.13p, best_cost 418.81p, best_cycle 47.08kWh, best_import 33.14kWh
2026-08-17 18:50:04.564221: >> Region optimisation pass width 480 gives best_metric 382.13p, best_cost 418.81p, best_cycle 47.08kWh, best_import 33.14kWh
2026-08-17 18:50:04.882609: >> Region optimisation pass width 240 gives best_metric 382.13p, best_cost 418.81p, best_cycle 47.08kWh, best_import 33.14kWh
2026-08-17 18:50:06.039141: >> Region optimisation pass width 120 gives best_metric 381.7p, best_cost 414.63p, best_cycle 47.63kWh, best_import 32.62kWh
2026-08-17 18:50:06.039413: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 57
2026-08-17 18:50:06.039614: Optimise levels pass ended at 2026-08-17 18:50:06, duration 2.1 seconds tried 220 combinations
2026-08-17 18:50:06.039688: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 381.7p, best_keep 0kWh, best_cycle 47.63kWh, best_carbon 0kg, best_import 32.62kWh
2026-08-17 18:50:06.055496: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 18:50:10.160994: Tweak plan optimisation started metric 262.61p, cost 276.38p
2026-08-17 18:50:10.432890: Tweak optimisation finished metric 262.61p, cost 276.38p, metric_keep 0kWh, cycle 26.29kWh, carbon 0kg, import 15.33kWh, changed 8 window(s)
2026-08-17 18:50:10.452192: Swap charge optimisation started metric 262.61p, cost 276.38p, min_improvement_swap 0.1p
2026-08-17 18:50:16.041199: Swap charge optimisation finished metric 262.61p, cost 276.38p
2026-08-17 18:50:16.163159: Raw charge windows [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 100%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:16.163964: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:16.164270: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:16.164451: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:16.201027: Previous plan best metric is 262.83 (cost 275.0) and new plan best metric is 262.61 (cost 276.38)
2026-08-17 18:50:16.201772: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 18:50:16.201919: Plan valid is now true after recompute was False
2026-08-17 18:50:16.229841: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 605.11p, metric_keep 277.08kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.02kWh, PV 0.0kWh
2026-08-17 18:50:16.325677: Battery has 8.5 hours left - now at 8.02kWh
2026-08-17 18:50:16.367511: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.83p, metric_keep 278.37kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.94kWh, PV 0.0kWh
2026-08-17 18:50:16.437632: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 323.75p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.94kWh, PV 0.0kWh
2026-08-17 18:50:16.513036: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 321.63p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.02kWh, PV 0.0kWh
2026-08-17 18:50:16.513116: Saving plan best values to HA entities
2026-08-17 18:50:16.672289: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:50:16.676971: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:50:16.682072: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.16kWh, house 0.0kWh, export 0.0kWh, metric 321.63p, metric10 323.75p
2026-08-17 18:50:16.753877: Marginal costs baseline metric (no standing charge): 275.0002
2026-08-17 18:50:17.018811: Marginal energy costs matrix computed: min=5.33 max=30.6
2026-08-17 18:50:17.085810: Rate array import [{'start': 1130, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1130, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:50:17.086568: - Your estimated bill for today is £1.78 and tomorrow is £1.68
2026-08-17 18:50:17.086619: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:50:17.086643: - The battery is currently at 50% and is in eco mode for the next 4 and three quarters hours.
2026-08-17 18:50:17.086663: - For the next 48 hours there will be no solar generation.
2026-08-17 18:50:17.086694: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:50:17.086730: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 18:50:17.086761:
2026-08-17 18:50:17.140333: Plan calculation took 13.28 seconds
2026-08-17 18:50:17.140645: Inverter 0: Type SK Sunsynk
2026-08-17 18:50:17.140689: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:50:17.140903: Reserve min: 7%, battery_min: 7%
2026-08-17 18:50:17.140979: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:50:17.141296: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 324W, PV Power 0W
2026-08-17 18:50:17.141515: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:50:17.141613: Inverter 0 scheduled charge enable is False
2026-08-17 18:50:17.141648: Inverter 0 charge windows currently []
2026-08-17 18:50:17.141678: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:50:17.141784: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:50:17.141823: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:50:17.141861: Inverter 0 scheduled discharge enable is False
2026-08-17 18:50:17.141994: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:50:17.142063: Inverter 0 discharge windows currently []
2026-08-17 18:50:17.142106: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:50:17.142146: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:50:17.142174: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:50:17.199504: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 18:50:17.199641: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:50:17.199712: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:50:17.199879: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:50:17.200019: No export window planned
2026-08-17 18:50:17.200163: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:50:17.200203: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:50:17.200341: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:50:17.200499: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:50:17.200552: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:50:17.200611: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:50:17.200723: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200815: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200840: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200868: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200893: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.200981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.201026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.201054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.201081: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.201105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.201134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:17.201155: Inverter 0 count register writes 0
2026-08-17 18:50:17.223206: Total inverter register writes now 861
2026-08-17 18:50:17.254910: Info: Completed run status Demand
2026-08-17 18:50:17.260283: Info: record_status Demand
2026-08-17 18:50:17.266721: Saved current settings to /config/predbat_config.json
2026-08-17 18:50:17.266982: Compare, best tariff: current metric 104.68p
2026-08-17 18:50:18.338408: Info: Refresh config entities due to their age of 480.0 minutes
2026-08-17 18:50:18.338535: Refreshing Predbat configuration
2026-08-17 18:50:18.904067: Saved current settings to /config/predbat_config.json
2026-08-17 18:50:18.907143: Validation of apps.yaml was successful
2026-08-17 18:50:18.907297: --------------- PredBat - update at 2026-08-17 18:50:00+01:00 with clock skew 0 minutes, minutes now 1130
2026-08-17 18:50:18.907825: Saved current settings to /config/predbat_config.json
2026-08-17 18:50:18.907980: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.3 minutes
2026-08-17 18:50:18.908043: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:50:18.917186: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:50:18.917280: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:50:18.917411: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:50:18.917811: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:50:18.917923: Predbat mode is set to Control charge & discharge
2026-08-17 18:50:19.067554: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:50:19.067677: Using load_power data to fill gaps in load_today data
2026-08-17 18:50:19.757119: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:50:19.757313: Zero load period starting at 2026-08-17T10:54:00+0100 (476 minutes) for 189 minutes with base value 213.275
2026-08-17 18:50:19.757814: Processing 721 30-minute periods for power integration
2026-08-17 18:50:19.923665: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:50:19.923777: Car charging hold False, threshold 6.0kWh
2026-08-17 18:50:19.923813: Current data so far today: load 9.7kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:50:19.938921: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:50:19.939026: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:50:19.939705: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:50:19.940046: Standing charge is set to 46.63p
2026-08-17 18:50:20.026812: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.027034: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.027188: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.027337: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.027478: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.027616: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.027754: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.027886: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.028070: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:50:20.028921: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:50:20.029015: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:50:20.033389: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:50:20.033696: Import rates: min 8.0p, max 46.38p, average 27.36p
2026-08-17 18:50:20.072744: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:50:20.072842: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:50:20.074073: High export rate found rates in range 99p to -99p
2026-08-17 18:50:20.159790: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:50:20.160480: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:50:20.170479: Battery level now 8.16kWh, -1hr ago 8.42kWh, at midnight 10.49kWh, battery value change in the last hour -1.81p, change today -16.0p, rate_forward 6.87p
2026-08-17 18:50:20.170777: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.32kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:50:20.214335: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:50:20.214463: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:50:20.291385: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:50:20.314532: Today's load divergence 95.0%, in-day adjustment 89.46%, damping 0.95x, yesterday 68.37% today 95.25% blend 21.53%
2026-08-17 18:50:20.314606: Today's predicted so far 11.69kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.69kWh forecast extra.
2026-08-17 18:50:20.314632: Today's actual load so far 10.94kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 18:50:20.341438: Inverter 0: Type SK Sunsynk
2026-08-17 18:50:20.341508: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:50:20.341652: Reserve min: 7%, battery_min: 7%
2026-08-17 18:50:20.341705: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:50:20.341923: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 324W, PV Power 0W
2026-08-17 18:50:20.342062: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:50:20.342136: Inverter 0 scheduled charge enable is False
2026-08-17 18:50:20.342159: Inverter 0 charge windows currently []
2026-08-17 18:50:20.342180: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:50:20.342266: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:50:20.342295: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:50:20.342323: Inverter 0 scheduled discharge enable is False
2026-08-17 18:50:20.342421: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:50:20.342451: Inverter 0 discharge windows currently []
2026-08-17 18:50:20.342469: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:50:20.342484: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:50:20.342501: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:50:20.400588: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:50:20.400665: Will recompute the plan as it is invalid
2026-08-17 18:50:20.400752: Recompute is saving previous plan...
2026-08-17 18:50:20.404238: Best charge window [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 0%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 0%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 0%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 0%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 0%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 0%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 0%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 0%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 0% ]
2026-08-17 18:50:20.404322: Best export window [ ]
2026-08-17 18:50:20.405165: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:50:20.408673: Load divergence over 8.0 hours mean 490.79W, min 361.2W, max 977.4W, std dev 155.63W, divergence 15.85%
2026-08-17 18:50:20.429027: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:50:20.429197: LoadML is_calculating False
2026-08-17 18:50:20.429270: Creating pool of 12 processes to match your CPU count
2026-08-17 18:50:20.508586: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 18:50:20.512578: Optimise levels pass started at 2026-08-17 18:50:20
2026-08-17 18:50:20.512778: Optimise all windows, total charge 95 export 1
2026-08-17 18:50:20.871556: >> Region optimisation pass width 960 gives best_metric 382.27p, best_cost 418.95p, best_cycle 47.1kWh, best_import 33.16kWh
2026-08-17 18:50:21.096580: >> Region optimisation pass width 480 gives best_metric 382.27p, best_cost 418.95p, best_cycle 47.1kWh, best_import 33.16kWh
2026-08-17 18:50:21.412976: >> Region optimisation pass width 240 gives best_metric 382.27p, best_cost 418.95p, best_cycle 47.1kWh, best_import 33.16kWh
2026-08-17 18:50:22.575235: >> Region optimisation pass width 120 gives best_metric 381.83p, best_cost 414.77p, best_cycle 47.65kWh, best_import 32.63kWh
2026-08-17 18:50:22.575577: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 57
2026-08-17 18:50:22.575696: Optimise levels pass ended at 2026-08-17 18:50:22, duration 2.1 seconds tried 220 combinations
2026-08-17 18:50:22.575807: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 381.83p, best_keep 0kWh, best_cycle 47.65kWh, best_carbon 0kg, best_import 32.63kWh
2026-08-17 18:50:22.595677: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [0, 0, 0, 0, 0, 0, 0, 0, 0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 18:50:26.735647: Tweak plan optimisation started metric 262.75p, cost 276.52p
2026-08-17 18:50:27.007730: Tweak optimisation finished metric 262.75p, cost 276.52p, metric_keep 0kWh, cycle 26.3kWh, carbon 0kg, import 15.35kWh, changed 8 window(s)
2026-08-17 18:50:27.029395: Swap charge optimisation started metric 262.75p, cost 276.52p, min_improvement_swap 0.1p
2026-08-17 18:50:32.131234: Swap charge optimisation finished metric 262.75p, cost 276.52p
2026-08-17 18:50:32.273438: Raw charge windows [ 17-08 19:00:00 - 17-08 19:30:00 @ 33.75p 0%, 17-08 19:30:00 - 17-08 20:00:00 @ 33.75p 0%, 17-08 20:00:00 - 17-08 20:30:00 @ 33.75p 0%, 17-08 20:30:00 - 17-08 21:00:00 @ 33.75p 0%, 17-08 21:00:00 - 17-08 21:30:00 @ 33.75p 0%, 17-08 21:30:00 - 17-08 22:00:00 @ 33.75p 0%, 17-08 22:00:00 - 17-08 22:30:00 @ 33.75p 0%, 17-08 22:30:00 - 17-08 23:00:00 @ 33.75p 0%, 17-08 23:00:00 - 17-08 23:30:00 @ 33.75p 0%, 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 91%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 91%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 91%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 33.75p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 33.75p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 33.75p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 33.75p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 33.75p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 33.75p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 33.75p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 33.75p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 33.75p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 33.75p 0%, 18-08 10:30:00 - 18-08 11:00:00 @ 33.75p 0%, 18-08 11:00:00 - 18-08 11:30:00 @ 33.75p 0%, 18-08 11:30:00 - 18-08 12:00:00 @ 33.75p 0%, 18-08 12:00:00 - 18-08 12:30:00 @ 33.75p 0%, 18-08 12:30:00 - 18-08 13:00:00 @ 33.75p 0%, 18-08 13:00:00 - 18-08 13:30:00 @ 33.75p 0%, 18-08 13:30:00 - 18-08 14:00:00 @ 33.75p 0%, 18-08 14:00:00 - 18-08 14:30:00 @ 33.75p 0%, 18-08 14:30:00 - 18-08 15:00:00 @ 33.75p 0%, 18-08 15:00:00 - 18-08 15:30:00 @ 33.75p 0%, 18-08 15:30:00 - 18-08 16:00:00 @ 33.75p 0%, 18-08 16:00:00 - 18-08 16:30:00 @ 33.75p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 33.75p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 33.75p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 33.75p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 33.75p 0%, 18-08 18:30:00 - 18-08 19:00:00 @ 33.75p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 33.75p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 33.75p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 33.75p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 33.75p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 33.75p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.75p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 33.75p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 33.75p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 33.75p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 33.75p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 33.75p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 33.75p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 33.75p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 33.75p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 33.75p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 33.75p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 33.75p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 33.75p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 33.75p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 33.75p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 33.75p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 33.75p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 33.75p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 33.75p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 33.75p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 33.75p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 33.75p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 33.75p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 33.75p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 33.75p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 33.75p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 33.75p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 33.75p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 33.75p 100%, 19-08 18:00:00 - 19-08 18:30:00 @ 33.75p 100%, 19-08 18:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:32.274387: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:32.274624: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:32.274830: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 19:00:00 @ 33.75p 100% ] reserve 1.12
2026-08-17 18:50:32.313419: Previous plan best metric is 262.97 (cost 275.14) and new plan best metric is 262.75 (cost 276.52)
2026-08-17 18:50:32.313637: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 18:50:32.313778: Plan valid is now true after recompute was False
2026-08-17 18:50:32.343821: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 605.23p, metric_keep 277.15kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.02kWh, PV 0.0kWh
2026-08-17 18:50:32.450252: Battery has 8.42 hours left - now at 8.0kWh
2026-08-17 18:50:32.487214: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.95p, metric_keep 278.43kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.94kWh, PV 0.0kWh
2026-08-17 18:50:32.556437: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 323.88p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.94kWh, PV 0.0kWh
2026-08-17 18:50:32.626744: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 321.77p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.02kWh, PV 0.0kWh
2026-08-17 18:50:32.626820: Saving plan best values to HA entities
2026-08-17 18:50:32.781429: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:50:32.786218: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:50:32.790540: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.18kWh, house 0.0kWh, export 0.0kWh, metric 321.77p, metric10 323.88p
2026-08-17 18:50:32.854739: Marginal costs baseline metric (no standing charge): 275.1376
2026-08-17 18:50:33.088926: Marginal energy costs matrix computed: min=5.33 max=30.6
2026-08-17 18:50:33.151102: Rate array import [{'start': 1130, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1130, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:50:33.151673: - Your estimated bill for today is £1.78 and tomorrow is £1.69
2026-08-17 18:50:33.151714: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:50:33.151733: - The battery is currently at 50% and is in eco mode for the next 4 and three quarters hours.
2026-08-17 18:50:33.151749: - For the next 48 hours there will be no solar generation.
2026-08-17 18:50:33.151769: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:50:33.151795: - Your next charge slot will be in 4 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 18:50:33.151822:
2026-08-17 18:50:33.195875: Plan calculation took 12.80 seconds
2026-08-17 18:50:33.200232: Saved plan to storage
2026-08-17 18:50:33.203771: No high rate period found
2026-08-17 18:50:33.254504: Import threshold used for optimisation was 8.0p
2026-08-17 18:50:33.314940: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 95: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75]
2026-08-17 18:50:33.322459: Inverter 0: Type SK Sunsynk
2026-08-17 18:50:33.322542: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:50:33.322835: Reserve min: 7%, battery_min: 7%
2026-08-17 18:50:33.322949: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:50:33.323486: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 324W, PV Power 0W
2026-08-17 18:50:33.323780: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:50:33.323980: Inverter 0 scheduled charge enable is False
2026-08-17 18:50:33.324057: Inverter 0 charge windows currently []
2026-08-17 18:50:33.324115: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:50:33.324318: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:50:33.324366: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:50:33.324421: Inverter 0 scheduled discharge enable is False
2026-08-17 18:50:33.324621: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:50:33.324667: Inverter 0 discharge windows currently []
2026-08-17 18:50:33.324693: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:50:33.324735: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:50:33.324771: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:50:33.376861: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 18:50:33.377002: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:50:33.377110: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:50:33.377346: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:50:33.377436: No export window planned
2026-08-17 18:50:33.377615: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:50:33.377658: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:50:33.377836: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:50:33.378049: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:50:33.378108: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:50:33.378191: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:50:33.378315: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378405: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378457: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378515: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378576: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378624: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378736: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.378983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.379047: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:50:33.379121: Inverter 0 count register writes 0
2026-08-17 18:50:33.400192: Total inverter register writes now 861
2026-08-17 18:50:33.431750: Info: Completed run status Demand
2026-08-17 18:50:33.437295: Info: record_status Demand
2026-08-17 18:50:33.443360: Saved current settings to /config/predbat_config.json
2026-08-17 18:50:33.443628: Compare, best tariff: current metric 104.68p
2026-08-17 18:50:33.508677: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-17 18:50:35.131958: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 18:50:36.037381: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:50:36.037594: Zero load period starting at 2026-08-17T10:54:00+0100 (476 minutes) for 189 minutes with base value 409.575
2026-08-17 18:50:36.038093: Processing 1345 30-minute periods for power integration
2026-08-17 18:50:36.125713: ML Component: Car charging hold False, car energy reported load False
2026-08-17 18:50:36.206993: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:50:36.294110: ML Temperature data points: 49271
2026-08-17 18:50:36.508896: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 18:50:36.543269: ML Component: Data fetch completed, load data age 59.0 days, 17050 data points
2026-08-17 18:50:36.543683: ML Component: Starting fine-tune training (2h interval), model age is 2.0282448944444447 hours
2026-08-17 18:50:36.543717: ML Component: Doing training...
2026-08-17 18:50:36.556100: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-17 18:50:36.556187: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.2 days)
2026-08-17 18:50:36.604787: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-17 18:50:36.604884: ML Predictor: Starting initial training with 30 epochs
2026-08-17 18:50:37.098315: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 18:50:41.856573: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 18:50:41.916259: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7268 std=4.5888) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1925 std=0.5271)
2026-08-17 18:50:56.189347: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0070 val_mae=0.0034 kWh val_bias=+0.0020 kWh (+2.2%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-17 18:51:04.313133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:51:04.313625: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:51:04.313779: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:51:04.314098: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:51:04.314243: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:51:04.314397: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:51:04.314527: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:51:11.147585: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0084 val_mae=0.0039 kWh val_bias=-0.0030 kWh (-3.4%) combined=0.0038 kWh ema_combined=0.0035 kWh
2026-08-17 18:51:24.134901: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0078 val_mae=0.0030 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0029 kWh
2026-08-17 18:51:36.676812: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0087 val_mae=0.0032 kWh val_bias=+0.0011 kWh (+1.2%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-17 18:51:47.478314: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0084 val_mae=0.0031 kWh val_bias=+0.0014 kWh (+1.6%) combined=0.0026 kWh ema_combined=0.0027 kWh
2026-08-17 18:52:00.945430: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0083 val_mae=0.0035 kWh val_bias=-0.0021 kWh (-2.4%) combined=0.0033 kWh ema_combined=0.0029 kWh
2026-08-17 18:52:14.594675: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0103 val_mae=0.0036 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-17 18:52:27.697236: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0106 val_mae=0.0042 kWh val_bias=+0.0014 kWh (+1.5%) combined=0.0025 kWh ema_combined=0.0026 kWh
2026-08-17 18:52:39.854912: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0104 val_mae=0.0039 kWh val_bias=+0.0007 kWh (+0.7%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-17 18:52:51.655824: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0033 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-17 18:53:04.494041: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0081 val_mae=0.0033 kWh val_bias=+0.0004 kWh (+0.4%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-17 18:53:17.146271: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0084 val_mae=0.0033 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-17 18:53:18.695478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:53:18.696639: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:53:18.696698: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:53:18.696962: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:53:18.697014: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:53:18.697099: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:53:18.697280: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:53:29.691839: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0075 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-17 18:53:41.650694: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0065 val_mae=0.0029 kWh val_bias=-0.0014 kWh (-1.5%) combined=0.0025 kWh ema_combined=0.0021 kWh
2026-08-17 18:53:54.271797: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0062 val_mae=0.0032 kWh val_bias=-0.0021 kWh (-2.4%) combined=0.0030 kWh ema_combined=0.0024 kWh
2026-08-17 18:54:07.624059: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0063 val_mae=0.0037 kWh val_bias=-0.0028 kWh (-3.2%) combined=0.0034 kWh ema_combined=0.0027 kWh
2026-08-17 18:54:20.769106: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0063 val_mae=0.0025 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-17 18:54:33.577641: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0058 val_mae=0.0028 kWh val_bias=+0.0012 kWh (+1.4%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-17 18:54:46.053372: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0058 val_mae=0.0027 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-17 18:55:00.059437: --------------- PredBat - update at 2026-08-17 18:55:00+01:00 with clock skew 0 minutes, minutes now 1135
2026-08-17 18:55:00.060202: Saved current settings to /config/predbat_config.json
2026-08-17 18:55:00.060368: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 18:55:00.060471: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 18:55:00.076195: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 18:55:00.076317: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 18:55:00.076495: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 18:55:00.077003: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 18:55:00.077132: Predbat mode is set to Control charge & discharge
2026-08-17 18:55:00.485554: Found 21602 load_today datapoints going back 28 days
2026-08-17 18:55:00.485708: Using load_power data to fill gaps in load_today data
2026-08-17 18:55:01.857449: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 18:55:01.857729: Zero load period starting at 2026-08-17T10:54:00+0100 (481 minutes) for 189 minutes with base value 213.25
2026-08-17 18:55:01.858393: Processing 721 30-minute periods for power integration
2026-08-17 18:55:02.264965: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 18:55:02.265195: Car charging hold False, threshold 6.0kWh
2026-08-17 18:55:02.265306: Current data so far today: load 9.7kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 18:55:02.285797: Car 0 using Octopus Intelligent is unplugged
2026-08-17 18:55:02.286331: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 18:55:02.287070: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 18:55:02.287152: Standing charge is set to 46.63p
2026-08-17 18:55:02.362706: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0055 val_mae=0.0025 kWh val_bias=+0.0012 kWh (+1.3%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-17 18:55:02.490150: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.490477: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.491240: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.491418: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.491600: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.491751: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.491931: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.492080: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.492234: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 18:55:02.493111: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 18:55:02.493226: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 18:55:02.497820: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 18:55:02.498129: Import rates: min 8.0p, max 46.38p, average 27.34p
2026-08-17 18:55:02.566501: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 18:55:02.566959: Rate thresholds (for charge/export) are import 45.88p (0.0p), export -0.1p (0.0p)
2026-08-17 18:55:02.568958: High export rate found rates in range 99p to -99p
2026-08-17 18:55:02.823418: Low Import rate found rates in range 8.0p to 33.75p
2026-08-17 18:55:02.823578: Car 0 on Octopus Intelligent, no active plan
2026-08-17 18:55:02.835997: Battery level now 8.02kWh, -1hr ago 8.42kWh, at midnight 10.49kWh, battery value change in the last hour -2.8p, change today -16.99p, rate_forward 6.87p
2026-08-17 18:55:02.836636: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 18:55:02.940152: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 18:55:02.940327: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 18:55:03.095157: Using weighted-bucket historical load forecast over 14 days
2026-08-17 18:55:03.126469: Today's load divergence 94.82%, in-day adjustment 89.43%, damping 0.95x, yesterday 68.37% today 95.08% blend 21.18%
2026-08-17 18:55:03.127248: Today's predicted so far 11.72kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 11.72kWh forecast extra.
2026-08-17 18:55:03.127301: Today's actual load so far 10.94kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 18:55:03.172563: Inverter 0: Type SK Sunsynk
2026-08-17 18:55:03.172656: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 18:55:03.172831: Reserve min: 7%, battery_min: 7%
2026-08-17 18:55:03.172904: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 18:55:03.173151: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 269W, current battery voltage 51.2V, grid power -55W, load power 331W, PV Power 0W
2026-08-17 18:55:03.173324: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:55:03.173416: Inverter 0 scheduled charge enable is False
2026-08-17 18:55:03.173453: Inverter 0 charge windows currently []
2026-08-17 18:55:03.173480: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 18:55:03.173626: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:55:03.173671: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:55:03.173707: Inverter 0 scheduled discharge enable is False
2026-08-17 18:55:03.173837: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:55:03.173876: Inverter 0 discharge windows currently []
2026-08-17 18:55:03.173899: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:55:03.173937: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:55:03.173969: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:55:03.339893: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 18:55:03.340053: Plan was last updated on 2026-08-17 18:50:00+01:00 and is now 5.0 minutes old
2026-08-17 18:55:03.340339: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 18:55:03.340391: Best export window [ ]
2026-08-17 18:55:03.341687: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 18:55:03.346467: Load divergence over 8.0 hours mean 490.62W, min 344.4W, max 1032.6W, std dev 166.07W, divergence 16.92%
2026-08-17 18:55:03.387973: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 18:55:03.388200: LoadML is_calculating True
2026-08-17 18:55:03.388250: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 18:55:03.476592: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 605.86p, metric_keep 277.19kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.08kWh, PV 0.0kWh
2026-08-17 18:55:03.722064: Battery has 8.42 hours left - now at 8.0kWh
2026-08-17 18:55:03.823106: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.66p, metric_keep 278.49kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.0kWh, PV 0.0kWh
2026-08-17 18:55:03.980601: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 327.06p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.0kWh, PV 0.0kWh
2026-08-17 18:55:04.132914: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 325.57p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.08kWh, PV 0.0kWh
2026-08-17 18:55:04.133110: Saving plan best values to HA entities
2026-08-17 18:55:04.518882: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 18:55:04.525505: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 18:55:04.531383: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.65kWh, house 0kWh, export 0.0kWh, metric 325.57p, metric10 327.06p
2026-08-17 18:55:04.646915: Marginal costs baseline metric (no standing charge): 278.9381
2026-08-17 18:55:04.708668: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 18:55:04.962330: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 18:55:05.189706: Marginal energy costs matrix computed: min=4.67 max=30.62
2026-08-17 18:55:05.367551: Rate array import [{'start': 1135, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p - 46.4p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1135, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 18:55:05.368873: - Your estimated bill for today is £1.78 and tomorrow is £1.68
2026-08-17 18:55:05.369089: - Import rates are very expensive (33.8p - 46.4p) for the next 4 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 18:55:05.369483: - The battery is currently at 50% and is in eco mode for the next 4 and a half hours.
2026-08-17 18:55:05.369575: - For the next 48 hours there will be no solar generation.
2026-08-17 18:55:05.369665: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 18:55:05.369759: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-17 18:55:05.369860:
2026-08-17 18:55:05.403035: Plan calculation took 2.06 seconds
2026-08-17 18:55:05.406312: No high rate period found
2026-08-17 18:55:05.482532: Import threshold used for optimisation was 8.0p
2026-08-17 18:55:05.555647: Low import rate windows [0: 08-17 19:00:00 - 08-17 19:30:00 @ 33.75, 1: 08-17 19:30:00 - 08-17 20:00:00 @ 33.75, 2: 08-17 20:00:00 - 08-17 20:30:00 @ 33.75, 3: 08-17 20:30:00 - 08-17 21:00:00 @ 33.75, 4: 08-17 21:00:00 - 08-17 21:30:00 @ 33.75, 5: 08-17 21:30:00 - 08-17 22:00:00 @ 33.75, 6: 08-17 22:00:00 - 08-17 22:30:00 @ 33.75, 7: 08-17 22:30:00 - 08-17 23:00:00 @ 33.75, 8: 08-17 23:00:00 - 08-17 23:30:00 @ 33.75, 9: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 10: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 11: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 12: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 13: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 14: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 15: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 16: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 17: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 18: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 19: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 20: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 21: 08-18 05:30:00 - 08-18 06:00:00 @ 33.75, 22: 08-18 06:00:00 - 08-18 06:30:00 @ 33.75, 23: 08-18 06:30:00 - 08-18 07:00:00 @ 33.75, 24: 08-18 07:00:00 - 08-18 07:30:00 @ 33.75, 25: 08-18 07:30:00 - 08-18 08:00:00 @ 33.75, 26: 08-18 08:00:00 - 08-18 08:30:00 @ 33.75, 27: 08-18 08:30:00 - 08-18 09:00:00 @ 33.75, 28: 08-18 09:00:00 - 08-18 09:30:00 @ 33.75, 29: 08-18 09:30:00 - 08-18 10:00:00 @ 33.75, 30: 08-18 10:00:00 - 08-18 10:30:00 @ 33.75, 31: 08-18 10:30:00 - 08-18 11:00:00 @ 33.75, 32: 08-18 11:00:00 - 08-18 11:30:00 @ 33.75, 33: 08-18 11:30:00 - 08-18 12:00:00 @ 33.75, 34: 08-18 12:00:00 - 08-18 12:30:00 @ 33.75, 35: 08-18 12:30:00 - 08-18 13:00:00 @ 33.75, 36: 08-18 13:00:00 - 08-18 13:30:00 @ 33.75, 37: 08-18 13:30:00 - 08-18 14:00:00 @ 33.75, 38: 08-18 14:00:00 - 08-18 14:30:00 @ 33.75, 39: 08-18 14:30:00 - 08-18 15:00:00 @ 33.75, 40: 08-18 15:00:00 - 08-18 15:30:00 @ 33.75, 41: 08-18 15:30:00 - 08-18 16:00:00 @ 33.75, 42: 08-18 16:00:00 - 08-18 16:30:00 @ 33.75, 43: 08-18 16:30:00 - 08-18 17:00:00 @ 33.75, 44: 08-18 17:00:00 - 08-18 17:30:00 @ 33.75, 45: 08-18 17:30:00 - 08-18 18:00:00 @ 33.75, 46: 08-18 18:00:00 - 08-18 18:30:00 @ 33.75, 47: 08-18 18:30:00 - 08-18 19:00:00 @ 33.75, 48: 08-18 19:00:00 - 08-18 19:30:00 @ 33.75, 49: 08-18 19:30:00 - 08-18 20:00:00 @ 33.75, 50: 08-18 20:00:00 - 08-18 20:30:00 @ 33.75, 51: 08-18 20:30:00 - 08-18 21:00:00 @ 33.75, 52: 08-18 21:00:00 - 08-18 21:30:00 @ 33.75, 53: 08-18 21:30:00 - 08-18 22:00:00 @ 33.75, 54: 08-18 22:00:00 - 08-18 22:30:00 @ 33.75, 55: 08-18 22:30:00 - 08-18 23:00:00 @ 33.75, 56: 08-18 23:00:00 - 08-18 23:30:00 @ 33.75, 57: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 58: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 59: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 60: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 61: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 62: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 63: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 64: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 65: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 66: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 67: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 68: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 69: 08-19 05:30:00 - 08-19 06:00:00 @ 33.75, 70: 08-19 06:00:00 - 08-19 06:30:00 @ 33.75, 71: 08-19 06:30:00 - 08-19 07:00:00 @ 33.75, 72: 08-19 07:00:00 - 08-19 07:30:00 @ 33.75, 73: 08-19 07:30:00 - 08-19 08:00:00 @ 33.75, 74: 08-19 08:00:00 - 08-19 08:30:00 @ 33.75, 75: 08-19 08:30:00 - 08-19 09:00:00 @ 33.75, 76: 08-19 09:00:00 - 08-19 09:30:00 @ 33.75, 77: 08-19 09:30:00 - 08-19 10:00:00 @ 33.75, 78: 08-19 10:00:00 - 08-19 10:30:00 @ 33.75, 79: 08-19 10:30:00 - 08-19 11:00:00 @ 33.75, 80: 08-19 11:00:00 - 08-19 11:30:00 @ 33.75, 81: 08-19 11:30:00 - 08-19 12:00:00 @ 33.75, 82: 08-19 12:00:00 - 08-19 12:30:00 @ 33.75, 83: 08-19 12:30:00 - 08-19 13:00:00 @ 33.75, 84: 08-19 13:00:00 - 08-19 13:30:00 @ 33.75, 85: 08-19 13:30:00 - 08-19 14:00:00 @ 33.75, 86: 08-19 14:00:00 - 08-19 14:30:00 @ 33.75, 87: 08-19 14:30:00 - 08-19 15:00:00 @ 33.75, 88: 08-19 15:00:00 - 08-19 15:30:00 @ 33.75, 89: 08-19 15:30:00 - 08-19 16:00:00 @ 33.75, 90: 08-19 16:00:00 - 08-19 16:30:00 @ 33.75, 91: 08-19 16:30:00 - 08-19 17:00:00 @ 33.75, 92: 08-19 17:00:00 - 08-19 17:30:00 @ 33.75, 93: 08-19 17:30:00 - 08-19 18:00:00 @ 33.75, 94: 08-19 18:00:00 - 08-19 18:30:00 @ 33.75, 95: 08-19 18:30:00 - 08-19 19:00:00 @ 33.75]
2026-08-17 18:55:05.570235: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 18:55:05.570380: Inverter 0 disabled charge window while waiting for schedule (now 08-17 18:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 18:55:05.570452: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:55:05.570623: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:55:05.570698: No export window planned
2026-08-17 18:55:05.570800: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 18:55:05.570856: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 18:55:05.570988: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 18:55:05.571171: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 18:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 18:55:05.571277: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 18:55:05.571355: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 18:55:05.571477: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.571541: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.571587: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.571642: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.571684: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.571738: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.571783: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.571940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.572087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.572211: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.572320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.572420: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.572506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.572589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 18:55:05.572662: Inverter 0 count register writes 0
2026-08-17 18:55:05.598739: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 18:55:05.605645: Total inverter register writes now 861
2026-08-17 18:55:05.668689: Info: Completed run status Demand
2026-08-17 18:55:05.685539: Info: record_status Demand
2026-08-17 18:55:05.699386: Saved current settings to /config/predbat_config.json
2026-08-17 18:55:05.699645: Compare, best tariff: current metric 104.68p
2026-08-17 18:55:19.741517: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0020 kWh
2026-08-17 18:55:32.632649: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0053 val_mae=0.0025 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-17 18:55:45.760996: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0052 val_mae=0.0020 kWh val_bias=+0.0006 kWh (+0.7%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-17 18:55:48.874226: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:55:48.874492: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:55:48.874619: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:55:48.874888: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:55:48.874940: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:55:48.875017: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:55:48.875080: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:55:58.327454: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0011 kWh ema_combined=0.0016 kWh
2026-08-17 18:56:04.398084: Info: HAHistory: Pruning history data started.
2026-08-17 18:56:04.400749: Info: HAHistory: Pruning history data completed.
2026-08-17 18:56:11.337653: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0051 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 18:56:25.705958: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0054 val_mae=0.0028 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0023 kWh ema_combined=0.0017 kWh
2026-08-17 18:56:38.419129: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0046 val_mae=0.0019 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 18:56:50.952992: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0048 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-17 18:57:03.537624: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-17 18:57:16.434494: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0044 val_mae=0.0019 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 18:57:16.435410: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-17 18:57:16.435751: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-17 18:57:17.519723: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0004 kWh (-0.5%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 18:57:17.542207: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0020 kWh
2026-08-17 18:57:17.642781: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-17 18:57:17.643003: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 18:57:18.196298: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 18:57:23.328615: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 18:57:23.387166: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7287 std=4.5873) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-17 18:57:23.483058: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 18:57:23.499220: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 18:57:23.552672: ML Predictor: Baseline (pre-finetune) val_mae=0.0024 kWh val_bias=-0.0001 kWh
2026-08-17 18:57:39.647964: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0084 val_mae=0.0036 kWh val_bias=+0.0014 kWh (+1.8%) combined=0.0036 kWh ema_combined=0.0036 kWh
2026-08-17 18:57:49.508081: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 18:57:49.508333: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 18:57:49.508380: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 18:57:49.508521: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 18:57:49.508565: Note: Inverter does not support discharge freeze - disabled
2026-08-17 18:57:49.508587: Note: Inverter does not support charge freeze - disabled
2026-08-17 18:57:49.508682: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 18:57:51.527887: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0090 val_mae=0.0046 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0030 kWh ema_combined=0.0034 kWh
2026-08-17 18:58:04.464448: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0113 val_mae=0.0047 kWh val_bias=+0.0005 kWh (+0.7%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-17 18:58:18.991325: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0127 val_mae=0.0040 kWh val_bias=+0.0016 kWh (+2.1%) combined=0.0031 kWh ema_combined=0.0033 kWh
2026-08-17 18:58:31.017266: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0089 val_mae=0.0031 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0028 kWh
2026-08-17 18:58:43.606755: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0102 val_mae=0.0035 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-17 18:58:56.691843: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0087 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-17 18:59:08.655393: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0093 val_mae=0.0029 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0015 kWh ema_combined=0.0021 kWh
2026-08-17 18:59:21.193223: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0087 val_mae=0.0028 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-17 18:59:35.465702: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0077 val_mae=0.0032 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-17 18:59:35.465935: ML Predictor: Early stopping at epoch 10
2026-08-17 18:59:35.466910: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 18:59:35.467161: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 18:59:36.550737: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=-0.0000 kWh (-0.0%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 18:59:36.555956: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0024 kWh
2026-08-17 18:59:36.628501: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-17 18:59:36.628739: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 18:59:37.288978: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 18:59:42.428792: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 18:59:42.484835: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7251 std=4.5850) import_rate(mean=16.7072 std=8.3577) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-17 18:59:42.574382: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 18:59:42.589666: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 18:59:42.616354: ML Predictor: Baseline (pre-finetune) val_mae=0.0028 kWh val_bias=+0.0001 kWh
2026-08-17 18:59:55.746236: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0089 val_mae=0.0032 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-17 19:00:00.328670: --------------- PredBat - update at 2026-08-17 19:00:00+01:00 with clock skew 0 minutes, minutes now 1140
2026-08-17 19:00:00.329784: Saved current settings to /config/predbat_config.json
2026-08-17 19:00:00.329954: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 19:00:00.330007: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 19:00:00.346963: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:00:00.347157: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:00:00.347472: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:00:00.348185: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:00:00.348403: Predbat mode is set to Control charge & discharge
2026-08-17 19:00:00.793628: Found 21602 load_today datapoints going back 27 days
2026-08-17 19:00:00.793805: Using load_power data to fill gaps in load_today data
2026-08-17 19:00:02.096938: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:00:02.104861: Zero load period starting at 2026-08-17T10:54:00+0100 (486 minutes) for 189 minutes with base value 213.225
2026-08-17 19:00:02.105851: Processing 721 30-minute periods for power integration
2026-08-17 19:00:02.466705: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:00:02.466892: Car charging hold False, threshold 6.0kWh
2026-08-17 19:00:02.466990: Current data so far today: load 9.83kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:00:02.494817: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:00:02.495070: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:00:02.496299: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:00:02.496517: Standing charge is set to 46.63p
2026-08-17 19:00:02.760496: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.788667: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.789200: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.789710: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.790192: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.790668: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.791130: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.791589: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.792071: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:00:02.794654: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:00:02.794943: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:00:02.803167: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:00:02.803686: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:00:02.914217: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:00:02.915075: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:00:02.916463: High export rate found rates in range 99p to -99p
2026-08-17 19:00:02.946522: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:00:02.946648: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:00:02.960863: Battery level now 8.02kWh, -1hr ago 8.32kWh, at midnight 10.49kWh, battery value change in the last hour -2.09p, change today -16.99p, rate_forward 6.87p
2026-08-17 19:00:02.961227: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:00:03.067403: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 19:00:03.067592: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:00:03.344439: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:00:03.396316: Today's load divergence 94.92%, in-day adjustment 89.59%, damping 0.95x, yesterday 68.37% today 95.17% blend 20.83%
2026-08-17 19:00:03.396435: Today's predicted so far 11.84kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 11.84kWh forecast extra.
2026-08-17 19:00:03.396469: Today's actual load so far 11.08kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 19:00:03.460858: Inverter 0: Type SK Sunsynk
2026-08-17 19:00:03.460946: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:00:03.461117: Reserve min: 7%, battery_min: 7%
2026-08-17 19:00:03.461187: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:00:03.461445: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 269W, current battery voltage 51.2V, grid power -54W, load power 330W, PV Power 0W
2026-08-17 19:00:03.461596: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:00:03.461674: Inverter 0 scheduled charge enable is False
2026-08-17 19:00:03.461713: Inverter 0 charge windows currently []
2026-08-17 19:00:03.461741: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:00:03.461845: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:00:03.461876: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:00:03.461910: Inverter 0 scheduled discharge enable is False
2026-08-17 19:00:03.462027: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:00:03.462067: Inverter 0 discharge windows currently []
2026-08-17 19:00:03.462090: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:00:03.462109: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:00:03.462127: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:00:03.586133: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:00:03.586397: Plan was last updated on 2026-08-17 18:50:00+01:00 and is now 10.0 minutes old
2026-08-17 19:00:03.586694: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:00:03.586814: Best export window [ ]
2026-08-17 19:00:03.587730: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:00:03.591345: Load divergence over 8.0 hours mean 490.58W, min 353.4W, max 1063.8W, std dev 153.45W, divergence 15.64%
2026-08-17 19:00:03.647305: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:00:03.647466: LoadML is_calculating True
2026-08-17 19:00:03.647501: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 19:00:03.758309: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.16p, metric_keep 277.38kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.26kWh, PV 0.0kWh
2026-08-17 19:00:04.043720: Battery has 8.42 hours left - now at 8.0kWh
2026-08-17 19:00:04.142360: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 627.94p, metric_keep 278.68kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.19kWh, PV 0.0kWh
2026-08-17 19:00:04.260356: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 330.36p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.19kWh, PV 0.0kWh
2026-08-17 19:00:04.407707: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 329.42p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.26kWh, PV 0.0kWh
2026-08-17 19:00:04.407885: Saving plan best values to HA entities
2026-08-17 19:00:04.789768: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:00:04.796989: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 19:00:04.803844: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.14kWh, house 0.0kWh, export 0.0kWh, metric 329.42p, metric10 330.36p
2026-08-17 19:00:04.913694: Marginal costs baseline metric (no standing charge): 282.7829
2026-08-17 19:00:05.578951: Marginal energy costs matrix computed: min=4.0 max=30.59
2026-08-17 19:00:05.779274: Rate array import [{'start': 1140, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1140, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:00:05.780377: - Your estimated bill for today is £1.77 and tomorrow is £1.68
2026-08-17 19:00:05.780442: - Import rates are very expensive (33.8p) for the next 4 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:00:05.780740: - The battery is currently at 50% and is in eco mode for the next 4 and a half hours.
2026-08-17 19:00:05.780818: - For the next 48 hours there will be no solar generation.
2026-08-17 19:00:05.780904: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:00:05.780978: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-17 19:00:05.781058:
2026-08-17 19:00:05.875867: Plan calculation took 2.29 seconds
2026-08-17 19:00:05.895596: No high rate period found
2026-08-17 19:00:05.965556: Import threshold used for optimisation was 8.0p
2026-08-17 19:00:06.088880: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:00:06.105369: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 19:00:06.105534: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:00:06.105967: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:00:06.106307: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:00:06.106494: No export window planned
2026-08-17 19:00:06.106740: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:00:06.106801: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:00:06.107122: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:00:06.107395: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:00:06.107466: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:00:06.107587: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:00:06.107742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.107802: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.107960: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108066: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108131: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108391: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.108966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.109025: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.109161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:06.109212: Inverter 0 count register writes 0
2026-08-17 19:00:06.159825: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 19:00:06.160057: Recompute is saving previous plan...
2026-08-17 19:00:06.161395: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 19:00:06.161485: Best export window [ ]
2026-08-17 19:00:06.162772: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:00:06.167691: Load divergence over 8.0 hours mean 490.58W, min 353.4W, max 1063.8W, std dev 153.45W, divergence 15.64%
2026-08-17 19:00:06.229427: Calculating data from yesterday for savings calculation
2026-08-17 19:00:06.258540: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 19:00:06.305814: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 19:00:06.325869: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 19:00:06.377998: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 19:00:06.433248: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 19:00:06.596210: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 561.94kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 19:00:06.601144: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 19:00:06.636950: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:00:06.637215: LoadML is_calculating True
2026-08-17 19:00:06.637361: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 19:00:06.668590: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 19:00:06.669306: Optimise levels pass started at 2026-08-17 19:00:06
2026-08-17 19:00:06.669490: Optimise all windows, total charge 24 export 1
2026-08-17 19:00:09.368275: >> Region optimisation pass width 960 gives best_metric 380.86p, best_cost 403.96p, best_cycle 48.9kWh, best_import 31.28kWh
2026-08-17 19:00:09.757187: >> Region optimisation pass width 480 gives best_metric 380.86p, best_cost 403.96p, best_cycle 48.9kWh, best_import 31.28kWh
2026-08-17 19:00:10.085489: >> Region optimisation pass width 240 gives best_metric 380.86p, best_cost 403.96p, best_cycle 48.9kWh, best_import 31.28kWh
2026-08-17 19:00:11.779241: >> Region optimisation pass width 120 gives best_metric 380.86p, best_cost 403.96p, best_cycle 48.9kWh, best_import 31.28kWh
2026-08-17 19:00:11.779449: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 19:00:11.779508: Optimise levels pass ended at 2026-08-17 19:00:11, duration 5.1 seconds tried 63 combinations
2026-08-17 19:00:11.779553: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 380.86p, best_keep 0.11kWh, best_cycle 48.9kWh, best_carbon 0kg, best_import 31.28kWh
2026-08-17 19:00:11.801941: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 19:00:20.531843: Tweak plan optimisation started metric 261.49p, cost 273.53p
2026-08-17 19:00:22.719297: Tweak optimisation finished metric 261.49p, cost 273.53p, metric_keep 0.11kWh, cycle 25.36kWh, carbon 0kg, import 14.98kWh, changed 8 window(s)
2026-08-17 19:00:22.734070: Swap charge optimisation started metric 261.49p, cost 273.53p, min_improvement_swap 0.1p
2026-08-17 19:00:23.812108: Swap charge optimisation finished metric 261.49p, cost 273.53p
2026-08-17 19:00:23.994990: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:00:23.995970: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:00:23.996454: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:00:23.996865: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:00:24.081324: Previous plan best metric is 262.4 (cost 274.6) and new plan best metric is 261.49 (cost 273.53)
2026-08-17 19:00:24.081728: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 19:00:24.081978: Plan valid is now true after recompute was False
2026-08-17 19:00:24.137756: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 604.65p, metric_keep 276.8kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.07kWh, PV 0.0kWh
2026-08-17 19:00:24.337274: Battery has 8.42 hours left - now at 8.0kWh
2026-08-17 19:00:24.414369: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.35p, metric_keep 278.09kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.99kWh, PV 0.0kWh
2026-08-17 19:00:24.570260: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 323.21p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.99kWh, PV 0.0kWh
2026-08-17 19:00:24.688785: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 321.23p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.07kWh, PV 0.0kWh
2026-08-17 19:00:24.688961: Saving plan best values to HA entities
2026-08-17 19:00:24.949142: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:00:24.956636: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 19:00:24.965721: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.11kWh, house 0.0kWh, export 0.0kWh, metric 321.23p, metric10 323.21p
2026-08-17 19:00:25.085376: Marginal costs baseline metric (no standing charge): 274.6002
2026-08-17 19:00:25.446093: Marginal energy costs matrix computed: min=4.0 max=30.59
2026-08-17 19:00:25.547843: Rate array import [{'start': 1140, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1140, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:00:25.549018: - Your estimated bill for today is £1.77 and tomorrow is £1.68
2026-08-17 19:00:25.549162: - Import rates are very expensive (33.8p) for the next 4 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:00:25.549213: - The battery is currently at 50% and is in eco mode for the next 4 and a half hours.
2026-08-17 19:00:25.549248: - For the next 48 hours there will be no solar generation.
2026-08-17 19:00:25.549284: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:00:25.549310: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-17 19:00:25.549364:
2026-08-17 19:00:25.594501: Plan calculation took 19.43 seconds
2026-08-17 19:00:25.594724: Inverter 0: Type SK Sunsynk
2026-08-17 19:00:25.594780: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:00:25.595004: Reserve min: 7%, battery_min: 7%
2026-08-17 19:00:25.595101: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:00:25.595458: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 265W, current battery voltage 51.2V, grid power -54W, load power 327W, PV Power 0W
2026-08-17 19:00:25.595683: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:00:25.595804: Inverter 0 scheduled charge enable is False
2026-08-17 19:00:25.595856: Inverter 0 charge windows currently []
2026-08-17 19:00:25.595938: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:00:25.596098: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:00:25.596148: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:00:25.596201: Inverter 0 scheduled discharge enable is False
2026-08-17 19:00:25.596419: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:00:25.596470: Inverter 0 discharge windows currently []
2026-08-17 19:00:25.596505: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:00:25.596542: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:00:25.596569: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:00:25.683453: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 19:00:25.683620: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:00:25.683689: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:00:25.683867: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:00:25.683996: No export window planned
2026-08-17 19:00:25.684111: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:00:25.684148: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:00:25.684282: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:00:25.684444: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:00:25.684497: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:00:25.684544: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:00:25.684625: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684696: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684732: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684760: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684823: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.684980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.685008: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.685042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.685069: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:00:25.685098: Inverter 0 count register writes 0
2026-08-17 19:00:25.737608: Total inverter register writes now 861
2026-08-17 19:00:25.809349: Info: Completed run status Demand
2026-08-17 19:00:25.818157: Info: record_status Demand
2026-08-17 19:00:25.829942: Saved current settings to /config/predbat_config.json
2026-08-17 19:00:25.830144: Compare, best tariff: current metric 104.68p
2026-08-17 19:00:30.175080: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0095 val_mae=0.0033 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0019 kWh ema_combined=0.0017 kWh
2026-08-17 19:00:43.162367: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0103 val_mae=0.0031 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-17 19:00:56.577073: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0108 val_mae=0.0037 kWh val_bias=+0.0006 kWh (+1.2%) combined=0.0033 kWh ema_combined=0.0021 kWh
2026-08-17 19:01:03.972832: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:01:03.973068: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:01:03.973113: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:01:03.973247: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:01:03.973286: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:01:03.973393: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:01:03.973430: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:01:09.960047: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0123 val_mae=0.0032 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-17 19:01:23.504833: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0111 val_mae=0.0030 kWh val_bias=-0.0015 kWh (-2.7%) combined=0.0027 kWh ema_combined=0.0022 kWh
2026-08-17 19:01:38.305499: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0104 val_mae=0.0030 kWh val_bias=+0.0005 kWh (+1.0%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-17 19:01:51.625261: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0107 val_mae=0.0028 kWh val_bias=+0.0005 kWh (+0.8%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-17 19:02:05.822900: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0085 val_mae=0.0027 kWh val_bias=+0.0013 kWh (+2.3%) combined=0.0027 kWh ema_combined=0.0023 kWh
2026-08-17 19:02:18.320501: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0082 val_mae=0.0028 kWh val_bias=+0.0011 kWh (+2.0%) combined=0.0028 kWh ema_combined=0.0024 kWh
2026-08-17 19:02:18.320738: ML Predictor: Early stopping at epoch 10
2026-08-17 19:02:18.321813: ML Predictor: Restored best weights from epoch with val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.3%)
2026-08-17 19:02:18.322037: ML Predictor: Training complete, final val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.3%)
2026-08-17 19:02:19.380564: ML Predictor: AR rollout over holdout: ar_mae=0.0033 kWh ar_bias=+0.0006 kWh (+1.0%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-17 19:02:19.388700: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0028 kWh
2026-08-17 19:02:19.478574: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-17 19:02:19.478687: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 19:02:20.146041: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-17 19:02:25.103981: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-17 19:02:25.157971: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7161 std=4.5826) import_rate(mean=16.6934 std=8.3727) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-17 19:02:25.239313: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 19:02:25.252289: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 19:02:25.276278: ML Predictor: Baseline (pre-finetune) val_mae=0.0031 kWh val_bias=+0.0002 kWh
2026-08-17 19:02:39.455630: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0085 val_mae=0.0034 kWh val_bias=+0.0012 kWh (+2.7%) combined=0.0033 kWh ema_combined=0.0033 kWh
2026-08-17 19:02:50.533552: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0124 val_mae=0.0039 kWh val_bias=-0.0013 kWh (-3.0%) combined=0.0020 kWh ema_combined=0.0029 kWh
2026-08-17 19:03:05.470904: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0115 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-1.5%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-17 19:03:18.932481: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:03:18.932773: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:03:18.932824: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:03:18.932986: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:03:18.933031: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:03:18.933058: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:03:18.933165: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:03:19.569610: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0094 val_mae=0.0030 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-17 19:03:33.522680: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0091 val_mae=0.0029 kWh val_bias=-0.0007 kWh (-1.7%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 19:03:49.094296: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0118 val_mae=0.0033 kWh val_bias=-0.0013 kWh (-3.1%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-17 19:04:03.483549: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0132 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-17 19:04:18.190761: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0099 val_mae=0.0034 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0028 kWh ema_combined=0.0023 kWh
2026-08-17 19:04:31.880016: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0083 val_mae=0.0027 kWh val_bias=+0.0004 kWh (+1.0%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-17 19:04:46.908951: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0071 val_mae=0.0026 kWh val_bias=-0.0004 kWh (-1.0%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-17 19:04:46.909187: ML Predictor: Early stopping at epoch 10
2026-08-17 19:04:46.909953: ML Predictor: Restored best weights from epoch with val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.4%)
2026-08-17 19:04:46.910166: ML Predictor: Training complete, final val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.4%)
2026-08-17 19:04:47.845822: ML Predictor: AR rollout over holdout: ar_mae=0.0035 kWh ar_bias=+0.0007 kWh (+1.6%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-17 19:04:47.855517: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0031 kWh
2026-08-17 19:04:47.855698: ML Predictor: Curriculum final pass 5/5: full dataset (59.2 days)
2026-08-17 19:04:47.855809: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 19:04:48.446627: ML Predictor: Creating dataset with 1420 hours of training data, 48 hours validation
2026-08-17 19:04:53.321183: ML Predictor: Created 16761 training samples, 576 validation samples
2026-08-17 19:04:53.380660: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0478) pv(mean=0.0000 std=0.0100) temp(mean=19.7073 std=4.5799) import_rate(mean=16.6842 std=8.3893) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1946 std=0.5281)
2026-08-17 19:04:53.478968: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 19:04:53.494999: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 19:04:53.525167: ML Predictor: Baseline (pre-finetune) val_mae=0.0036 kWh val_bias=-0.0002 kWh
2026-08-17 19:05:00.244249: --------------- PredBat - update at 2026-08-17 19:05:00+01:00 with clock skew 0 minutes, minutes now 1145
2026-08-17 19:05:00.245144: Saved current settings to /config/predbat_config.json
2026-08-17 19:05:00.245272: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-17 19:05:00.245320: Warn: Unable to download Predbat version information from GitHub, return code: []
2026-08-17 19:05:00.269242: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:05:00.269392: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:05:00.269660: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:05:00.270267: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:05:00.270415: Predbat mode is set to Control charge & discharge
2026-08-17 19:05:00.566233: Found 21602 load_today datapoints going back 27 days
2026-08-17 19:05:00.566363: Using load_power data to fill gaps in load_today data
2026-08-17 19:05:01.984633: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:05:01.984867: Zero load period starting at 2026-08-17T10:54:00+0100 (491 minutes) for 189 minutes with base value 213.2
2026-08-17 19:05:01.985472: Processing 721 30-minute periods for power integration
2026-08-17 19:05:02.219432: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:05:02.219672: Car charging hold False, threshold 6.0kWh
2026-08-17 19:05:02.220405: Current data so far today: load 9.85kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:05:02.242333: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:05:02.242586: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:05:02.243685: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:05:02.243852: Standing charge is set to 46.63p
2026-08-17 19:05:02.493906: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.494296: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.494641: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.494912: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.495209: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.495450: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.495766: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.496074: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.496330: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:05:02.497489: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:05:02.497876: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:05:02.503478: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:05:02.504200: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:05:02.549332: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:05:02.549581: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:05:02.550987: High export rate found rates in range 99p to -99p
2026-08-17 19:05:02.603325: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:05:02.603506: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:05:02.648402: Battery level now 8.02kWh, -1hr ago 8.32kWh, at midnight 10.49kWh, battery value change in the last hour -2.09p, change today -16.99p, rate_forward 6.87p
2026-08-17 19:05:02.648967: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:05:02.774107: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 19:05:02.774364: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:05:02.945588: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:05:03.056928: Today's load divergence 94.54%, in-day adjustment 89.4%, damping 0.95x, yesterday 68.37% today 94.81% blend 20.49%
2026-08-17 19:05:03.057035: Today's predicted so far 11.93kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.93kWh forecast extra.
2026-08-17 19:05:03.057068: Today's actual load so far 11.12kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 19:05:03.104489: Inverter 0: Type SK Sunsynk
2026-08-17 19:05:03.104649: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:05:03.104874: Reserve min: 7%, battery_min: 7%
2026-08-17 19:05:03.104969: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:05:03.105271: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 269W, current battery voltage 51.2V, grid power -55W, load power 330W, PV Power 0W
2026-08-17 19:05:03.105489: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:05:03.105615: Inverter 0 scheduled charge enable is False
2026-08-17 19:05:03.105660: Inverter 0 charge windows currently []
2026-08-17 19:05:03.105713: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:05:03.105888: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:05:03.105942: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:05:03.106133: Inverter 0 scheduled discharge enable is False
2026-08-17 19:05:03.106351: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:05:03.106402: Inverter 0 discharge windows currently []
2026-08-17 19:05:03.106434: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:05:03.106499: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:05:03.106529: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:05:03.231536: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:05:03.231640: Plan was last updated on 2026-08-17 19:00:00+01:00 and is now 5.0 minutes old
2026-08-17 19:05:03.231846: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:05:03.231888: Best export window [ ]
2026-08-17 19:05:03.232782: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:05:03.236136: Load divergence over 8.0 hours mean 490.51W, min 322.2W, max 1002.6W, std dev 157.17W, divergence 16.02%
2026-08-17 19:05:03.307311: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:05:03.308327: LoadML is_calculating True
2026-08-17 19:05:03.308494: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 19:05:03.420776: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 604.96p, metric_keep 276.87kWh, min_soc 1.12kWh @ 08-18 03:30:00, load 29.15kWh, PV 0.0kWh
2026-08-17 19:05:03.651887: Battery has 8.42 hours left - now at 8.0kWh
2026-08-17 19:05:03.773532: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 626.66p, metric_keep 278.18kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.07kWh, PV 0.0kWh
2026-08-17 19:05:03.902179: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 326.39p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.07kWh, PV 0.0kWh
2026-08-17 19:05:04.041334: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 324.96p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.15kWh, PV 0.0kWh
2026-08-17 19:05:04.041601: Saving plan best values to HA entities
2026-08-17 19:05:04.378782: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:05:04.400646: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:05:04.407999: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.58kWh, house 0.0kWh, export 0.0kWh, metric 324.96p, metric10 326.39p
2026-08-17 19:05:04.529452: Marginal costs baseline metric (no standing charge): 278.3254
2026-08-17 19:05:04.976163: Marginal energy costs matrix computed: min=3.33 max=30.58
2026-08-17 19:05:05.135685: Rate array import [{'start': 1145, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1145, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:05:05.147513: - Your estimated bill for today is £1.77 and tomorrow is £1.68
2026-08-17 19:05:05.147744: - Import rates are very expensive (33.8p) for the next 4 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:05:05.147795: - The battery is currently at 50% and is in eco mode for the next 4 and a half hours.
2026-08-17 19:05:05.147820: - For the next 48 hours there will be no solar generation.
2026-08-17 19:05:05.147851: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:05:05.147884: - Your next charge slot will be in 4 and a half hours where import rates will be cheap (8.0p).
2026-08-17 19:05:05.148059:
2026-08-17 19:05:05.224273: Plan calculation took 1.99 seconds
2026-08-17 19:05:05.230004: No high rate period found
2026-08-17 19:05:05.410701: Import threshold used for optimisation was 8.0p
2026-08-17 19:05:05.501305: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:05:05.521329: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 19:05:05.521543: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:05:05.521624: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:05:05.521862: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:05:05.521962: No export window planned
2026-08-17 19:05:05.522106: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:05:05.522159: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:05:05.522350: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:05:05.522563: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:05:05.522632: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:05:05.522706: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:05:05.522820: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.522882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.522922: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.522975: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523066: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523105: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523253: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:05:05.523542: Inverter 0 count register writes 0
2026-08-17 19:05:05.555471: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 19:05:05.561290: Total inverter register writes now 861
2026-08-17 19:05:05.624053: Info: Completed run status Demand
2026-08-17 19:05:05.631876: Info: record_status Demand
2026-08-17 19:05:05.639734: Saved current settings to /config/predbat_config.json
2026-08-17 19:05:05.639967: Compare, best tariff: current metric 104.68p
2026-08-17 19:05:13.877188: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0089 val_mae=0.0039 kWh val_bias=-0.0016 kWh (-3.7%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-17 19:05:28.129448: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0108 val_mae=0.0040 kWh val_bias=-0.0020 kWh (-4.4%) combined=0.0041 kWh ema_combined=0.0036 kWh
2026-08-17 19:05:42.417160: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0148 val_mae=0.0031 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0031 kWh
2026-08-17 19:05:48.812704: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:05:48.812996: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:05:48.813045: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:05:48.813180: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:05:48.813296: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:05:48.813404: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:05:48.813503: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:05:58.407988: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0096 val_mae=0.0030 kWh val_bias=-0.0013 kWh (-2.8%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-17 19:06:14.289978: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0099 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0025 kWh
2026-08-17 19:06:27.383368: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0113 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-17 19:06:40.160155: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0076 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-17 19:06:56.185892: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0087 val_mae=0.0027 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-17 19:07:11.900573: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0091 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-17 19:07:25.029378: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0083 val_mae=0.0029 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-17 19:07:38.632601: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0074 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-17 19:07:49.158067: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:07:49.158330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:07:49.158380: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:07:49.158567: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:07:49.158616: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:07:49.158644: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:07:49.158669: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:07:54.362444: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 19:08:11.830509: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0078 val_mae=0.0025 kWh val_bias=-0.0011 kWh (-2.6%) combined=0.0021 kWh ema_combined=0.0017 kWh
2026-08-17 19:08:25.620786: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0066 val_mae=0.0025 kWh val_bias=+0.0009 kWh (+2.1%) combined=0.0023 kWh ema_combined=0.0019 kWh
2026-08-17 19:08:39.733291: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0071 val_mae=0.0025 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0023 kWh ema_combined=0.0020 kWh
2026-08-17 19:08:53.557007: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0067 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-17 19:09:08.427678: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0066 val_mae=0.0022 kWh val_bias=-0.0004 kWh (-1.0%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-17 19:09:21.774730: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0055 val_mae=0.0024 kWh val_bias=+0.0008 kWh (+1.7%) combined=0.0022 kWh ema_combined=0.0018 kWh
2026-08-17 19:09:33.245526: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-17 19:09:46.631664: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0057 val_mae=0.0024 kWh val_bias=+0.0008 kWh (+1.9%) combined=0.0023 kWh ema_combined=0.0019 kWh
2026-08-17 19:09:49.526049: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:09:49.526320: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:09:49.526369: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:09:49.526535: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:09:49.526594: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:09:49.526627: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:09:49.526739: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:10:00.744398: --------------- PredBat - update at 2026-08-17 19:10:00+01:00 with clock skew 0 minutes, minutes now 1150
2026-08-17 19:10:00.750723: Saved current settings to /config/predbat_config.json
2026-08-17 19:10:00.915670: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0058 val_mae=0.0021 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-17 19:10:01.432357: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:10:01.432775: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:10:01.456327: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:10:01.456590: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:10:01.456837: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:10:01.457397: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:10:01.457603: Predbat mode is set to Control charge & discharge
2026-08-17 19:10:01.745452: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:10:01.745696: Using load_power data to fill gaps in load_today data
2026-08-17 19:10:03.065296: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:10:03.065642: Zero load period starting at 2026-08-17T10:54:00+0100 (496 minutes) for 189 minutes with base value 213.175
2026-08-17 19:10:03.066657: Processing 721 30-minute periods for power integration
2026-08-17 19:10:03.375631: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:10:03.375758: Car charging hold False, threshold 6.0kWh
2026-08-17 19:10:03.375823: Current data so far today: load 9.8kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:10:03.403472: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:10:03.403596: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:10:03.404316: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:10:03.404412: Standing charge is set to 46.63p
2026-08-17 19:10:03.631984: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.633789: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.634141: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.634476: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.634871: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.635166: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.635440: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.635715: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.636028: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:10:03.637012: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:10:03.637649: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:10:03.642150: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:10:03.642502: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:10:03.679371: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:10:03.679537: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:10:03.680705: High export rate found rates in range 99p to -99p
2026-08-17 19:10:03.705818: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:10:03.706341: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:10:03.721785: Battery level now 8.02kWh, -1hr ago 8.32kWh, at midnight 10.49kWh, battery value change in the last hour -2.09p, change today -16.99p, rate_forward 6.87p
2026-08-17 19:10:03.722213: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:10:03.838651: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 19:10:03.838969: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:10:04.049697: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:10:04.083167: Today's load divergence 94.08%, in-day adjustment 89.14%, damping 0.95x, yesterday 68.37% today 94.37% blend 20.14%
2026-08-17 19:10:04.083370: Today's predicted so far 11.94kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 11.94kWh forecast extra.
2026-08-17 19:10:04.083417: Today's actual load so far 11.06kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 19:10:04.131876: Inverter 0: Type SK Sunsynk
2026-08-17 19:10:04.132142: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:10:04.132435: Reserve min: 7%, battery_min: 7%
2026-08-17 19:10:04.132571: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:10:04.132965: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 267W, current battery voltage 51.2V, grid power -55W, load power 328W, PV Power 0W
2026-08-17 19:10:04.133221: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:10:04.133378: Inverter 0 scheduled charge enable is False
2026-08-17 19:10:04.133428: Inverter 0 charge windows currently []
2026-08-17 19:10:04.133537: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:10:04.133753: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:10:04.133804: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:10:04.133887: Inverter 0 scheduled discharge enable is False
2026-08-17 19:10:04.134135: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:10:04.134185: Inverter 0 discharge windows currently []
2026-08-17 19:10:04.134249: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:10:04.134339: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:10:04.134380: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:10:04.217436: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:10:04.217567: Plan was last updated on 2026-08-17 19:00:00+01:00 and is now 10.0 minutes old
2026-08-17 19:10:04.217923: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:10:04.218072: Best export window [ ]
2026-08-17 19:10:04.219466: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:10:04.224368: Load divergence over 8.0 hours mean 490.56W, min 336.6W, max 1039.2W, std dev 159.01W, divergence 16.21%
2026-08-17 19:10:04.253862: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:10:04.254129: LoadML is_calculating True
2026-08-17 19:10:04.255016: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 19:10:04.306600: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 605.31p, metric_keep 276.89kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.14kWh, PV 0.0kWh
2026-08-17 19:10:04.493919: Battery has 8.42 hours left - now at 8.0kWh
2026-08-17 19:10:04.566652: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 627.05p, metric_keep 278.22kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 30.07kWh, PV 0.0kWh
2026-08-17 19:10:04.685117: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 329.47p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.07kWh, PV 0.0kWh
2026-08-17 19:10:04.839661: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 328.67p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.14kWh, PV 0.0kWh
2026-08-17 19:10:04.839777: Saving plan best values to HA entities
2026-08-17 19:10:05.166611: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:10:05.177138: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:10:05.188112: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.04kWh, house 0.0kWh, export 0.0kWh, metric 328.67p, metric10 329.47p
2026-08-17 19:10:05.378852: Marginal costs baseline metric (no standing charge): 282.0359
2026-08-17 19:10:05.694622: Marginal energy costs matrix computed: min=2.67 max=30.58
2026-08-17 19:10:05.799144: Rate array import [{'start': 1150, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1150, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:10:05.800141: - Your estimated bill for today is £1.77 and tomorrow is £1.67
2026-08-17 19:10:05.800649: - Import rates are very expensive (33.8p) for the next 4 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:10:05.800717: - The battery is currently at 50% and is in eco mode for the next 4 and a quarter hours.
2026-08-17 19:10:05.800754: - For the next 48 hours there will be no solar generation.
2026-08-17 19:10:05.800879: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:10:05.801002: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 19:10:05.801119:
2026-08-17 19:10:05.849239: Plan calculation took 1.63 seconds
2026-08-17 19:10:05.854384: No high rate period found
2026-08-17 19:10:05.956899: Import threshold used for optimisation was 8.0p
2026-08-17 19:10:06.061598: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:10:06.075796: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 19:10:06.075992: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:10:06.076080: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:10:06.076408: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:10:06.076647: No export window planned
2026-08-17 19:10:06.076888: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:10:06.077081: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:10:06.077368: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:10:06.077664: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:10:06.077816: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:10:06.077970: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:10:06.078157: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.078293: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.078426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.078554: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.078827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.078990: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.079153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.086448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.086648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.086785: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.086916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.087043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.087168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.087294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:06.087410: Inverter 0 count register writes 0
2026-08-17 19:10:06.114336: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 19:10:06.114508: Recompute is saving previous plan...
2026-08-17 19:10:06.116231: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 19:10:06.116304: Best export window [ ]
2026-08-17 19:10:06.117260: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:10:06.121844: Load divergence over 8.0 hours mean 490.56W, min 336.6W, max 1039.2W, std dev 159.01W, divergence 16.21%
2026-08-17 19:10:06.175698: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:10:06.184041: LoadML is_calculating True
2026-08-17 19:10:06.184162: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 19:10:06.218251: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 19:10:06.219136: Optimise levels pass started at 2026-08-17 19:10:06
2026-08-17 19:10:06.219203: Optimise all windows, total charge 24 export 1
2026-08-17 19:10:08.345759: >> Region optimisation pass width 960 gives best_metric 382.09p, best_cost 417.29p, best_cycle 46.91kWh, best_import 32.95kWh
2026-08-17 19:10:08.764473: >> Region optimisation pass width 480 gives best_metric 382.09p, best_cost 417.29p, best_cycle 46.91kWh, best_import 32.95kWh
2026-08-17 19:10:09.090438: >> Region optimisation pass width 240 gives best_metric 382.09p, best_cost 417.29p, best_cycle 46.91kWh, best_import 32.95kWh
2026-08-17 19:10:12.307404: >> Region optimisation pass width 120 gives best_metric 381.83p, best_cost 415.31p, best_cycle 47.17kWh, best_import 32.7kWh
2026-08-17 19:10:12.307593: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 19:10:12.307644: Optimise levels pass ended at 2026-08-17 19:10:12, duration 6.1 seconds tried 61 combinations
2026-08-17 19:10:12.307698: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 381.83p, best_keep 0kWh, best_cycle 47.17kWh, best_carbon 0kg, best_import 32.7kWh
2026-08-17 19:10:12.341982: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 19:10:21.876448: Tweak plan optimisation started metric 260.5p, cost 272.58p
2026-08-17 19:10:23.609104: Tweak optimisation finished metric 260.5p, cost 272.58p, metric_keep 0.1kWh, cycle 25.14kWh, carbon 0kg, import 14.86kWh, changed 8 window(s)
2026-08-17 19:10:23.624355: Swap charge optimisation started metric 260.5p, cost 272.58p, min_improvement_swap 0.1p
2026-08-17 19:10:24.533339: Swap charge optimisation finished metric 260.5p, cost 272.58p
2026-08-17 19:10:24.691545: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:10:24.692197: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:10:24.692683: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:10:24.693132: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:10:24.777174: Previous plan best metric is 261.5 (cost 273.75) and new plan best metric is 260.5 (cost 272.58)
2026-08-17 19:10:24.788176: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 19:10:24.788507: Plan valid is now true after recompute was False
2026-08-17 19:10:24.874921: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 603.7p, metric_keep 276.31kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 28.94kWh, PV 0.0kWh
2026-08-17 19:10:25.096496: Battery has 8.42 hours left - now at 8.0kWh
2026-08-17 19:10:25.192516: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 625.35p, metric_keep 277.63kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 29.85kWh, PV 0.0kWh
2026-08-17 19:10:25.370248: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 322.22p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.85kWh, PV 0.0kWh
2026-08-17 19:10:25.517689: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 320.39p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.94kWh, PV 0.0kWh
2026-08-17 19:10:25.517782: Saving plan best values to HA entities
2026-08-17 19:10:25.802485: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:10:25.808503: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:10:25.814346: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.01kWh, house 0.0kWh, export 0.0kWh, metric 320.39p, metric10 322.22p
2026-08-17 19:10:25.895445: Marginal costs baseline metric (no standing charge): 273.7516
2026-08-17 19:10:26.271094: Marginal energy costs matrix computed: min=2.67 max=30.58
2026-08-17 19:10:26.407871: Rate array import [{'start': 1150, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1150, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:10:26.408906: - Your estimated bill for today is £1.77 and tomorrow is £1.67
2026-08-17 19:10:26.409065: - Import rates are very expensive (33.8p) for the next 4 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:10:26.409203: - The battery is currently at 50% and is in eco mode for the next 4 and a quarter hours.
2026-08-17 19:10:26.409330: - For the next 48 hours there will be no solar generation.
2026-08-17 19:10:26.409456: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:10:26.409574: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 19:10:26.409711:
2026-08-17 19:10:26.446716: Plan calculation took 20.33 seconds
2026-08-17 19:10:26.446918: Inverter 0: Type SK Sunsynk
2026-08-17 19:10:26.446959: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:10:26.447127: Reserve min: 7%, battery_min: 7%
2026-08-17 19:10:26.447196: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:10:26.447434: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 267W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-17 19:10:26.447605: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:10:26.447702: Inverter 0 scheduled charge enable is False
2026-08-17 19:10:26.447740: Inverter 0 charge windows currently []
2026-08-17 19:10:26.447767: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:10:26.447886: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:10:26.447954: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:10:26.448024: Inverter 0 scheduled discharge enable is False
2026-08-17 19:10:26.448153: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:10:26.448192: Inverter 0 discharge windows currently []
2026-08-17 19:10:26.448214: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:10:26.448232: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:10:26.448249: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:10:26.539428: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 19:10:26.539860: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:10:26.540071: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:10:26.540403: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:10:26.540607: No export window planned
2026-08-17 19:10:26.540842: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:10:26.540972: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:10:26.541255: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:10:26.541534: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:10:26.541707: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:10:26.541866: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:10:26.542056: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.542193: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.542324: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.542456: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.542602: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.542739: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.542880: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.543060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.543195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.543321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.543449: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.543575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.543727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.543855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:10:26.544041: Inverter 0 count register writes 0
2026-08-17 19:10:26.588045: Total inverter register writes now 861
2026-08-17 19:10:26.674209: Info: Completed run status Demand
2026-08-17 19:10:26.682172: Info: record_status Demand
2026-08-17 19:10:26.705698: Saved current settings to /config/predbat_config.json
2026-08-17 19:10:26.706066: Compare, best tariff: current metric 104.68p
2026-08-17 19:10:34.773832: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0010 kWh ema_combined=0.0016 kWh
2026-08-17 19:10:34.774089: ML Predictor: Early stopping at epoch 22
2026-08-17 19:10:34.775152: ML Predictor: Restored best weights from epoch with val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.7%)
2026-08-17 19:10:34.775440: ML Predictor: Training complete, final val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.7%)
2026-08-17 19:10:35.869778: ML Predictor: AR rollout over holdout: ar_mae=0.0028 kWh ar_bias=+0.0005 kWh (+1.1%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-17 19:10:35.876014: ML Predictor: Curriculum training complete, final val_mae=0.0025 kWh
2026-08-17 19:10:35.886851: ML Component: Training successful, val_mae=0.0025 kWh
2026-08-17 19:10:36.025422: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 19:10:36.030105: ML Component: Generating predictions load data age 59.0 days, 17050 data points
2026-08-17 19:10:36.178494: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0123 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 19:10:36.692545: ML Component: Generated 576 predictions (total 25.21 kWh over 48h)
2026-08-17 19:10:36.730998: ML Component: Prediction cycle completed
2026-08-17 19:10:36.847932: ML Component: Saved 17050 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 19:11:03.838820: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:11:03.839051: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:11:03.839163: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:11:03.839404: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:11:03.839507: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:11:03.839543: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:11:03.839563: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:13:04.050959: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:13:04.051191: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:13:04.051232: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:13:04.051396: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:13:04.051457: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:13:04.051479: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:13:04.051497: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:15:00.252916: --------------- PredBat - update at 2026-08-17 19:15:00+01:00 with clock skew 0 minutes, minutes now 1155
2026-08-17 19:15:00.253608: Saved current settings to /config/predbat_config.json
2026-08-17 19:15:00.253741: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 19:15:00.253830: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:15:00.253919: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:15:00.270988: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:15:00.271123: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:15:00.271281: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:15:00.271846: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:15:00.272015: Predbat mode is set to Control charge & discharge
2026-08-17 19:15:00.462184: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:15:00.462293: Using load_power data to fill gaps in load_today data
2026-08-17 19:15:01.145853: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:15:01.146019: Zero load period starting at 2026-08-17T10:54:00+0100 (501 minutes) for 189 minutes with base value 213.15
2026-08-17 19:15:01.146511: Processing 721 30-minute periods for power integration
2026-08-17 19:15:01.297632: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:15:01.297775: Car charging hold False, threshold 6.0kWh
2026-08-17 19:15:01.297810: Current data so far today: load 9.8kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:15:01.311080: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:15:01.311171: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:15:01.311780: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:15:01.311841: Standing charge is set to 46.63p
2026-08-17 19:15:01.390753: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.391000: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.391181: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.391356: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.391527: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.391705: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.391873: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.392142: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.392321: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:15:01.393377: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:15:01.393477: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:15:01.398887: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:15:01.399169: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:15:01.438110: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:15:01.438202: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:15:01.439309: High export rate found rates in range 99p to -99p
2026-08-17 19:15:01.471816: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:15:01.472015: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:15:01.486251: Battery level now 8.02kWh, -1hr ago 8.17kWh, at midnight 10.49kWh, battery value change in the last hour -1.04p, change today -16.99p, rate_forward 6.87p
2026-08-17 19:15:01.486907: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.2kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:15:01.549436: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 153.7p, import 107.07p, export 0.0p, carbon 0.0kg
2026-08-17 19:15:01.549641: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:15:01.646973: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:15:01.676390: Today's load divergence 94.02%, in-day adjustment 89.18%, damping 0.95x, yesterday 68.37% today 94.32% blend 19.79%
2026-08-17 19:15:01.676491: Today's predicted so far 11.94kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 11.94kWh forecast extra.
2026-08-17 19:15:01.676524: Today's actual load so far 11.05kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 19:15:01.706177: Inverter 0: Type SK Sunsynk
2026-08-17 19:15:01.706257: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:15:01.706427: Reserve min: 7%, battery_min: 7%
2026-08-17 19:15:01.706494: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:15:01.706757: Inverter 0 SoC: 8.0kW 50%, current charge rate 5000W, current discharge rate 5250W, current battery power 260W, current battery voltage 51.2V, grid power -55W, load power 323W, PV Power 0W
2026-08-17 19:15:01.706907: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:15:01.706989: Inverter 0 scheduled charge enable is False
2026-08-17 19:15:01.707017: Inverter 0 charge windows currently []
2026-08-17 19:15:01.707047: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:15:01.707150: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:15:01.707185: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:15:01.707220: Inverter 0 scheduled discharge enable is False
2026-08-17 19:15:01.707337: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:15:01.707372: Inverter 0 discharge windows currently []
2026-08-17 19:15:01.707395: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:15:01.707416: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:15:01.707434: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:15:01.766575: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:15:01.766745: Plan was last updated on 2026-08-17 19:10:00+01:00 and is now 5.0 minutes old
2026-08-17 19:15:01.767051: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:15:01.767105: Best export window [ ]
2026-08-17 19:15:01.768022: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:15:01.771128: Load divergence over 8.0 hours mean 490.61W, min 331.2W, max 1005.0W, std dev 166.29W, divergence 16.95%
2026-08-17 19:15:01.791112: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:15:01.791228: LoadML is_calculating False
2026-08-17 19:15:01.791288: Creating pool of 12 processes to match your CPU count
2026-08-17 19:15:01.907603: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 604.61p, metric_keep 276.38kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.01kWh, PV 0.0kWh
2026-08-17 19:15:02.017101: Battery has 8.33 hours left - now at 8.0kWh
2026-08-17 19:15:02.061355: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 626.27p, metric_keep 277.7kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.92kWh, PV 0.0kWh
2026-08-17 19:15:02.139496: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 325.41p, metric_keep 3.72kWh, min_soc 1.31kWh @ 08-18 23:25:00, load 29.92kWh, PV 0.0kWh
2026-08-17 19:15:02.222221: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 324.16p, metric_keep 0.12kWh, min_soc 1.91kWh @ 08-18 23:25:00, load 29.01kWh, PV 0.0kWh
2026-08-17 19:15:02.222314: Saving plan best values to HA entities
2026-08-17 19:15:02.373589: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:15:02.378126: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 19:15:02.382386: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.48kWh, house 0.0kWh, export 0.0kWh, metric 324.16p, metric10 325.41p
2026-08-17 19:15:02.453047: Marginal costs baseline metric (no standing charge): 277.5254
2026-08-17 19:15:02.717706: Marginal energy costs matrix computed: min=2.41 max=30.64
2026-08-17 19:15:02.783800: Rate array import [{'start': 1155, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1155, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:15:02.784468: - Your estimated bill for today is £1.78 and tomorrow is £1.67
2026-08-17 19:15:02.784516: - Import rates are very expensive (33.8p) for the next 4 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:15:02.784539: - The battery is currently at 50% and is in eco mode for the next 4 and a quarter hours.
2026-08-17 19:15:02.784557: - For the next 48 hours there will be no solar generation.
2026-08-17 19:15:02.784583: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:15:02.784602: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 19:15:02.784619:
2026-08-17 19:15:02.832634: Plan calculation took 1.07 seconds
2026-08-17 19:15:02.836321: No high rate period found
2026-08-17 19:15:02.882723: Import threshold used for optimisation was 8.0p
2026-08-17 19:15:02.928630: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:15:02.933922: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 50%, target 100%
2026-08-17 19:15:02.934083: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:15:02.934222: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:15:02.934536: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:15:02.934661: No export window planned
2026-08-17 19:15:02.934871: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:15:02.934914: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:15:02.935114: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:15:02.935348: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:15:02.935425: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:15:02.935523: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:15:02.935660: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.935745: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.935796: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.935855: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.935957: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936070: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:15:02.936505: Inverter 0 count register writes 0
2026-08-17 19:15:02.951573: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 19:15:02.956861: Total inverter register writes now 861
2026-08-17 19:15:02.990575: Info: Completed run status Demand
2026-08-17 19:15:02.996462: Info: record_status Demand
2026-08-17 19:15:03.003000: Saved current settings to /config/predbat_config.json
2026-08-17 19:15:03.003291: Compare, best tariff: current metric 104.68p
2026-08-17 19:15:34.114779: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:15:34.115012: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:15:34.115105: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:15:34.115235: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:15:34.115277: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:15:34.115298: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:15:34.115320: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:17:34.314907: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:17:34.315098: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:17:34.315125: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:17:34.315275: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:17:34.315335: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:17:34.315352: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:17:34.315366: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:19:34.518124: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:19:34.518359: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:19:34.518402: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:19:34.518532: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:19:34.518570: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:19:34.518591: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:19:34.518614: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:20:00.633872: --------------- PredBat - update at 2026-08-17 19:20:00+01:00 with clock skew 0 minutes, minutes now 1160
2026-08-17 19:20:00.634707: Saved current settings to /config/predbat_config.json
2026-08-17 19:20:00.634908: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 19:20:00.635007: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:20:00.635119: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:20:00.653944: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:20:00.654067: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:20:00.654248: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:20:00.654718: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:20:00.654830: Predbat mode is set to Control charge & discharge
2026-08-17 19:20:00.846449: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:20:00.846588: Using load_power data to fill gaps in load_today data
2026-08-17 19:20:01.593416: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:20:01.593579: Zero load period starting at 2026-08-17T10:54:00+0100 (506 minutes) for 189 minutes with base value 213.125
2026-08-17 19:20:01.594082: Processing 721 30-minute periods for power integration
2026-08-17 19:20:01.752635: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:20:01.752748: Car charging hold False, threshold 6.0kWh
2026-08-17 19:20:01.752785: Current data so far today: load 9.93kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:20:01.766040: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:20:01.766131: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:20:01.766725: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:20:01.766784: Standing charge is set to 46.63p
2026-08-17 19:20:01.851623: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.851855: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.852113: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.852333: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.852580: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.852837: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.853056: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.853270: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.853812: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:20:01.854749: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:20:01.854944: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:20:01.859818: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:20:01.860379: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:20:01.895922: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:20:01.896079: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:20:01.897364: High export rate found rates in range 99p to -99p
2026-08-17 19:20:01.922864: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:20:01.922962: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:20:01.933766: Battery level now 8.02kWh, -1hr ago 8.16kWh, at midnight 10.49kWh, battery value change in the last hour -0.99p, change today -16.99p, rate_forward 6.87p
2026-08-17 19:20:01.934083: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 2.14p, import 2.14p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:20:01.984479: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:20:01.984656: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:20:02.063560: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:20:02.093692: Today's load divergence 94.56%, in-day adjustment 89.69%, damping 0.95x, yesterday 68.37% today 94.83% blend 19.44%
2026-08-17 19:20:02.093772: Today's predicted so far 11.97kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 11.97kWh forecast extra.
2026-08-17 19:20:02.093813: Today's actual load so far 11.16kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 19:20:02.126748: Inverter 0: Type SK Sunsynk
2026-08-17 19:20:02.126856: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:20:02.127080: Reserve min: 7%, battery_min: 7%
2026-08-17 19:20:02.127183: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:20:02.127528: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 263W, current battery voltage 51.2V, grid power -54W, load power 325W, PV Power 0W
2026-08-17 19:20:02.127721: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:20:02.127849: Inverter 0 scheduled charge enable is False
2026-08-17 19:20:02.127896: Inverter 0 charge windows currently []
2026-08-17 19:20:02.127979: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:20:02.128145: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:20:02.128190: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:20:02.128241: Inverter 0 scheduled discharge enable is False
2026-08-17 19:20:02.128393: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:20:02.128425: Inverter 0 discharge windows currently []
2026-08-17 19:20:02.128444: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:20:02.128459: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:20:02.128473: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:20:02.197934: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:20:02.198038: Plan was last updated on 2026-08-17 19:10:00+01:00 and is now 10.0 minutes old
2026-08-17 19:20:02.198253: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:20:02.198295: Best export window [ ]
2026-08-17 19:20:02.199119: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:20:02.202314: Load divergence over 8.0 hours mean 489.09W, min 361.2W, max 977.4W, std dev 156.16W, divergence 15.96%
2026-08-17 19:20:02.220694: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:20:02.220779: LoadML is_calculating False
2026-08-17 19:20:02.220851: Creating pool of 12 processes to match your CPU count
2026-08-17 19:20:02.333815: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 610.1p, metric_keep 277.25kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.2kWh, PV 0.0kWh
2026-08-17 19:20:02.452273: Battery has 8.08 hours left - now at 7.84kWh
2026-08-17 19:20:02.498303: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 631.81p, metric_keep 278.51kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.11kWh, PV 0.0kWh
2026-08-17 19:20:02.581374: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 334.16p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.11kWh, PV 0.0kWh
2026-08-17 19:20:02.653122: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 333.28p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.2kWh, PV 0.0kWh
2026-08-17 19:20:02.653196: Saving plan best values to HA entities
2026-08-17 19:20:02.798991: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:20:02.803947: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 19:20:02.808904: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.11kWh, house 0.0kWh, export 0.0kWh, metric 333.28p, metric10 334.16p
2026-08-17 19:20:02.881212: Marginal costs baseline metric (no standing charge): 286.6473
2026-08-17 19:20:03.125147: Marginal energy costs matrix computed: min=4.23 max=30.6
2026-08-17 19:20:03.201500: Rate array import [{'start': 1160, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1160, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:20:03.202058: - Your estimated bill for today is £1.82 and tomorrow is £1.68
2026-08-17 19:20:03.202097: - Import rates are very expensive (33.8p) for the next 4 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:20:03.202115: - The battery is currently at 49% and is in eco mode for the next 4 and a quarter hours.
2026-08-17 19:20:03.202130: - For the next 48 hours there will be no solar generation.
2026-08-17 19:20:03.202144: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:20:03.202158: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 19:20:03.202176:
2026-08-17 19:20:03.263507: Plan calculation took 1.07 seconds
2026-08-17 19:20:03.267763: No high rate period found
2026-08-17 19:20:03.319779: Import threshold used for optimisation was 8.0p
2026-08-17 19:20:03.364886: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:20:03.369815: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:20:03.369944: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:20:03.370045: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:20:03.370284: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:20:03.370376: No export window planned
2026-08-17 19:20:03.370494: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:20:03.370529: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:20:03.370660: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:20:03.370857: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:20:03.370919: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:20:03.370991: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:20:03.371105: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371146: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371178: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371235: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371288: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371389: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371447: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:03.371544: Inverter 0 count register writes 0
2026-08-17 19:20:03.385454: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 19:20:03.385610: Recompute is saving previous plan...
2026-08-17 19:20:03.386475: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 19:20:03.386522: Best export window [ ]
2026-08-17 19:20:03.387229: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:20:03.389898: Load divergence over 8.0 hours mean 489.09W, min 361.2W, max 977.4W, std dev 156.16W, divergence 15.96%
2026-08-17 19:20:03.404435: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:20:03.404535: LoadML is_calculating False
2026-08-17 19:20:03.404602: Creating pool of 12 processes to match your CPU count
2026-08-17 19:20:03.474749: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 19:20:03.475471: Optimise levels pass started at 2026-08-17 19:20:03
2026-08-17 19:20:03.475511: Optimise all windows, total charge 24 export 1
2026-08-17 19:20:03.795721: >> Region optimisation pass width 960 gives best_metric 387.53p, best_cost 422.07p, best_cycle 47.03kWh, best_import 33.04kWh
2026-08-17 19:20:03.923147: >> Region optimisation pass width 480 gives best_metric 387.53p, best_cost 422.07p, best_cycle 47.03kWh, best_import 33.04kWh
2026-08-17 19:20:04.156549: >> Region optimisation pass width 240 gives best_metric 387.53p, best_cost 422.07p, best_cycle 47.03kWh, best_import 33.04kWh
2026-08-17 19:20:04.864963: >> Region optimisation pass width 120 gives best_metric 387.27p, best_cost 420.12p, best_cycle 47.28kWh, best_import 32.79kWh
2026-08-17 19:20:04.865128: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 19:20:04.865180: Optimise levels pass ended at 2026-08-17 19:20:04, duration 1.4 seconds tried 61 combinations
2026-08-17 19:20:04.865226: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 387.27p, best_keep 0kWh, best_cycle 47.28kWh, best_carbon 0kg, best_import 32.79kWh
2026-08-17 19:20:04.879671: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 19:20:07.137014: Tweak plan optimisation started metric 265.26p, cost 277.3p
2026-08-17 19:20:07.421629: Tweak optimisation finished metric 265.26p, cost 277.3p, metric_keep 0.11kWh, cycle 25.16kWh, carbon 0kg, import 14.94kWh, changed 8 window(s)
2026-08-17 19:20:07.440772: Swap charge optimisation started metric 265.26p, cost 277.3p, min_improvement_swap 0.1p
2026-08-17 19:20:08.019971: Swap charge optimisation finished metric 265.26p, cost 277.3p
2026-08-17 19:20:08.125459: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:20:08.125794: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:20:08.126019: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:20:08.126167: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:20:08.156595: Previous plan best metric is 266.15 (cost 278.36) and new plan best metric is 265.26 (cost 277.3)
2026-08-17 19:20:08.156777: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 19:20:08.156939: Plan valid is now true after recompute was False
2026-08-17 19:20:08.180410: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 608.48p, metric_keep 276.66kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 28.99kWh, PV 0.0kWh
2026-08-17 19:20:08.268627: Battery has 8.08 hours left - now at 7.84kWh
2026-08-17 19:20:08.305914: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 630.1p, metric_keep 277.92kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.9kWh, PV 0.0kWh
2026-08-17 19:20:08.370419: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 326.9p, metric_keep 3.54kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.9kWh, PV 0.0kWh
2026-08-17 19:20:08.447387: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 324.99p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 28.99kWh, PV 0.0kWh
2026-08-17 19:20:08.447473: Saving plan best values to HA entities
2026-08-17 19:20:08.592877: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:20:08.597150: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 19:20:08.601643: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.07kWh, house 0.0kWh, export 0.0kWh, metric 324.99p, metric10 326.9p
2026-08-17 19:20:08.673270: Marginal costs baseline metric (no standing charge): 278.355
2026-08-17 19:20:08.939226: Marginal energy costs matrix computed: min=4.23 max=30.6
2026-08-17 19:20:08.999145: Rate array import [{'start': 1160, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1160, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:20:08.999845: - Your estimated bill for today is £1.82 and tomorrow is £1.68
2026-08-17 19:20:09.000002: - Import rates are very expensive (33.8p) for the next 4 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:20:09.000046: - The battery is currently at 49% and is in eco mode for the next 4 and a quarter hours.
2026-08-17 19:20:09.000078: - For the next 48 hours there will be no solar generation.
2026-08-17 19:20:09.000110: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:20:09.000138: - Your next charge slot will be in 4 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 19:20:09.000167:
2026-08-17 19:20:09.043822: Plan calculation took 5.66 seconds
2026-08-17 19:20:09.044200: Inverter 0: Type SK Sunsynk
2026-08-17 19:20:09.044258: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:20:09.044464: Reserve min: 7%, battery_min: 7%
2026-08-17 19:20:09.044540: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:20:09.044991: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 263W, current battery voltage 51.2V, grid power -54W, load power 325W, PV Power 0W
2026-08-17 19:20:09.045242: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:20:09.045344: Inverter 0 scheduled charge enable is False
2026-08-17 19:20:09.045380: Inverter 0 charge windows currently []
2026-08-17 19:20:09.045411: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:20:09.045520: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:20:09.045559: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:20:09.045598: Inverter 0 scheduled discharge enable is False
2026-08-17 19:20:09.045728: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:20:09.045765: Inverter 0 discharge windows currently []
2026-08-17 19:20:09.045787: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:20:09.045821: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:20:09.045840: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:20:09.094873: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:20:09.095019: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:20:09.095078: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:20:09.095221: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:20:09.095288: No export window planned
2026-08-17 19:20:09.095374: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:20:09.095403: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:20:09.095510: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:20:09.095638: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:20:09.095680: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:20:09.095727: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:20:09.095816: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.095852: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.095875: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.095896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.095976: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096001: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096022: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096106: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096186: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:20:09.096244: Inverter 0 count register writes 0
2026-08-17 19:20:09.114711: Total inverter register writes now 861
2026-08-17 19:20:09.145494: Info: Completed run status Demand
2026-08-17 19:20:09.151873: Info: record_status Demand
2026-08-17 19:20:09.157873: Saved current settings to /config/predbat_config.json
2026-08-17 19:20:09.158177: Compare, best tariff: current metric 104.68p
2026-08-17 19:20:49.270842: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:20:49.271105: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:20:49.271143: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:20:49.271277: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:20:49.271309: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:20:49.271344: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:20:49.271359: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:22:49.471373: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:22:49.471611: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:22:49.471645: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:22:49.471778: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:22:49.471817: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:22:49.471838: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:22:49.471881: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:25:00.695394: --------------- PredBat - update at 2026-08-17 19:25:00+01:00 with clock skew 0 minutes, minutes now 1165
2026-08-17 19:25:00.696348: Saved current settings to /config/predbat_config.json
2026-08-17 19:25:00.696542: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 19:25:00.696649: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:25:00.696764: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:25:00.717119: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:25:00.717262: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:25:00.717444: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:25:00.718028: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:25:00.718167: Predbat mode is set to Control charge & discharge
2026-08-17 19:25:00.900835: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:25:00.900984: Using load_power data to fill gaps in load_today data
2026-08-17 19:25:01.725425: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:25:01.725593: Zero load period starting at 2026-08-17T10:54:00+0100 (511 minutes) for 189 minutes with base value 213.1
2026-08-17 19:25:01.726188: Processing 721 30-minute periods for power integration
2026-08-17 19:25:01.906999: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:25:01.907113: Car charging hold False, threshold 6.0kWh
2026-08-17 19:25:01.907156: Current data so far today: load 9.95kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:25:01.923258: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:25:01.923354: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:25:01.924119: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:25:01.924193: Standing charge is set to 46.63p
2026-08-17 19:25:02.009417: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.009716: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.010014: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.010250: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.010472: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.010695: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.010940: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.011157: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.011369: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:25:02.012586: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:25:02.012733: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:25:02.018342: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:25:02.018791: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:25:02.062442: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:25:02.062556: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:25:02.064039: High export rate found rates in range 99p to -99p
2026-08-17 19:25:02.094298: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:25:02.094408: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:25:02.105056: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:25:02.105454: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 1.93p, import 1.93p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:25:02.163305: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:25:02.163464: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:25:02.260071: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:25:02.289608: Today's load divergence 94.53%, in-day adjustment 89.76%, damping 0.95x, yesterday 68.37% today 94.81% blend 19.1%
2026-08-17 19:25:02.289689: Today's predicted so far 11.99kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 11.99kWh forecast extra.
2026-08-17 19:25:02.289721: Today's actual load so far 11.18kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 19:25:02.329336: Inverter 0: Type SK Sunsynk
2026-08-17 19:25:02.329431: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:25:02.329599: Reserve min: 7%, battery_min: 7%
2026-08-17 19:25:02.329667: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:25:02.329929: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -54W, load power 324W, PV Power 0W
2026-08-17 19:25:02.330075: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:25:02.330157: Inverter 0 scheduled charge enable is False
2026-08-17 19:25:02.330189: Inverter 0 charge windows currently []
2026-08-17 19:25:02.330216: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:25:02.330328: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:25:02.330363: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:25:02.330398: Inverter 0 scheduled discharge enable is False
2026-08-17 19:25:02.330519: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:25:02.330555: Inverter 0 discharge windows currently []
2026-08-17 19:25:02.330578: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:25:02.330598: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:25:02.330615: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:25:02.386929: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:25:02.387027: Plan was last updated on 2026-08-17 19:20:00+01:00 and is now 5.0 minutes old
2026-08-17 19:25:02.387244: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:25:02.387299: Best export window [ ]
2026-08-17 19:25:02.388169: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:25:02.391272: Load divergence over 8.0 hours mean 487.56W, min 344.4W, max 1032.6W, std dev 167.26W, divergence 17.15%
2026-08-17 19:25:02.410973: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:25:02.411094: LoadML is_calculating False
2026-08-17 19:25:02.411155: Creating pool of 12 processes to match your CPU count
2026-08-17 19:25:02.531185: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 609.15p, metric_keep 276.71kWh, min_soc 1.12kWh @ 08-18 03:30:00, load 29.08kWh, PV 0.0kWh
2026-08-17 19:25:02.642730: Battery has 8.08 hours left - now at 7.84kWh
2026-08-17 19:25:02.681379: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 630.85p, metric_keep 277.99kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 29.99kWh, PV 0.0kWh
2026-08-17 19:25:02.756344: predict best10 end_record 08-18 23:35:00, final soc 1.64kWh, metric 330.12p, metric_keep 3.66kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.99kWh, PV 0.0kWh
2026-08-17 19:25:02.833495: predict best end_record 08-18 23:35:00, final soc 2.3kWh, metric 328.83p, metric_keep 0.12kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.08kWh, PV 0.0kWh
2026-08-17 19:25:02.833587: Saving plan best values to HA entities
2026-08-17 19:25:02.988960: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:25:02.993773: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:25:02.998998: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.55kWh, house 0kWh, export 0.0kWh, metric 328.83p, metric10 330.12p
2026-08-17 19:25:03.071681: Marginal costs baseline metric (no standing charge): 282.1984
2026-08-17 19:25:03.316562: Marginal energy costs matrix computed: min=6.59 max=30.62
2026-08-17 19:25:03.380089: Rate array import [{'start': 1165, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1165, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:25:03.380655: - Your estimated bill for today is £1.82 and tomorrow is £1.67
2026-08-17 19:25:03.380696: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:25:03.380715: - The battery is currently at 49% and is in eco mode for the next 4 hours.
2026-08-17 19:25:03.380739: - For the next 48 hours there will be no solar generation.
2026-08-17 19:25:03.380768: - You will reach a minimum of 12% battery in 28 hours.
2026-08-17 19:25:03.380792: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-17 19:25:03.380807:
2026-08-17 19:25:03.427686: Plan calculation took 1.04 seconds
2026-08-17 19:25:03.431489: No high rate period found
2026-08-17 19:25:03.475233: Import threshold used for optimisation was 8.0p
2026-08-17 19:25:03.520774: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:25:03.527279: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:25:03.527463: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:25:03.527606: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:25:03.527895: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:25:03.528061: No export window planned
2026-08-17 19:25:03.528236: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:25:03.528280: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:25:03.528448: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:25:03.528683: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:25:03.528758: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:25:03.528861: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:25:03.529004: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529063: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529165: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529219: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529326: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:25:03.529770: Inverter 0 count register writes 0
2026-08-17 19:25:03.548571: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 19:25:03.554870: Total inverter register writes now 861
2026-08-17 19:25:03.592334: Info: Completed run status Demand
2026-08-17 19:25:03.599986: Info: record_status Demand
2026-08-17 19:25:03.607679: Saved current settings to /config/predbat_config.json
2026-08-17 19:25:03.608043: Compare, best tariff: current metric 104.68p
2026-08-17 19:25:33.706642: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:25:33.706890: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:25:33.706966: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:25:33.707124: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:25:33.707194: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:25:33.707215: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:25:33.707233: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:27:33.915606: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:27:33.915820: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:27:33.915852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:27:33.916146: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:27:33.916186: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:27:33.916204: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:27:33.916219: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:27:37.721964: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 19:27:38.724935: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:27:38.725113: Zero load period starting at 2026-08-17T10:54:00+0100 (511 minutes) for 189 minutes with base value 409.4
2026-08-17 19:27:38.725748: Processing 1345 30-minute periods for power integration
2026-08-17 19:27:38.831515: ML Component: Car charging hold False, car energy reported load False
2026-08-17 19:27:38.931256: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:27:39.027720: ML Temperature data points: 49236
2026-08-17 19:27:39.295551: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 19:27:39.328950: ML Component: Data fetch completed, load data age 59.0 days, 17057 data points
2026-08-17 19:27:39.329120: ML Component: No training needed, model age is 0.24 hours
2026-08-17 19:27:39.329192: ML Component: Generating predictions load data age 59.0 days, 17057 data points
2026-08-17 19:27:39.443467: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0331 max_dow {0: 0.08525277784036266, 1: 0.10017499963007867, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 19:27:39.853552: ML Component: Generated 576 predictions (total 25.26 kWh over 48h)
2026-08-17 19:27:39.887017: ML Component: Prediction cycle completed
2026-08-17 19:27:39.970509: ML Component: Saved 17057 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 19:29:34.129119: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:29:34.129351: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:29:34.129406: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:29:34.129539: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:29:34.129576: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:29:34.129597: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:29:34.129648: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:30:00.238329: --------------- PredBat - update at 2026-08-17 19:30:00+01:00 with clock skew 0 minutes, minutes now 1170
2026-08-17 19:30:00.239051: Saved current settings to /config/predbat_config.json
2026-08-17 19:30:00.239177: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 19:30:00.239278: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:30:00.239393: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:30:00.259181: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:30:00.259359: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:30:00.259687: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:30:00.260544: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:30:00.260769: Predbat mode is set to Control charge & discharge
2026-08-17 19:30:00.472691: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:30:00.472836: Using load_power data to fill gaps in load_today data
2026-08-17 19:30:01.297437: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:30:01.297632: Zero load period starting at 2026-08-17T10:54:00+0100 (516 minutes) for 189 minutes with base value 213.05
2026-08-17 19:30:01.298155: Processing 721 30-minute periods for power integration
2026-08-17 19:30:01.456867: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:30:01.456977: Car charging hold False, threshold 6.0kWh
2026-08-17 19:30:01.457014: Current data so far today: load 10.05kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:30:01.470535: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:30:01.470639: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:30:01.471321: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:30:01.471386: Standing charge is set to 46.63p
2026-08-17 19:30:01.564734: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.565045: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.565344: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.565638: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.565833: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.566010: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.566182: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.566344: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.566503: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:30:01.567537: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:30:01.567653: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:30:01.573282: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:30:01.573748: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:30:01.626150: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:30:01.626258: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:30:01.627681: High export rate found rates in range 99p to -99p
2026-08-17 19:30:01.660607: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:30:01.660754: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:30:01.673531: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:30:01.673983: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.71p, import 1.71p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:30:01.736867: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:30:01.737013: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:30:01.848603: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:30:01.889667: Today's load divergence 94.42%, in-day adjustment 89.76%, damping 0.95x, yesterday 68.37% today 94.7% blend 18.75%
2026-08-17 19:30:01.889760: Today's predicted so far 12.12kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 12.12kWh forecast extra.
2026-08-17 19:30:01.889793: Today's actual load so far 11.29kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 19:30:01.929825: Inverter 0: Type SK Sunsynk
2026-08-17 19:30:01.929942: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:30:01.930232: Reserve min: 7%, battery_min: 7%
2026-08-17 19:30:01.930350: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:30:01.930797: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-17 19:30:01.931018: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:30:01.931147: Inverter 0 scheduled charge enable is False
2026-08-17 19:30:01.931192: Inverter 0 charge windows currently []
2026-08-17 19:30:01.931238: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:30:01.931404: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:30:01.931448: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:30:01.931508: Inverter 0 scheduled discharge enable is False
2026-08-17 19:30:01.931703: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:30:01.931749: Inverter 0 discharge windows currently []
2026-08-17 19:30:01.931786: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:30:01.931827: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:30:01.931848: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:30:01.993861: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:30:01.993972: Plan was last updated on 2026-08-17 19:20:00+01:00 and is now 10.0 minutes old
2026-08-17 19:30:01.994189: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:30:01.994230: Best export window [ ]
2026-08-17 19:30:01.995076: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:30:01.998303: Load divergence over 8.0 hours mean 486.06W, min 353.4W, max 1063.8W, std dev 155.66W, divergence 16.01%
2026-08-17 19:30:02.017638: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:30:02.017776: LoadML is_calculating False
2026-08-17 19:30:02.017868: Creating pool of 12 processes to match your CPU count
2026-08-17 19:30:02.144960: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 609.33p, metric_keep 276.84kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.23kWh, PV 0.0kWh
2026-08-17 19:30:02.281487: Battery has 8.08 hours left - now at 7.84kWh
2026-08-17 19:30:02.324983: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 631.01p, metric_keep 278.12kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 30.14kWh, PV 0.0kWh
2026-08-17 19:30:02.409195: predict best10 end_record 08-18 23:40:00, final soc 1.97kWh, metric 333.27p, metric_keep 3.59kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 30.14kWh, PV 0.0kWh
2026-08-17 19:30:02.489193: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 332.54p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.23kWh, PV 0.0kWh
2026-08-17 19:30:02.489269: Saving plan best values to HA entities
2026-08-17 19:30:02.648950: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:30:02.653947: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:30:02.658716: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 16.02kWh, house 0.0kWh, export 0.0kWh, metric 332.54p, metric10 333.27p
2026-08-17 19:30:02.740060: Marginal costs baseline metric (no standing charge): 285.9066
2026-08-17 19:30:03.021935: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 19:30:03.094857: Rate array import [{'start': 1170, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1170, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:30:03.095575: - Your estimated bill for today is £1.82 and tomorrow is £1.67
2026-08-17 19:30:03.095638: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:30:03.095674: - The battery is currently at 49% and is in eco mode for the next 4 hours.
2026-08-17 19:30:03.095711: - For the next 48 hours there will be no solar generation.
2026-08-17 19:30:03.095739: - You will reach a minimum of 12% battery in 27 hours.
2026-08-17 19:30:03.095762: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-17 19:30:03.095796:
2026-08-17 19:30:03.152076: Plan calculation took 1.16 seconds
2026-08-17 19:30:03.156351: No high rate period found
2026-08-17 19:30:03.240516: Import threshold used for optimisation was 8.0p
2026-08-17 19:30:03.301676: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:30:03.311250: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:30:03.311412: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:30:03.311539: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:30:03.311781: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:30:03.311941: No export window planned
2026-08-17 19:30:03.312103: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:30:03.312147: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:30:03.312306: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:30:03.312466: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:30:03.312520: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:30:03.312577: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:30:03.312669: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312773: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312793: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312812: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312961: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:03.312997: Inverter 0 count register writes 0
2026-08-17 19:30:03.331518: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 19:30:03.331734: Recompute is saving previous plan...
2026-08-17 19:30:03.332742: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 19:30:03.332821: Best export window [ ]
2026-08-17 19:30:03.333726: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:30:03.336981: Load divergence over 8.0 hours mean 486.06W, min 353.4W, max 1063.8W, std dev 155.66W, divergence 16.01%
2026-08-17 19:30:03.351861: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:30:03.352020: LoadML is_calculating False
2026-08-17 19:30:03.352095: Creating pool of 12 processes to match your CPU count
2026-08-17 19:30:03.432616: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 19:30:03.433512: Optimise levels pass started at 2026-08-17 19:30:03
2026-08-17 19:30:03.433566: Optimise all windows, total charge 24 export 1
2026-08-17 19:30:04.029744: >> Region optimisation pass width 960 gives best_metric 386.6p, best_cost 409.92p, best_cycle 48.43kWh, best_import 31.52kWh
2026-08-17 19:30:04.194461: >> Region optimisation pass width 480 gives best_metric 386.6p, best_cost 409.92p, best_cycle 48.43kWh, best_import 31.52kWh
2026-08-17 19:30:04.460016: >> Region optimisation pass width 240 gives best_metric 386.6p, best_cost 409.92p, best_cycle 48.43kWh, best_import 31.52kWh
2026-08-17 19:30:04.984121: >> Region optimisation pass width 120 gives best_metric 386.6p, best_cost 409.92p, best_cycle 48.43kWh, best_import 31.52kWh
2026-08-17 19:30:04.984330: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 19:30:04.984411: Optimise levels pass ended at 2026-08-17 19:30:04, duration 1.6 seconds tried 54 combinations
2026-08-17 19:30:04.984485: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 386.6p, best_keep 0kWh, best_cycle 48.43kWh, best_carbon 0kg, best_import 31.52kWh
2026-08-17 19:30:05.000059: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 19:30:07.164578: Tweak plan optimisation started metric 266.15p, cost 278.96p
2026-08-17 19:30:07.423433: Tweak optimisation finished metric 266.15p, cost 278.96p, metric_keep 0kWh, cycle 27.87kWh, carbon 0kg, import 15.15kWh, changed 8 window(s)
2026-08-17 19:30:07.443110: Swap charge optimisation started metric 266.15p, cost 278.96p, min_improvement_swap 0.1p
2026-08-17 19:30:08.043747: Swap charge optimisation finished metric 266.15p, cost 278.96p
2026-08-17 19:30:08.115632: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:30:08.115946: Unclipped charge windows [ 17-08 23:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:30:08.116115: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:30:08.116231: Filtered charge windows [ 17-08 23:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 97%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:30:08.159750: Previous plan best metric is 265.49 (cost 277.72) and new plan best metric is 266.15 (cost 278.96)
2026-08-17 19:30:08.160012: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 19:30:08.160154: Plan valid is now true after recompute was False
2026-08-17 19:30:08.197697: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.81p, metric_keep 276.25kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.04kWh, PV 0.0kWh
2026-08-17 19:30:08.321693: Battery has 8.08 hours left - now at 7.84kWh
2026-08-17 19:30:08.370955: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 629.42p, metric_keep 277.53kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.94kWh, PV 0.0kWh
2026-08-17 19:30:08.449977: predict best10 end_record 08-18 23:30:00, final soc 1.32kWh, metric 326.12p, metric_keep 3.46kWh, min_soc 1.32kWh @ 08-18 23:25:00, load 29.94kWh, PV 0.0kWh
2026-08-17 19:30:08.529473: predict best end_record 08-18 23:30:00, final soc 1.92kWh, metric 324.36p, metric_keep 0.11kWh, min_soc 1.92kWh @ 08-18 23:25:00, load 29.04kWh, PV 0.0kWh
2026-08-17 19:30:08.529566: Saving plan best values to HA entities
2026-08-17 19:30:08.684690: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:30:08.690569: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:30:08.696767: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 14.99kWh, house 0.0kWh, export 0.0kWh, metric 324.36p, metric10 326.12p
2026-08-17 19:30:08.771952: Marginal costs baseline metric (no standing charge): 277.7239
2026-08-17 19:30:09.048340: Marginal energy costs matrix computed: min=8.0 max=30.59
2026-08-17 19:30:09.112673: Rate array import [{'start': 1170, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1170, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:30:09.113303: - Your estimated bill for today is £1.82 and tomorrow is £1.67
2026-08-17 19:30:09.113346: - Import rates are very expensive (33.8p) for the next 4 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:30:09.113369: - The battery is currently at 49% and is in eco mode for the next 4 hours.
2026-08-17 19:30:09.113388: - For the next 48 hours there will be no solar generation.
2026-08-17 19:30:09.113410: - You will reach a minimum of 12% battery in 27 hours.
2026-08-17 19:30:09.113427: - Your next charge slot will be in 4 hours where import rates will be cheap (8.0p).
2026-08-17 19:30:09.113444:
2026-08-17 19:30:09.168935: Plan calculation took 5.84 seconds
2026-08-17 19:30:09.169326: Inverter 0: Type SK Sunsynk
2026-08-17 19:30:09.169378: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:30:09.169607: Reserve min: 7%, battery_min: 7%
2026-08-17 19:30:09.169687: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:30:09.170034: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-17 19:30:09.170263: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:30:09.170360: Inverter 0 scheduled charge enable is False
2026-08-17 19:30:09.170396: Inverter 0 charge windows currently []
2026-08-17 19:30:09.170425: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:30:09.170553: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:30:09.170623: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:30:09.170682: Inverter 0 scheduled discharge enable is False
2026-08-17 19:30:09.170823: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:30:09.170861: Inverter 0 discharge windows currently []
2026-08-17 19:30:09.170889: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:30:09.170930: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:30:09.170964: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:30:09.224435: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:30:09.224619: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:30:09.224693: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:30:09.224867: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:30:09.224950: No export window planned
2026-08-17 19:30:09.225056: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:30:09.225094: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:30:09.225230: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:30:09.225390: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:30:09.225441: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:30:09.225499: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:30:09.225582: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225642: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225730: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225758: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225860: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.225996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.226029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:30:09.226050: Inverter 0 count register writes 0
2026-08-17 19:30:09.250720: Total inverter register writes now 861
2026-08-17 19:30:09.285274: Info: Completed run status Demand
2026-08-17 19:30:09.292335: Info: record_status Demand
2026-08-17 19:30:09.301565: Saved current settings to /config/predbat_config.json
2026-08-17 19:30:09.301881: Compare, best tariff: current metric 104.68p
2026-08-17 19:30:49.415892: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:30:49.416155: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:30:49.416214: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:30:49.416359: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:30:49.416397: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:30:49.416438: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:30:49.416462: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:33:03.657295: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:33:03.657551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:33:03.657593: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:33:03.657728: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:33:03.657765: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:33:03.657786: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:33:03.657803: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:35:00.868616: --------------- PredBat - update at 2026-08-17 19:35:00+01:00 with clock skew 0 minutes, minutes now 1175
2026-08-17 19:35:00.869391: Saved current settings to /config/predbat_config.json
2026-08-17 19:35:00.869572: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 19:35:00.869663: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:35:00.869734: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:35:00.888213: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:35:00.888339: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:35:00.888519: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:35:00.889087: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:35:00.889212: Predbat mode is set to Control charge & discharge
2026-08-17 19:35:01.075978: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:35:01.076137: Using load_power data to fill gaps in load_today data
2026-08-17 19:35:01.899036: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:35:01.899280: Zero load period starting at 2026-08-17T10:54:00+0100 (521 minutes) for 189 minutes with base value 213.0
2026-08-17 19:35:01.899982: Processing 721 30-minute periods for power integration
2026-08-17 19:35:02.058178: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:35:02.058290: Car charging hold False, threshold 6.0kWh
2026-08-17 19:35:02.058328: Current data so far today: load 10.1kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:35:02.072780: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:35:02.072872: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:35:02.073499: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:35:02.073558: Standing charge is set to 46.63p
2026-08-17 19:35:02.152828: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.153038: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.153205: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.153371: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.153532: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.153673: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.153817: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.153949: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.154088: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:35:02.154980: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:35:02.155064: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:35:02.159396: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:35:02.159817: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:35:02.203779: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:35:02.203964: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:35:02.206265: High export rate found rates in range 99p to -99p
2026-08-17 19:35:02.230921: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:35:02.231033: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:35:02.241253: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:35:02.241663: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 1.51p, import 1.51p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:35:02.300573: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:35:02.300712: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:35:02.398568: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:35:02.426579: Today's load divergence 94.04%, in-day adjustment 89.56%, damping 0.95x, yesterday 68.37% today 94.34% blend 18.4%
2026-08-17 19:35:02.426656: Today's predicted so far 12.24kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 12.24kWh forecast extra.
2026-08-17 19:35:02.426682: Today's actual load so far 11.35kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 19:35:02.454979: Inverter 0: Type SK Sunsynk
2026-08-17 19:35:02.455059: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:35:02.455226: Reserve min: 7%, battery_min: 7%
2026-08-17 19:35:02.455292: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:35:02.455568: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 263W, current battery voltage 51.2V, grid power -54W, load power 326W, PV Power 0W
2026-08-17 19:35:02.455720: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:35:02.455802: Inverter 0 scheduled charge enable is False
2026-08-17 19:35:02.455830: Inverter 0 charge windows currently []
2026-08-17 19:35:02.455865: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:35:02.456024: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:35:02.456072: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:35:02.456108: Inverter 0 scheduled discharge enable is False
2026-08-17 19:35:02.456230: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:35:02.456266: Inverter 0 discharge windows currently []
2026-08-17 19:35:02.456289: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:35:02.456312: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:35:02.456329: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:35:02.509861: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:35:02.509969: Plan was last updated on 2026-08-17 19:30:00+01:00 and is now 5.0 minutes old
2026-08-17 19:35:02.510169: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:35:02.510209: Best export window [ ]
2026-08-17 19:35:02.511385: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:35:02.515104: Load divergence over 8.0 hours mean 484.58W, min 322.2W, max 1002.6W, std dev 160.42W, divergence 16.55%
2026-08-17 19:35:02.537248: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:35:02.537376: LoadML is_calculating False
2026-08-17 19:35:02.537435: Creating pool of 12 processes to match your CPU count
2026-08-17 19:35:02.657562: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.96p, metric_keep 276.21kWh, min_soc 1.12kWh @ 08-18 03:40:00, load 29.12kWh, PV 0.0kWh
2026-08-17 19:35:02.785908: Battery has 8.08 hours left - now at 7.84kWh
2026-08-17 19:35:02.832418: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 629.56p, metric_keep 277.51kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 30.02kWh, PV 0.0kWh
2026-08-17 19:35:02.927311: predict best10 end_record 08-18 23:35:00, final soc 1.65kWh, metric 329.1p, metric_keep 3.57kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 30.02kWh, PV 0.0kWh
2026-08-17 19:35:03.014179: predict best end_record 08-18 23:35:00, final soc 2.32kWh, metric 328.01p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.12kWh, PV 0.0kWh
2026-08-17 19:35:03.014283: Saving plan best values to HA entities
2026-08-17 19:35:03.199954: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 19:35:03.216109: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 19:35:03.221481: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.45kWh, house 0.0kWh, export 0.0kWh, metric 328.01p, metric10 329.1p
2026-08-17 19:35:03.305401: Marginal costs baseline metric (no standing charge): 281.3805
2026-08-17 19:35:03.532205: Marginal energy costs matrix computed: min=7.97 max=30.58
2026-08-17 19:35:03.606498: Rate array import [{'start': 1175, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1175, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:35:03.607166: - Your estimated bill for today is £1.81 and tomorrow is £1.67
2026-08-17 19:35:03.607209: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:35:03.607231: - The battery is currently at 49% and is in eco mode for the next 3 hours.
2026-08-17 19:35:03.607250: - For the next 48 hours there will be no solar generation.
2026-08-17 19:35:03.607271: - You will reach a minimum of 12% battery in 27 hours.
2026-08-17 19:35:03.607288: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-17 19:35:03.607306:
2026-08-17 19:35:03.658699: Plan calculation took 1.15 seconds
2026-08-17 19:35:03.663035: No high rate period found
2026-08-17 19:35:03.716198: Import threshold used for optimisation was 8.0p
2026-08-17 19:35:03.771299: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:35:03.778005: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:35:03.778167: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:35:03.778312: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:35:03.778598: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:35:03.778702: No export window planned
2026-08-17 19:35:03.778828: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:35:03.778862: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:35:03.779026: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:35:03.779276: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:35:03.779371: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:35:03.779487: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:35:03.779628: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.779693: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.779749: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.779798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.779844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.779896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.779999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:35:03.780484: Inverter 0 count register writes 0
2026-08-17 19:35:03.798717: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 19:35:03.804482: Total inverter register writes now 861
2026-08-17 19:35:03.838610: Info: Completed run status Demand
2026-08-17 19:35:03.844251: Info: record_status Demand
2026-08-17 19:35:03.857932: Saved current settings to /config/predbat_config.json
2026-08-17 19:35:03.858269: Compare, best tariff: current metric 104.68p
2026-08-17 19:35:33.967196: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:35:33.967420: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:35:33.967490: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:35:33.967633: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:35:33.967673: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:35:33.967723: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:35:33.967744: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:37:34.206335: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:37:34.206678: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:37:34.206742: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:37:34.206961: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:37:34.207012: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:37:34.207045: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:37:34.207080: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:39:34.414959: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:39:34.415234: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:39:34.415287: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:39:34.415475: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:39:34.415520: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:39:34.415542: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:39:34.415564: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:40:00.539138: --------------- PredBat - update at 2026-08-17 19:40:00+01:00 with clock skew 0 minutes, minutes now 1180
2026-08-17 19:40:00.540166: Saved current settings to /config/predbat_config.json
2026-08-17 19:40:00.540343: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 19:40:00.540505: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:40:00.540640: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:40:00.563114: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:40:00.563287: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:40:00.563557: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:40:00.564236: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:40:00.564628: Predbat mode is set to Control charge & discharge
2026-08-17 19:40:00.759404: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:40:00.759546: Using load_power data to fill gaps in load_today data
2026-08-17 19:40:01.470063: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:40:01.470466: Zero load period starting at 2026-08-17T10:54:00+0100 (526 minutes) for 189 minutes with base value 212.95
2026-08-17 19:40:01.470980: Processing 721 30-minute periods for power integration
2026-08-17 19:40:01.627430: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:40:01.627568: Car charging hold False, threshold 6.0kWh
2026-08-17 19:40:01.627612: Current data so far today: load 10.0kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:40:01.644515: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:40:01.644647: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:40:01.645430: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:40:01.645493: Standing charge is set to 46.63p
2026-08-17 19:40:01.739633: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.739891: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.740091: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.740246: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.740404: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.740549: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.740700: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.740837: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.740973: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:40:01.741845: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:40:01.741927: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:40:01.746393: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:40:01.746675: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:40:01.781965: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:40:01.782063: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:40:01.783224: High export rate found rates in range 99p to -99p
2026-08-17 19:40:01.807050: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:40:01.807130: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:40:01.817476: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:40:01.817787: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 1.29p, import 1.29p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:40:01.863695: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:40:01.863828: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:40:01.944088: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:40:01.967599: Today's load divergence 93.22%, in-day adjustment 89.01%, damping 0.95x, yesterday 68.37% today 93.56% blend 18.06%
2026-08-17 19:40:01.967680: Today's predicted so far 12.25kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 12.25kWh forecast extra.
2026-08-17 19:40:01.967705: Today's actual load so far 11.25kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 19:40:02.001747: Inverter 0: Type SK Sunsynk
2026-08-17 19:40:02.001831: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:40:02.002004: Reserve min: 7%, battery_min: 7%
2026-08-17 19:40:02.002081: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:40:02.002352: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-17 19:40:02.002518: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:40:02.002600: Inverter 0 scheduled charge enable is False
2026-08-17 19:40:02.002627: Inverter 0 charge windows currently []
2026-08-17 19:40:02.002659: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:40:02.002763: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:40:02.002798: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:40:02.002834: Inverter 0 scheduled discharge enable is False
2026-08-17 19:40:02.002951: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:40:02.002987: Inverter 0 discharge windows currently []
2026-08-17 19:40:02.003010: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:40:02.003028: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:40:02.003050: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:40:02.052319: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:40:02.052421: Plan was last updated on 2026-08-17 19:30:00+01:00 and is now 10.0 minutes old
2026-08-17 19:40:02.052597: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:40:02.052631: Best export window [ ]
2026-08-17 19:40:02.053229: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:40:02.055767: Load divergence over 8.0 hours mean 484.59W, min 336.6W, max 1039.2W, std dev 162.25W, divergence 16.74%
2026-08-17 19:40:02.070849: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:40:02.070926: LoadML is_calculating False
2026-08-17 19:40:02.070974: Creating pool of 12 processes to match your CPU count
2026-08-17 19:40:02.173833: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.21p, metric_keep 276.15kWh, min_soc 1.12kWh @ 08-18 03:50:00, load 29.05kWh, PV 0.0kWh
2026-08-17 19:40:02.283580: Battery has 8.17 hours left - now at 7.84kWh
2026-08-17 19:40:02.327217: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 629.83p, metric_keep 277.49kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.96kWh, PV 0.0kWh
2026-08-17 19:40:02.406519: predict best10 end_record 08-18 23:40:00, final soc 1.98kWh, metric 332.05p, metric_keep 3.61kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.96kWh, PV 0.0kWh
2026-08-17 19:40:02.477562: predict best end_record 08-18 23:40:00, final soc 2.7kWh, metric 331.59p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 29.05kWh, PV 0.0kWh
2026-08-17 19:40:02.477649: Saving plan best values to HA entities
2026-08-17 19:40:02.636617: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:40:02.642149: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:40:02.647659: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 15.9kWh, house 0.0kWh, export 0.0kWh, metric 331.59p, metric10 332.05p
2026-08-17 19:40:02.739752: Marginal costs baseline metric (no standing charge): 284.9535
2026-08-17 19:40:03.023428: Marginal energy costs matrix computed: min=7.95 max=30.58
2026-08-17 19:40:03.103271: Rate array import [{'start': 1180, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1180, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:40:03.104188: - Your estimated bill for today is £1.81 and tomorrow is £1.66
2026-08-17 19:40:03.104249: - Import rates are very expensive (33.8p) for the next 3 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:40:03.104273: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-17 19:40:03.104292: - For the next 48 hours there will be no solar generation.
2026-08-17 19:40:03.104309: - You will reach a minimum of 12% battery in 27 hours.
2026-08-17 19:40:03.104333: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 19:40:03.104351:
2026-08-17 19:40:03.159892: Plan calculation took 1.11 seconds
2026-08-17 19:40:03.162806: No high rate period found
2026-08-17 19:40:03.217000: Import threshold used for optimisation was 8.0p
2026-08-17 19:40:03.308243: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:40:03.317602: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:40:03.317830: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:40:03.317992: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:40:03.318427: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:40:03.318571: No export window planned
2026-08-17 19:40:03.318797: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:40:03.318861: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:40:03.319135: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:40:03.319453: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:40:03.319553: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:40:03.319668: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:40:03.319823: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.319949: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320124: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320193: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320251: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320735: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:03.320861: Inverter 0 count register writes 0
2026-08-17 19:40:03.345138: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 19:40:03.345352: Recompute is saving previous plan...
2026-08-17 19:40:03.346342: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 19:40:03.346410: Best export window [ ]
2026-08-17 19:40:03.347233: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:40:03.351771: Load divergence over 8.0 hours mean 484.59W, min 336.6W, max 1039.2W, std dev 162.25W, divergence 16.74%
2026-08-17 19:40:03.383526: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:40:03.383650: LoadML is_calculating False
2026-08-17 19:40:03.383716: Creating pool of 12 processes to match your CPU count
2026-08-17 19:40:03.473955: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(2.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 19:40:03.475150: Optimise levels pass started at 2026-08-17 19:40:03
2026-08-17 19:40:03.475225: Optimise all windows, total charge 24 export 1
2026-08-17 19:40:03.919131: >> Region optimisation pass width 960 gives best_metric 387.22p, best_cost 420.02p, best_cycle 46.78kWh, best_import 32.78kWh
2026-08-17 19:40:04.075938: >> Region optimisation pass width 480 gives best_metric 387.22p, best_cost 420.02p, best_cycle 46.78kWh, best_import 32.78kWh
2026-08-17 19:40:04.319883: >> Region optimisation pass width 240 gives best_metric 387.22p, best_cost 420.02p, best_cycle 46.78kWh, best_import 32.78kWh
2026-08-17 19:40:04.927071: >> Region optimisation pass width 120 gives best_metric 387.22p, best_cost 420.02p, best_cycle 46.78kWh, best_import 32.78kWh
2026-08-17 19:40:04.927285: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 19:40:04.927359: Optimise levels pass ended at 2026-08-17 19:40:04, duration 1.5 seconds tried 58 combinations
2026-08-17 19:40:04.927446: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 387.22p, best_keep 0.1kWh, best_cycle 46.78kWh, best_carbon 0kg, best_import 32.78kWh
2026-08-17 19:40:04.949997: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 19:40:07.612704: Tweak plan optimisation started metric 263.21p, cost 275.31p
2026-08-17 19:40:07.937498: Tweak optimisation finished metric 263.21p, cost 275.31p, metric_keep 0.1kWh, cycle 24.67kWh, carbon 0kg, import 14.69kWh, changed 8 window(s)
2026-08-17 19:40:07.958669: Swap charge optimisation started metric 263.21p, cost 275.31p, min_improvement_swap 0.1p
2026-08-17 19:40:08.419063: Swap charge optimisation finished metric 263.21p, cost 275.31p
2026-08-17 19:40:08.565512: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 91%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 91%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 91%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 91%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:40:08.566005: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:40:08.566225: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:40:08.566422: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:40:08.604455: Previous plan best metric is 264.36 (cost 276.67) and new plan best metric is 263.21 (cost 275.31)
2026-08-17 19:40:08.604689: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 19:40:08.604802: Plan valid is now true after recompute was False
2026-08-17 19:40:08.629798: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 606.59p, metric_keep 275.56kWh, min_soc 1.12kWh @ 08-18 03:50:00, load 28.85kWh, PV 0.0kWh
2026-08-17 19:40:08.733930: Battery has 8.17 hours left - now at 7.84kWh
2026-08-17 19:40:08.785047: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 628.13p, metric_keep 276.9kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.74kWh, PV 0.0kWh
2026-08-17 19:40:08.860817: predict best10 end_record 08-18 23:30:00, final soc 1.33kWh, metric 324.8p, metric_keep 3.49kWh, min_soc 1.33kWh @ 08-18 23:25:00, load 29.74kWh, PV 0.0kWh
2026-08-17 19:40:08.930506: predict best end_record 08-18 23:30:00, final soc 1.93kWh, metric 323.3p, metric_keep 0.1kWh, min_soc 1.93kWh @ 08-18 23:25:00, load 28.85kWh, PV 0.0kWh
2026-08-17 19:40:08.930596: Saving plan best values to HA entities
2026-08-17 19:40:09.083690: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:40:09.090534: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:40:09.098168: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 14.86kWh, house 0.0kWh, export 0.0kWh, metric 323.3p, metric10 324.8p
2026-08-17 19:40:09.175141: Marginal costs baseline metric (no standing charge): 276.6692
2026-08-17 19:40:09.468104: Marginal energy costs matrix computed: min=7.95 max=30.58
2026-08-17 19:40:09.553471: Rate array import [{'start': 1180, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1180, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:40:09.554283: - Your estimated bill for today is £1.81 and tomorrow is £1.66
2026-08-17 19:40:09.554337: - Import rates are very expensive (33.8p) for the next 3 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:40:09.554376: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-17 19:40:09.554398: - For the next 48 hours there will be no solar generation.
2026-08-17 19:40:09.554416: - You will reach a minimum of 12% battery in 27 hours.
2026-08-17 19:40:09.554439: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 19:40:09.554456:
2026-08-17 19:40:09.610740: Plan calculation took 6.27 seconds
2026-08-17 19:40:09.611093: Inverter 0: Type SK Sunsynk
2026-08-17 19:40:09.611151: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:40:09.611495: Reserve min: 7%, battery_min: 7%
2026-08-17 19:40:09.611623: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:40:09.612090: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 327W, PV Power 0W
2026-08-17 19:40:09.612427: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:40:09.612569: Inverter 0 scheduled charge enable is False
2026-08-17 19:40:09.612614: Inverter 0 charge windows currently []
2026-08-17 19:40:09.612669: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:40:09.612797: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:40:09.612837: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:40:09.612878: Inverter 0 scheduled discharge enable is False
2026-08-17 19:40:09.613013: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:40:09.613050: Inverter 0 discharge windows currently []
2026-08-17 19:40:09.613073: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:40:09.613092: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:40:09.613113: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:40:09.675666: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:30:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:40:09.675819: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:40:09.675889: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:40:09.676133: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:40:09.676220: No export window planned
2026-08-17 19:40:09.676346: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:40:09.676409: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:40:09.676558: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:40:09.676720: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:40:09.676777: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:40:09.676834: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:40:09.676929: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.676976: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677031: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677060: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677085: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677115: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677286: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:40:09.677428: Inverter 0 count register writes 0
2026-08-17 19:40:09.704778: Total inverter register writes now 861
2026-08-17 19:40:09.739210: Info: Completed run status Demand
2026-08-17 19:40:09.745929: Info: record_status Demand
2026-08-17 19:40:09.753178: Saved current settings to /config/predbat_config.json
2026-08-17 19:40:09.753605: Compare, best tariff: current metric 104.68p
2026-08-17 19:40:48.862284: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:40:48.862506: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:40:48.862548: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:40:48.862704: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:40:48.862738: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:40:48.862755: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:40:48.862769: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:42:49.068762: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:42:49.068990: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:42:49.069025: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:42:49.069153: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:42:49.069192: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:42:49.069213: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:42:49.069231: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:43:48.684857: Web interface setting input_number.predbat_best_soc_keep to 1.0
2026-08-17 19:43:48.685098: number_event: input_number.predbat_best_soc_keep = 1.0
2026-08-17 19:43:49.214918: Refreshing Predbat configuration
2026-08-17 19:43:49.850640: Saved current settings to /config/predbat_config.json
2026-08-17 19:43:49.852629: Validation of apps.yaml was successful
2026-08-17 19:43:49.852804: --------------- PredBat - update at 2026-08-17 19:40:00+01:00 with clock skew 0 minutes, minutes now 1180
2026-08-17 19:43:49.853332: Saved current settings to /config/predbat_config.json
2026-08-17 19:43:49.853451: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 33.8 minutes
2026-08-17 19:43:49.853558: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:43:49.853679: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:43:49.872303: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:43:49.872484: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:43:49.872656: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:43:49.873245: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:43:49.873386: Predbat mode is set to Control charge & discharge
2026-08-17 19:43:50.057301: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:43:50.057450: Using load_power data to fill gaps in load_today data
2026-08-17 19:43:50.873017: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:43:50.873215: Zero load period starting at 2026-08-17T10:54:00+0100 (526 minutes) for 189 minutes with base value 212.95
2026-08-17 19:43:50.873745: Processing 721 30-minute periods for power integration
2026-08-17 19:43:51.033450: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:43:51.033556: Car charging hold False, threshold 6.0kWh
2026-08-17 19:43:51.033593: Current data so far today: load 10.0kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:43:51.047039: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:43:51.047114: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:43:51.047780: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:43:51.047841: Standing charge is set to 46.63p
2026-08-17 19:43:51.141327: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.141601: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.141791: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.141977: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.142152: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.142324: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.142523: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.142688: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.142858: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:43:51.143943: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:43:51.144066: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:43:51.150745: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:43:51.151290: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:43:51.197726: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:43:51.197846: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:43:51.199718: High export rate found rates in range 99p to -99p
2026-08-17 19:43:51.230620: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:43:51.230768: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:43:51.243320: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:43:51.243704: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 1.29p, import 1.29p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:43:51.293603: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:43:51.293716: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:43:51.377942: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:43:51.406959: Today's load divergence 93.22%, in-day adjustment 89.01%, damping 0.95x, yesterday 68.37% today 93.56% blend 18.06%
2026-08-17 19:43:51.407065: Today's predicted so far 12.25kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 12.25kWh forecast extra.
2026-08-17 19:43:51.407096: Today's actual load so far 11.25kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 19:43:51.437191: Inverter 0: Type SK Sunsynk
2026-08-17 19:43:51.437273: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:43:51.437456: Reserve min: 7%, battery_min: 7%
2026-08-17 19:43:51.437526: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:43:51.437775: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -53W, load power 324W, PV Power 0W
2026-08-17 19:43:51.437922: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:43:51.438015: Inverter 0 scheduled charge enable is False
2026-08-17 19:43:51.438048: Inverter 0 charge windows currently []
2026-08-17 19:43:51.438074: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:43:51.438175: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:43:51.438209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:43:51.438243: Inverter 0 scheduled discharge enable is False
2026-08-17 19:43:51.438388: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:43:51.438426: Inverter 0 discharge windows currently []
2026-08-17 19:43:51.438449: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:43:51.438467: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:43:51.438484: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:43:51.497166: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:43:51.497233: Will recompute the plan as it is invalid
2026-08-17 19:43:51.497263: Recompute, previous plan is invalid...
2026-08-17 19:43:51.498016: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 19:43:51.498059: Best export window [ ]
2026-08-17 19:43:51.498975: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:43:51.502530: Load divergence over 8.0 hours mean 484.59W, min 336.6W, max 1039.2W, std dev 162.25W, divergence 16.74%
2026-08-17 19:43:51.523933: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:43:51.524293: LoadML is_calculating False
2026-08-17 19:43:51.524395: Creating pool of 12 processes to match your CPU count
2026-08-17 19:43:51.600824: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 19:43:51.601678: Optimise levels pass started at 2026-08-17 19:43:51
2026-08-17 19:43:51.602088: Optimise all windows, total charge 24 export 1
2026-08-17 19:43:52.122292: >> Region optimisation pass width 960 gives best_metric 383.88p, best_cost 399.04p, best_cycle 45.3kWh, best_import 30.16kWh
2026-08-17 19:43:52.274014: >> Region optimisation pass width 480 gives best_metric 383.88p, best_cost 399.04p, best_cycle 45.3kWh, best_import 30.16kWh
2026-08-17 19:43:52.547985: >> Region optimisation pass width 240 gives best_metric 383.88p, best_cost 399.04p, best_cycle 45.3kWh, best_import 30.16kWh
2026-08-17 19:43:53.089436: >> Region optimisation pass width 120 gives best_metric 383.88p, best_cost 399.04p, best_cycle 45.3kWh, best_import 30.16kWh
2026-08-17 19:43:53.089676: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 19:43:53.089779: Optimise levels pass ended at 2026-08-17 19:43:53, duration 1.5 seconds tried 64 combinations
2026-08-17 19:43:53.089879: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 383.88p, best_keep 0kWh, best_cycle 45.3kWh, best_carbon 0kg, best_import 30.16kWh
2026-08-17 19:43:53.108654: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 19:43:55.519054: Tweak plan optimisation started metric 262.83p, cost 273.16p
2026-08-17 19:43:55.826206: Tweak optimisation finished metric 262.83p, cost 273.16p, metric_keep 0kWh, cycle 24.41kWh, carbon 0kg, import 14.42kWh, changed 8 window(s)
2026-08-17 19:43:55.850624: Swap charge optimisation started metric 262.83p, cost 273.16p, min_improvement_swap 0.1p
2026-08-17 19:43:56.492409: Swap charge optimisation finished metric 262.83p, cost 273.16p
2026-08-17 19:43:56.619188: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 261.63p -> 261.47p, plan now metric 263.69p, cost 271.18p, cycle 24.67kWh, import 14.18kWh
2026-08-17 19:43:56.626737: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:43:56.627035: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:43:56.627212: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:43:56.627365: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:43:56.627649: Plan valid is now true after recompute was False
2026-08-17 19:43:56.651896: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 606.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:50:00, load 28.85kWh, PV 0.0kWh
2026-08-17 19:43:56.755465: Battery has 8.17 hours left - now at 7.84kWh
2026-08-17 19:43:56.797186: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 628.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.74kWh, PV 0.0kWh
2026-08-17 19:43:56.865551: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 330.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.74kWh, PV 0.0kWh
2026-08-17 19:43:56.942332: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 317.82p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.85kWh, PV 0.0kWh
2026-08-17 19:43:56.942434: Saving plan best values to HA entities
2026-08-17 19:43:57.098809: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:43:57.103822: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:43:57.109257: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.18kWh, house 0.0kWh, export 0.0kWh, metric 317.82p, metric10 330.6p
2026-08-17 19:43:57.176516: Marginal costs baseline metric (no standing charge): 271.1841
2026-08-17 19:43:57.394981: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 19:43:57.463452: Rate array import [{'start': 1180, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1180, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:43:57.464060: - Your estimated bill for today is £1.81 and tomorrow is £1.60
2026-08-17 19:43:57.464101: - Import rates are very expensive (33.8p) for the next 3 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:43:57.464120: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-17 19:43:57.464135: - For the next 48 hours there will be no solar generation.
2026-08-17 19:43:57.464149: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 19:43:57.464163: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 19:43:57.464176:
2026-08-17 19:43:57.512076: Plan calculation took 6.01 seconds
2026-08-17 19:43:57.516277: Saved plan to storage
2026-08-17 19:43:57.519858: No high rate period found
2026-08-17 19:43:57.564228: Import threshold used for optimisation was 8.0p
2026-08-17 19:43:57.610788: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:43:57.617311: Inverter 0: Type SK Sunsynk
2026-08-17 19:43:57.617405: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:43:57.617611: Reserve min: 7%, battery_min: 7%
2026-08-17 19:43:57.617682: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:43:57.617973: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 264W, current battery voltage 51.2V, grid power -53W, load power 324W, PV Power 0W
2026-08-17 19:43:57.618191: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:43:57.618286: Inverter 0 scheduled charge enable is False
2026-08-17 19:43:57.618311: Inverter 0 charge windows currently []
2026-08-17 19:43:57.618348: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:43:57.618444: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:43:57.618475: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:43:57.618507: Inverter 0 scheduled discharge enable is False
2026-08-17 19:43:57.618606: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:43:57.618636: Inverter 0 discharge windows currently []
2026-08-17 19:43:57.618654: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:43:57.618669: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:43:57.618686: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:43:57.668655: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:43:57.668799: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:43:57.668873: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:43:57.669046: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:43:57.669127: No export window planned
2026-08-17 19:43:57.669243: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:43:57.669278: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:43:57.669436: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:43:57.669603: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:43:57.669682: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:43:57.669765: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:43:57.669862: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.669895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.669942: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.669969: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.669995: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670019: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:43:57.670291: Inverter 0 count register writes 0
2026-08-17 19:43:57.691740: Total inverter register writes now 861
2026-08-17 19:43:57.720574: Info: Completed run status Demand
2026-08-17 19:43:57.725969: Info: record_status Demand
2026-08-17 19:43:57.731592: Saved current settings to /config/predbat_config.json
2026-08-17 19:43:57.731843: Compare, best tariff: current metric 104.68p
2026-08-17 19:43:57.794238: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-17 19:44:33.834545: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:44:33.834763: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:44:33.834795: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:44:33.834911: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:44:33.834965: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:44:33.834982: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:44:33.834996: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:45:00.942819: --------------- PredBat - update at 2026-08-17 19:45:00+01:00 with clock skew 0 minutes, minutes now 1185
2026-08-17 19:45:00.943567: Saved current settings to /config/predbat_config.json
2026-08-17 19:45:00.943724: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 19:45:00.943813: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:45:00.943997: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:45:00.961623: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:45:00.961722: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:45:00.961870: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:45:00.962279: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:45:00.962390: Predbat mode is set to Control charge & discharge
2026-08-17 19:45:01.142204: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:45:01.142324: Using load_power data to fill gaps in load_today data
2026-08-17 19:45:01.979747: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:45:01.979977: Zero load period starting at 2026-08-17T10:54:00+0100 (531 minutes) for 189 minutes with base value 212.9
2026-08-17 19:45:01.980616: Processing 721 30-minute periods for power integration
2026-08-17 19:45:02.153662: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:45:02.153766: Car charging hold False, threshold 6.0kWh
2026-08-17 19:45:02.153801: Current data so far today: load 10.0kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:45:02.167119: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:45:02.167193: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:45:02.167824: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:45:02.167882: Standing charge is set to 46.63p
2026-08-17 19:45:02.250713: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.251162: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.251380: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.251574: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.251750: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.251954: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.252140: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.252305: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.252495: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:45:02.253548: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:45:02.253647: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:45:02.259047: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:45:02.259457: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:45:02.302099: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:45:02.302210: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:45:02.303590: High export rate found rates in range 99p to -99p
2026-08-17 19:45:02.331766: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:45:02.331863: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:45:02.342598: Battery level now 7.84kWh, -1hr ago 8.16kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:45:02.342959: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 1.08p, import 1.08p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:45:02.397446: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:45:02.397611: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:45:02.501540: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:45:02.536859: Today's load divergence 93.12%, in-day adjustment 89.02%, damping 0.95x, yesterday 68.37% today 93.46% blend 17.71%
2026-08-17 19:45:02.536995: Today's predicted so far 12.25kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 12.25kWh forecast extra.
2026-08-17 19:45:02.537060: Today's actual load so far 11.24kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 19:45:02.573541: Inverter 0: Type SK Sunsynk
2026-08-17 19:45:02.573618: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:45:02.573827: Reserve min: 7%, battery_min: 7%
2026-08-17 19:45:02.573904: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:45:02.574154: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 261W, current battery voltage 51.2V, grid power -54W, load power 323W, PV Power 0W
2026-08-17 19:45:02.574302: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:45:02.574406: Inverter 0 scheduled charge enable is False
2026-08-17 19:45:02.574443: Inverter 0 charge windows currently []
2026-08-17 19:45:02.574470: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:45:02.574578: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:45:02.574613: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:45:02.574649: Inverter 0 scheduled discharge enable is False
2026-08-17 19:45:02.574773: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:45:02.574809: Inverter 0 discharge windows currently []
2026-08-17 19:45:02.574831: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:45:02.574850: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:45:02.574867: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:45:02.635135: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:45:02.635227: Plan was last updated on 2026-08-17 19:40:00+01:00 and is now 5.0 minutes old
2026-08-17 19:45:02.635515: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:45:02.635564: Best export window [ ]
2026-08-17 19:45:02.636518: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:45:02.639783: Load divergence over 8.0 hours mean 484.5W, min 331.2W, max 1005.0W, std dev 169.42W, divergence 17.48%
2026-08-17 19:45:02.658854: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:45:02.658966: LoadML is_calculating False
2026-08-17 19:45:02.659054: Creating pool of 12 processes to match your CPU count
2026-08-17 19:45:02.776791: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:55:00, load 28.91kWh, PV 0.0kWh
2026-08-17 19:45:02.885822: Battery has 8.17 hours left - now at 7.84kWh
2026-08-17 19:45:02.930496: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 628.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.81kWh, PV 0.0kWh
2026-08-17 19:45:03.014689: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 334.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 29.81kWh, PV 0.0kWh
2026-08-17 19:45:03.114581: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 321.48p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 28.91kWh, PV 0.0kWh
2026-08-17 19:45:03.114667: Saving plan best values to HA entities
2026-08-17 19:45:03.324399: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:45:03.329410: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:45:03.335030: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.64kWh, house 0.0kWh, export 0.0kWh, metric 321.48p, metric10 334.13p
2026-08-17 19:45:03.426253: Marginal costs baseline metric (no standing charge): 274.8502
2026-08-17 19:45:03.739065: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 19:45:03.817770: Rate array import [{'start': 1185, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1185, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:45:03.818430: - Your estimated bill for today is £1.82 and tomorrow is £1.60
2026-08-17 19:45:03.818475: - Import rates are very expensive (33.8p) for the next 3 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:45:03.818499: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-17 19:45:03.818518: - For the next 48 hours there will be no solar generation.
2026-08-17 19:45:03.818535: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 19:45:03.818552: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 19:45:03.818577:
2026-08-17 19:45:03.869876: Plan calculation took 1.23 seconds
2026-08-17 19:45:03.874642: No high rate period found
2026-08-17 19:45:03.931376: Import threshold used for optimisation was 8.0p
2026-08-17 19:45:03.989730: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:45:03.996486: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:45:03.996622: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:45:03.996736: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:45:03.996988: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:45:03.997082: No export window planned
2026-08-17 19:45:03.997214: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:45:03.997249: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:45:03.997403: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:45:03.997587: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:45:03.997648: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:45:03.997715: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:45:03.997825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.997867: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.997895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.997921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.997950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.997975: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.997999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998232: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:45:03.998282: Inverter 0 count register writes 0
2026-08-17 19:45:04.018054: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 19:45:04.024316: Total inverter register writes now 861
2026-08-17 19:45:04.066843: Info: Completed run status Demand
2026-08-17 19:45:04.078735: Info: record_status Demand
2026-08-17 19:45:04.089269: Saved current settings to /config/predbat_config.json
2026-08-17 19:45:04.089663: Compare, best tariff: current metric 104.68p
2026-08-17 19:45:34.198311: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:45:34.198554: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:45:34.198593: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:45:34.198799: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:45:34.198848: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:45:34.198895: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:45:34.198924: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:47:34.413375: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:47:34.413692: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:47:34.413741: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:47:34.413912: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:47:34.413956: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:47:34.413978: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:47:34.414004: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:49:34.635290: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:49:34.635609: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:49:34.635689: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:49:34.635891: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:49:34.635990: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:49:34.636037: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:49:34.636062: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:50:00.751222: --------------- PredBat - update at 2026-08-17 19:50:00+01:00 with clock skew 0 minutes, minutes now 1190
2026-08-17 19:50:00.752208: Saved current settings to /config/predbat_config.json
2026-08-17 19:50:00.752429: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 19:50:00.752614: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:50:00.752738: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:50:00.770167: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:50:00.770288: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:50:00.770467: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:50:00.770959: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:50:00.771075: Predbat mode is set to Control charge & discharge
2026-08-17 19:50:00.977417: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:50:00.977585: Using load_power data to fill gaps in load_today data
2026-08-17 19:50:01.831983: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:50:01.832160: Zero load period starting at 2026-08-17T10:54:00+0100 (536 minutes) for 189 minutes with base value 212.875
2026-08-17 19:50:01.832882: Processing 721 30-minute periods for power integration
2026-08-17 19:50:02.034105: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:50:02.034229: Car charging hold False, threshold 6.0kWh
2026-08-17 19:50:02.034276: Current data so far today: load 10.12kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:50:02.055345: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:50:02.055483: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:50:02.056539: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:50:02.056634: Standing charge is set to 46.63p
2026-08-17 19:50:02.134540: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.134751: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.134918: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.135107: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.135254: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.135470: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.135621: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.135754: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.135888: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:50:02.136864: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:50:02.136952: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:50:02.141356: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:50:02.141659: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:50:02.176185: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:50:02.176288: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:50:02.177431: High export rate found rates in range 99p to -99p
2026-08-17 19:50:02.200843: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:50:02.200926: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:50:02.211116: Battery level now 7.84kWh, -1hr ago 8.0kWh, at midnight 10.49kWh, battery value change in the last hour -1.1p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:50:02.211576: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.87p, import 0.87p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:50:02.263013: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:50:02.263138: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:50:02.349290: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:50:02.373092: Today's load divergence 93.66%, in-day adjustment 89.53%, damping 0.95x, yesterday 68.37% today 93.98% blend 17.36%
2026-08-17 19:50:02.373163: Today's predicted so far 12.29kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 12.29kWh forecast extra.
2026-08-17 19:50:02.373194: Today's actual load so far 11.35kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 19:50:02.407536: Inverter 0: Type SK Sunsynk
2026-08-17 19:50:02.407626: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:50:02.407823: Reserve min: 7%, battery_min: 7%
2026-08-17 19:50:02.407925: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:50:02.408187: Inverter 0 SoC: 7.84kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power 263W, current battery voltage 51.2V, grid power -55W, load power 326W, PV Power 0W
2026-08-17 19:50:02.408362: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:50:02.408451: Inverter 0 scheduled charge enable is False
2026-08-17 19:50:02.408488: Inverter 0 charge windows currently []
2026-08-17 19:50:02.408515: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:50:02.408629: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:50:02.408664: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:50:02.408699: Inverter 0 scheduled discharge enable is False
2026-08-17 19:50:02.408817: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:50:02.408854: Inverter 0 discharge windows currently []
2026-08-17 19:50:02.408877: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:50:02.408899: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:50:02.408916: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:50:02.466538: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:50:02.466641: Plan was last updated on 2026-08-17 19:40:00+01:00 and is now 10.0 minutes old
2026-08-17 19:50:02.466844: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:50:02.466885: Best export window [ ]
2026-08-17 19:50:02.467722: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:50:02.470955: Load divergence over 8.0 hours mean 486.0W, min 361.2W, max 977.4W, std dev 157.86W, divergence 16.24%
2026-08-17 19:50:02.487833: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:50:02.487965: LoadML is_calculating False
2026-08-17 19:50:02.488022: Creating pool of 12 processes to match your CPU count
2026-08-17 19:50:02.585690: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 607.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:00:00, load 29.09kWh, PV 0.0kWh
2026-08-17 19:50:02.698911: Battery has 8.17 hours left - now at 7.84kWh
2026-08-17 19:50:02.740987: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 629.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:30:00, load 29.99kWh, PV 0.0kWh
2026-08-17 19:50:02.824404: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 337.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.99kWh, PV 0.0kWh
2026-08-17 19:50:02.895498: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 325.29p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.09kWh, PV 0.0kWh
2026-08-17 19:50:02.895575: Saving plan best values to HA entities
2026-08-17 19:50:03.039682: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:50:03.044678: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:50:03.049538: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.11kWh, house 0.0kWh, export 0.0kWh, metric 325.29p, metric10 337.09p
2026-08-17 19:50:03.137432: Marginal costs baseline metric (no standing charge): 278.6579
2026-08-17 19:50:03.439011: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 19:50:03.506637: Rate array import [{'start': 1190, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1190, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:50:03.507186: - Your estimated bill for today is £1.82 and tomorrow is £1.60
2026-08-17 19:50:03.507221: - Import rates are very expensive (33.8p) for the next 3 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:50:03.507239: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-17 19:50:03.507254: - For the next 48 hours there will be no solar generation.
2026-08-17 19:50:03.507268: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 19:50:03.507281: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 19:50:03.507299:
2026-08-17 19:50:03.558127: Plan calculation took 1.09 seconds
2026-08-17 19:50:03.561968: No high rate period found
2026-08-17 19:50:03.610874: Import threshold used for optimisation was 8.0p
2026-08-17 19:50:03.658423: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:50:03.664428: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 49%, target 100%
2026-08-17 19:50:03.664565: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:50:03.664665: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:50:03.664914: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:50:03.665007: No export window planned
2026-08-17 19:50:03.665170: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:50:03.665232: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:50:03.665475: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:50:03.665781: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:50:03.666141: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:50:03.666224: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:50:03.666314: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666423: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666451: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666483: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666509: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666674: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:03.666796: Inverter 0 count register writes 0
2026-08-17 19:50:03.682683: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 19:50:03.682843: Recompute is saving previous plan...
2026-08-17 19:50:03.684119: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 19:50:03.684177: Best export window [ ]
2026-08-17 19:50:03.685257: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:50:03.688939: Load divergence over 8.0 hours mean 486.0W, min 361.2W, max 977.4W, std dev 157.86W, divergence 16.24%
2026-08-17 19:50:03.707070: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:50:03.707181: LoadML is_calculating False
2026-08-17 19:50:03.707244: Creating pool of 12 processes to match your CPU count
2026-08-17 19:50:03.790201: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 19:50:03.791059: Optimise levels pass started at 2026-08-17 19:50:03
2026-08-17 19:50:03.791108: Optimise all windows, total charge 24 export 1
2026-08-17 19:50:04.368243: >> Region optimisation pass width 960 gives best_metric 384.28p, best_cost 398.26p, best_cycle 45.23kWh, best_import 30.06kWh
2026-08-17 19:50:04.513435: >> Region optimisation pass width 480 gives best_metric 384.28p, best_cost 398.26p, best_cycle 45.23kWh, best_import 30.06kWh
2026-08-17 19:50:04.764101: >> Region optimisation pass width 240 gives best_metric 384.28p, best_cost 398.26p, best_cycle 45.23kWh, best_import 30.06kWh
2026-08-17 19:50:05.277716: >> Region optimisation pass width 120 gives best_metric 384.28p, best_cost 398.26p, best_cycle 45.23kWh, best_import 30.06kWh
2026-08-17 19:50:05.278118: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 19:50:05.278186: Optimise levels pass ended at 2026-08-17 19:50:05, duration 1.5 seconds tried 64 combinations
2026-08-17 19:50:05.278257: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 384.28p, best_keep 0kWh, best_cycle 45.23kWh, best_carbon 0kg, best_import 30.06kWh
2026-08-17 19:50:05.293280: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 19:50:07.774534: Tweak plan optimisation started metric 262.04p, cost 272.32p
2026-08-17 19:50:08.072691: Tweak optimisation finished metric 262.04p, cost 272.32p, metric_keep 0kWh, cycle 24.24kWh, carbon 0kg, import 14.32kWh, changed 8 window(s)
2026-08-17 19:50:08.091475: Swap charge optimisation started metric 262.04p, cost 272.32p, min_improvement_swap 0.1p
2026-08-17 19:50:08.762550: Swap charge optimisation finished metric 262.04p, cost 272.32p
2026-08-17 19:50:08.902424: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 260.82p -> 260.67p, plan now metric 262.9p, cost 270.37p, cycle 24.5kWh, import 14.07kWh
2026-08-17 19:50:08.912291: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:50:08.912642: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:50:08.912887: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:50:08.913131: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 19:50:08.950402: Previous plan best metric is 262.04 (cost 272.32) and new plan best metric is 262.04 (cost 272.32)
2026-08-17 19:50:08.950603: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 19:50:08.950745: Plan valid is now true after recompute was False
2026-08-17 19:50:08.980960: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 606.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:00:00, load 28.88kWh, PV 0.0kWh
2026-08-17 19:50:09.091529: Battery has 8.17 hours left - now at 7.84kWh
2026-08-17 19:50:09.138557: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 627.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:30:00, load 29.78kWh, PV 0.0kWh
2026-08-17 19:50:09.216267: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 329.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.78kWh, PV 0.0kWh
2026-08-17 19:50:09.290988: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 317.0p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.88kWh, PV 0.0kWh
2026-08-17 19:50:09.291074: Saving plan best values to HA entities
2026-08-17 19:50:09.442346: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:50:09.447345: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:50:09.452573: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.07kWh, house 0.0kWh, export 0.0kWh, metric 317.0p, metric10 329.83p
2026-08-17 19:50:09.518142: Marginal costs baseline metric (no standing charge): 270.3656
2026-08-17 19:50:09.781652: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 19:50:09.841118: Rate array import [{'start': 1190, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1190, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:50:09.841783: - Your estimated bill for today is £1.82 and tomorrow is £1.60
2026-08-17 19:50:09.841831: - Import rates are very expensive (33.8p) for the next 3 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:50:09.841854: - The battery is currently at 49% and is in eco mode for the next 3 and three quarters hours.
2026-08-17 19:50:09.841873: - For the next 48 hours there will be no solar generation.
2026-08-17 19:50:09.841891: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 19:50:09.841908: - Your next charge slot will be in 3 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 19:50:09.841925:
2026-08-17 19:50:09.894621: Plan calculation took 6.21 seconds
2026-08-17 19:50:09.894973: Inverter 0: Type SK Sunsynk
2026-08-17 19:50:09.895045: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:50:09.895316: Reserve min: 7%, battery_min: 7%
2026-08-17 19:50:09.895446: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:50:09.895772: Inverter 0 SoC: 7.7kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 261W, current battery voltage 51.2V, grid power -55W, load power 324W, PV Power 0W
2026-08-17 19:50:09.896059: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:50:09.896166: Inverter 0 scheduled charge enable is False
2026-08-17 19:50:09.896202: Inverter 0 charge windows currently []
2026-08-17 19:50:09.896232: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:50:09.896398: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:50:09.896453: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:50:09.896506: Inverter 0 scheduled discharge enable is False
2026-08-17 19:50:09.896661: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:50:09.896702: Inverter 0 discharge windows currently []
2026-08-17 19:50:09.896725: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:50:09.896783: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:50:09.896808: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:50:09.954896: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-17 19:50:09.955036: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:50:09.955109: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:50:09.955280: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:50:09.955377: No export window planned
2026-08-17 19:50:09.955490: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:50:09.955526: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:50:09.955658: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:50:09.955813: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:50:09.955864: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:50:09.955990: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:50:09.956095: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956137: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956165: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956198: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956231: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956279: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:50:09.956881: Inverter 0 count register writes 0
2026-08-17 19:50:09.978521: Total inverter register writes now 861
2026-08-17 19:50:10.008872: Info: Completed run status Demand
2026-08-17 19:50:10.015061: Info: record_status Demand
2026-08-17 19:50:10.021652: Saved current settings to /config/predbat_config.json
2026-08-17 19:50:10.021901: Compare, best tariff: current metric 104.68p
2026-08-17 19:50:49.128260: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:50:49.128514: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:50:49.128554: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:50:49.128703: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:50:49.128740: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:50:49.128762: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:50:49.128780: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:52:37.611678: MCP POST: Received request from 10.0.10.73
2026-08-17 19:52:37.611996: MCP: Could not even decode without verification: Not enough segments
2026-08-17 19:52:37.612099: MCP: Token verification failed: Not enough segments
2026-08-17 19:52:37.612148: MCP POST: Authenticated via legacy bearer token
2026-08-17 19:52:49.339150: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:52:49.339392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:52:49.339435: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:52:49.339568: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:52:49.339606: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:52:49.339628: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:52:49.339646: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:54:49.545676: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:54:49.545908: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:54:49.545949: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:54:49.546079: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:54:49.546117: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:54:49.546138: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:54:49.546156: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:55:00.636388: --------------- PredBat - update at 2026-08-17 19:55:00+01:00 with clock skew 0 minutes, minutes now 1195
2026-08-17 19:55:00.637111: Saved current settings to /config/predbat_config.json
2026-08-17 19:55:00.637277: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 19:55:00.637375: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 19:55:00.637463: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 19:55:00.652182: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 19:55:00.652283: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 19:55:00.652433: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 19:55:00.652842: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 19:55:00.652938: Predbat mode is set to Control charge & discharge
2026-08-17 19:55:00.809825: Found 21602 load_today datapoints going back 28 days
2026-08-17 19:55:00.809945: Using load_power data to fill gaps in load_today data
2026-08-17 19:55:01.550910: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:55:01.551115: Zero load period starting at 2026-08-17T10:54:00+0100 (541 minutes) for 189 minutes with base value 212.85
2026-08-17 19:55:01.551737: Processing 721 30-minute periods for power integration
2026-08-17 19:55:01.739295: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 19:55:01.739418: Car charging hold False, threshold 6.0kWh
2026-08-17 19:55:01.739462: Current data so far today: load 10.15kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 19:55:01.755892: Car 0 using Octopus Intelligent is unplugged
2026-08-17 19:55:01.756033: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 19:55:01.756852: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 19:55:01.756933: Standing charge is set to 46.63p
2026-08-17 19:55:01.842792: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.843173: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.843482: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.843762: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.844124: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.844446: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.844726: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.845006: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.845267: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 19:55:01.846490: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 19:55:01.846628: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 19:55:01.852292: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 19:55:01.852701: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 19:55:01.896114: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 19:55:01.896259: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 19:55:01.897712: High export rate found rates in range 99p to -99p
2026-08-17 19:55:01.928384: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 19:55:01.928516: Car 0 on Octopus Intelligent, no active plan
2026-08-17 19:55:01.940138: Battery level now 7.84kWh, -1hr ago 8.0kWh, at midnight 10.49kWh, battery value change in the last hour -1.1p, change today -18.2p, rate_forward 6.87p
2026-08-17 19:55:01.940798: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.66p, import 0.66p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 19:55:02.004769: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 19:55:02.004896: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:55:02.081775: Using weighted-bucket historical load forecast over 14 days
2026-08-17 19:55:02.105430: Today's load divergence 93.64%, in-day adjustment 89.6%, damping 0.95x, yesterday 68.37% today 93.95% blend 17.01%
2026-08-17 19:55:02.105500: Today's predicted so far 12.32kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 12.32kWh forecast extra.
2026-08-17 19:55:02.105780: Today's actual load so far 11.38kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 19:55:02.134989: Inverter 0: Type SK Sunsynk
2026-08-17 19:55:02.135064: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 19:55:02.135231: Reserve min: 7%, battery_min: 7%
2026-08-17 19:55:02.135344: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 19:55:02.135612: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 323W, PV Power 0W
2026-08-17 19:55:02.135760: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:55:02.135845: Inverter 0 scheduled charge enable is False
2026-08-17 19:55:02.135879: Inverter 0 charge windows currently []
2026-08-17 19:55:02.135933: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 19:55:02.136078: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:55:02.136116: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:55:02.136153: Inverter 0 scheduled discharge enable is False
2026-08-17 19:55:02.136273: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:55:02.136310: Inverter 0 discharge windows currently []
2026-08-17 19:55:02.136357: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:55:02.136382: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:55:02.136399: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:55:02.189004: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 19:55:02.189095: Plan was last updated on 2026-08-17 19:50:00+01:00 and is now 5.0 minutes old
2026-08-17 19:55:02.189264: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 19:55:02.189304: Best export window [ ]
2026-08-17 19:55:02.189974: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 19:55:02.192474: Load divergence over 8.0 hours mean 487.46W, min 344.4W, max 1032.6W, std dev 167.31W, divergence 17.16%
2026-08-17 19:55:02.207679: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 19:55:02.207772: LoadML is_calculating False
2026-08-17 19:55:02.207821: Creating pool of 12 processes to match your CPU count
2026-08-17 19:55:02.305463: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:45:00, load 28.97kWh, PV 0.0kWh
2026-08-17 19:55:02.412778: Battery has 7.83 hours left - now at 7.68kWh
2026-08-17 19:55:02.455214: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 629.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.87kWh, PV 0.0kWh
2026-08-17 19:55:02.532533: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 334.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.87kWh, PV 0.0kWh
2026-08-17 19:55:02.621155: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 322.06p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 28.97kWh, PV 0.0kWh
2026-08-17 19:55:02.621242: Saving plan best values to HA entities
2026-08-17 19:55:02.763569: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 19:55:02.768494: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 19:55:02.773361: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.71kWh, house 0kWh, export 0.0kWh, metric 322.06p, metric10 334.69p
2026-08-17 19:55:02.841985: Marginal costs baseline metric (no standing charge): 275.429
2026-08-17 19:55:03.053887: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 19:55:03.113393: Rate array import [{'start': 1195, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1195, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 19:55:03.114005: - Your estimated bill for today is £1.82 and tomorrow is £1.61
2026-08-17 19:55:03.114059: - Import rates are very expensive (33.8p) for the next 3 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 19:55:03.114093: - The battery is currently at 48% and is in eco mode for the next 3 and a half hours.
2026-08-17 19:55:03.114122: - For the next 48 hours there will be no solar generation.
2026-08-17 19:55:03.114161: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 19:55:03.114214: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-17 19:55:03.114245:
2026-08-17 19:55:03.167268: Plan calculation took 0.98 seconds
2026-08-17 19:55:03.171091: No high rate period found
2026-08-17 19:55:03.219257: Import threshold used for optimisation was 8.0p
2026-08-17 19:55:03.327700: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 19:55:03.333180: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-17 19:55:03.333297: Inverter 0 disabled charge window while waiting for schedule (now 08-17 19:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 19:55:03.333418: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:55:03.333695: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:55:03.333796: No export window planned
2026-08-17 19:55:03.333927: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 19:55:03.333962: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 19:55:03.334097: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 19:55:03.334271: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 19:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 19:55:03.334344: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 19:55:03.334407: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 19:55:03.334498: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334537: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334564: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334619: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334651: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334675: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334742: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 19:55:03.334924: Inverter 0 count register writes 0
2026-08-17 19:55:03.349944: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 19:55:03.354944: Total inverter register writes now 861
2026-08-17 19:55:03.386930: Info: Completed run status Demand
2026-08-17 19:55:03.393115: Info: record_status Demand
2026-08-17 19:55:03.399646: Saved current settings to /config/predbat_config.json
2026-08-17 19:55:03.399977: Compare, best tariff: current metric 104.68p
2026-08-17 19:55:09.296987: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 19:55:09.451404: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 19:55:34.500267: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:55:34.500635: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:55:34.500708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:55:34.500866: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:55:34.500908: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:55:34.500931: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:55:34.500957: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:56:06.450361: MCP POST: Received request from 10.0.10.73
2026-08-17 19:56:06.450574: MCP: Could not even decode without verification: Not enough segments
2026-08-17 19:56:06.450617: MCP: Token verification failed: Not enough segments
2026-08-17 19:56:06.450644: MCP POST: Authenticated via legacy bearer token
2026-08-17 19:56:16.928344: Info: HAHistory: Pruning history data started.
2026-08-17 19:56:16.938643: Info: HAHistory: Pruning history data completed.
2026-08-17 19:57:41.511820: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 19:57:42.410733: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 19:57:42.410902: Zero load period starting at 2026-08-17T10:54:00+0100 (541 minutes) for 189 minutes with base value 393.65
2026-08-17 19:57:42.411397: Processing 1297 30-minute periods for power integration
2026-08-17 19:57:42.490962: ML Component: Car charging hold False, car energy reported load False
2026-08-17 19:57:42.570490: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 19:57:42.648473: ML Temperature data points: 47766
2026-08-17 19:57:42.885289: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 19:57:42.919336: ML Component: Data fetch completed, load data age 59.0 days, 17063 data points
2026-08-17 19:57:42.919444: ML Component: No training needed, model age is 0.74 hours
2026-08-17 19:57:42.919494: ML Component: Generating predictions load data age 59.0 days, 17063 data points
2026-08-17 19:57:43.032171: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0248 max_dow {0: 0.08525277784036266, 1: 0.10017499963007867, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 19:57:43.516164: ML Component: Generated 576 predictions (total 25.34 kWh over 48h)
2026-08-17 19:57:43.546458: ML Component: Prediction cycle completed
2026-08-17 19:57:43.652277: ML Component: Saved 17063 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 19:57:48.740951: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:57:48.741182: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:57:48.741224: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:57:48.741374: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:57:48.741414: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:57:48.741436: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:57:48.741454: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 19:58:14.528531: MCP POST: Received request from 10.0.10.73
2026-08-17 19:58:14.528712: MCP: Could not even decode without verification: Not enough segments
2026-08-17 19:58:14.528763: MCP: Token verification failed: Not enough segments
2026-08-17 19:58:14.528810: MCP POST: Authenticated via legacy bearer token
2026-08-17 19:58:26.258258: MCP POST: Received request from 10.0.10.73
2026-08-17 19:58:26.258446: MCP: Could not even decode without verification: Not enough segments
2026-08-17 19:58:26.258488: MCP: Token verification failed: Not enough segments
2026-08-17 19:58:26.258509: MCP POST: Authenticated via legacy bearer token
2026-08-17 19:59:48.957673: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 19:59:48.957978: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 19:59:48.958027: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 19:59:48.958165: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 19:59:48.958203: Note: Inverter does not support discharge freeze - disabled
2026-08-17 19:59:48.958225: Note: Inverter does not support charge freeze - disabled
2026-08-17 19:59:48.958242: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:00:00.044855: --------------- PredBat - update at 2026-08-17 20:00:00+01:00 with clock skew 0 minutes, minutes now 1200
2026-08-17 20:00:00.045532: Saved current settings to /config/predbat_config.json
2026-08-17 20:00:00.045645: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 20:00:00.045710: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:00:00.045810: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:00:00.064680: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:00:00.064800: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:00:00.064960: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:00:00.065686: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:00:00.065874: Predbat mode is set to Control charge & discharge
2026-08-17 20:00:00.247042: Found 21602 load_today datapoints going back 27 days
2026-08-17 20:00:00.247163: Using load_power data to fill gaps in load_today data
2026-08-17 20:00:01.049563: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:00:01.049952: Zero load period starting at 2026-08-17T10:54:00+0100 (546 minutes) for 189 minutes with base value 212.825
2026-08-17 20:00:01.051554: Processing 721 30-minute periods for power integration
2026-08-17 20:00:01.251246: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:00:01.251379: Car charging hold False, threshold 6.0kWh
2026-08-17 20:00:01.251440: Current data so far today: load 10.1kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:00:01.267835: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:00:01.267971: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:00:01.268731: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:00:01.268802: Standing charge is set to 46.63p
2026-08-17 20:00:01.350176: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.350444: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.350655: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.350911: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.351126: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.351305: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.351499: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.351666: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.351825: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:00:01.353008: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:00:01.353125: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:00:01.358663: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:00:01.358933: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:00:01.395856: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:00:01.396014: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:00:01.397297: High export rate found rates in range 99p to -99p
2026-08-17 20:00:01.422163: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:00:01.422276: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:00:01.434721: Battery level now 7.68kWh, -1hr ago 8.0kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -19.3p, rate_forward 6.87p
2026-08-17 20:00:01.435029: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.27kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:00:01.492144: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:00:01.492324: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:00:01.586852: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:00:01.623660: Today's load divergence 92.57%, in-day adjustment 88.85%, damping 0.95x, yesterday 68.37% today 92.94% blend 16.67%
2026-08-17 20:00:01.623800: Today's predicted so far 12.45kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 12.45kWh forecast extra.
2026-08-17 20:00:01.623856: Today's actual load so far 11.36kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 20:00:01.656449: Inverter 0: Type SK Sunsynk
2026-08-17 20:00:01.656536: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:00:01.656719: Reserve min: 7%, battery_min: 7%
2026-08-17 20:00:01.656792: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:00:01.657045: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 261W, current battery voltage 51.2V, grid power -55W, load power 323W, PV Power 0W
2026-08-17 20:00:01.657199: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:00:01.657307: Inverter 0 scheduled charge enable is False
2026-08-17 20:00:01.657342: Inverter 0 charge windows currently []
2026-08-17 20:00:01.657369: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:00:01.657500: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:00:01.657537: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:00:01.657574: Inverter 0 scheduled discharge enable is False
2026-08-17 20:00:01.657700: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:00:01.657737: Inverter 0 discharge windows currently []
2026-08-17 20:00:01.657759: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:00:01.657782: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:00:01.657800: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:00:01.717308: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:00:01.717428: Plan was last updated on 2026-08-17 19:50:00+01:00 and is now 10.0 minutes old
2026-08-17 20:00:01.717637: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:00:01.717679: Best export window [ ]
2026-08-17 20:00:01.718473: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:00:01.721590: Load divergence over 8.0 hours mean 487.44W, min 353.4W, max 1063.8W, std dev 154.79W, divergence 15.88%
2026-08-17 20:00:01.741002: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:00:01.741111: LoadML is_calculating False
2026-08-17 20:00:01.741214: Creating pool of 12 processes to match your CPU count
2026-08-17 20:00:01.868109: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 607.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:55:00, load 28.94kWh, PV 0.0kWh
2026-08-17 20:00:02.029154: Battery has 7.92 hours left - now at 7.68kWh
2026-08-17 20:00:02.077099: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 629.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.84kWh, PV 0.0kWh
2026-08-17 20:00:02.153983: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 337.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.84kWh, PV 0.0kWh
2026-08-17 20:00:02.226208: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 325.49p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 28.94kWh, PV 0.0kWh
2026-08-17 20:00:02.226284: Saving plan best values to HA entities
2026-08-17 20:00:02.386639: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:00:02.392248: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:00:02.397844: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.14kWh, house 0.0kWh, export 0.0kWh, metric 325.49p, metric10 337.44p
2026-08-17 20:00:02.474344: Marginal costs baseline metric (no standing charge): 278.8538
2026-08-17 20:00:02.745506: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 20:00:02.825499: Rate array import [{'start': 1200, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1200, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:00:02.826274: - Your estimated bill for today is £1.81 and tomorrow is £1.60
2026-08-17 20:00:02.826344: - Import rates are very expensive (33.8p) for the next 3 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:00:02.826369: - The battery is currently at 48% and is in eco mode for the next 3 and a half hours.
2026-08-17 20:00:02.826388: - For the next 48 hours there will be no solar generation.
2026-08-17 20:00:02.826425: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:00:02.826446: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-17 20:00:02.826472:
2026-08-17 20:00:02.879827: Plan calculation took 1.16 seconds
2026-08-17 20:00:02.883704: No high rate period found
2026-08-17 20:00:02.939712: Import threshold used for optimisation was 8.0p
2026-08-17 20:00:02.993968: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:00:02.999675: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-17 20:00:02.999840: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:00:03.000016: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:00:03.000336: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:00:03.000474: No export window planned
2026-08-17 20:00:03.000683: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:00:03.000741: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:00:03.000983: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:00:03.001265: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:00:03.001355: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:00:03.001475: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:00:03.001626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.001696: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.001760: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.001817: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.001868: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.001927: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.001978: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:03.002509: Inverter 0 count register writes 0
2026-08-17 20:00:03.024075: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 20:00:03.024320: Recompute is saving previous plan...
2026-08-17 20:00:03.025261: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 20:00:03.025313: Best export window [ ]
2026-08-17 20:00:03.026351: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:00:03.030155: Load divergence over 8.0 hours mean 487.44W, min 353.4W, max 1063.8W, std dev 154.79W, divergence 15.88%
2026-08-17 20:00:03.052586: Calculating data from yesterday for savings calculation
2026-08-17 20:00:03.071755: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 20:00:03.125097: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 20:00:03.141441: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 20:00:03.163999: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 20:00:03.208642: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 20:00:03.292388: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 280.97kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 20:00:03.292560: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 20:00:03.302446: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:00:03.302554: LoadML is_calculating False
2026-08-17 20:00:03.302620: Creating pool of 12 processes to match your CPU count
2026-08-17 20:00:03.382920: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 20:00:03.384025: Optimise levels pass started at 2026-08-17 20:00:03
2026-08-17 20:00:03.384080: Optimise all windows, total charge 24 export 1
2026-08-17 20:00:03.979363: >> Region optimisation pass width 960 gives best_metric 387.18p, best_cost 408.82p, best_cycle 47.61kWh, best_import 31.38kWh
2026-08-17 20:00:04.150076: >> Region optimisation pass width 480 gives best_metric 387.18p, best_cost 408.82p, best_cycle 47.61kWh, best_import 31.38kWh
2026-08-17 20:00:04.452294: >> Region optimisation pass width 240 gives best_metric 387.18p, best_cost 408.82p, best_cycle 47.61kWh, best_import 31.38kWh
2026-08-17 20:00:05.019601: >> Region optimisation pass width 120 gives best_metric 387.18p, best_cost 408.82p, best_cycle 47.61kWh, best_import 31.38kWh
2026-08-17 20:00:05.019785: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 20:00:05.019845: Optimise levels pass ended at 2026-08-17 20:00:05, duration 1.6 seconds tried 56 combinations
2026-08-17 20:00:05.019937: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 387.18p, best_keep 0kWh, best_cycle 47.61kWh, best_carbon 0kg, best_import 31.38kWh
2026-08-17 20:00:05.038780: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 20:00:07.217802: Tweak plan optimisation started metric 264.32p, cost 276.28p
2026-08-17 20:00:07.472245: Tweak optimisation finished metric 264.32p, cost 276.28p, metric_keep 0kWh, cycle 27.45kWh, carbon 0kg, import 14.81kWh, changed 8 window(s)
2026-08-17 20:00:07.488877: Swap charge optimisation started metric 264.32p, cost 276.28p, min_improvement_swap 0.1p
2026-08-17 20:00:08.046753: Swap charge optimisation finished metric 264.32p, cost 276.28p
2026-08-17 20:00:08.118229: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 263.29p -> 263.07p, plan now metric 265.26p, cost 273.34p, cycle 27.83kWh, import 14.45kWh
2026-08-17 20:00:08.126066: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:00:08.126334: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:00:08.126483: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:00:08.126579: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:00:08.156459: Previous plan best metric is 262.38 (cost 272.68) and new plan best metric is 264.32 (cost 276.28)
2026-08-17 20:00:08.156636: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 20:00:08.156783: Plan valid is now true after recompute was False
2026-08-17 20:00:08.178712: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 606.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:55:00, load 28.75kWh, PV 0.0kWh
2026-08-17 20:00:08.277823: Battery has 7.92 hours left - now at 7.68kWh
2026-08-17 20:00:08.319732: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 627.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.64kWh, PV 0.0kWh
2026-08-17 20:00:08.403396: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 330.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.64kWh, PV 0.0kWh
2026-08-17 20:00:08.485872: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 317.31p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 28.75kWh, PV 0.0kWh
2026-08-17 20:00:08.485962: Saving plan best values to HA entities
2026-08-17 20:00:08.634943: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:00:08.647689: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:00:08.655162: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.11kWh, house 0.0kWh, export 0.0kWh, metric 317.31p, metric10 330.29p
2026-08-17 20:00:08.740909: Marginal costs baseline metric (no standing charge): 270.6711
2026-08-17 20:00:08.973746: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 20:00:09.031738: Rate array import [{'start': 1200, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1200, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:00:09.032326: - Your estimated bill for today is £1.81 and tomorrow is £1.60
2026-08-17 20:00:09.032378: - Import rates are very expensive (33.8p) for the next 3 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:00:09.032399: - The battery is currently at 48% and is in eco mode for the next 3 and a half hours.
2026-08-17 20:00:09.032433: - For the next 48 hours there will be no solar generation.
2026-08-17 20:00:09.032449: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:00:09.032465: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-17 20:00:09.032485:
2026-08-17 20:00:09.085140: Plan calculation took 6.06 seconds
2026-08-17 20:00:09.085444: Inverter 0: Type SK Sunsynk
2026-08-17 20:00:09.085493: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:00:09.085686: Reserve min: 7%, battery_min: 7%
2026-08-17 20:00:09.085750: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:00:09.086062: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 258W, current battery voltage 51.2V, grid power -55W, load power 321W, PV Power 0W
2026-08-17 20:00:09.086253: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:00:09.086333: Inverter 0 scheduled charge enable is False
2026-08-17 20:00:09.086363: Inverter 0 charge windows currently []
2026-08-17 20:00:09.086387: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:00:09.086495: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:00:09.086539: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:00:09.086587: Inverter 0 scheduled discharge enable is False
2026-08-17 20:00:09.086728: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:00:09.086764: Inverter 0 discharge windows currently []
2026-08-17 20:00:09.086783: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:00:09.086799: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:00:09.086812: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:00:09.136019: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-17 20:00:09.136142: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:00:09.136197: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:00:09.136344: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:00:09.136426: No export window planned
2026-08-17 20:00:09.136520: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:00:09.136550: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:00:09.136658: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:00:09.136789: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:00:09.136834: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:00:09.136878: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:00:09.136950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.136983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137093: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:00:09.137320: Inverter 0 count register writes 0
2026-08-17 20:00:09.155424: Total inverter register writes now 861
2026-08-17 20:00:09.182765: Info: Completed run status Demand
2026-08-17 20:00:09.188319: Info: record_status Demand
2026-08-17 20:00:09.194348: Saved current settings to /config/predbat_config.json
2026-08-17 20:00:09.194582: Compare, best tariff: current metric 104.68p
2026-08-17 20:00:49.306146: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:00:49.306337: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:00:49.306371: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:00:49.306498: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:00:49.306531: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:00:49.306549: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:00:49.306563: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:02:37.315459: Successfully loaded apps.yaml from apps.yaml
2026-08-17 20:02:38.007576: Successfully loaded apps.yaml from apps.yaml
2026-08-17 20:02:49.519058: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:02:49.519308: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:02:49.519349: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:02:49.519481: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:02:49.519518: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:02:49.519540: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:02:49.519574: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:05:00.735201: --------------- PredBat - update at 2026-08-17 20:05:00+01:00 with clock skew 0 minutes, minutes now 1205
2026-08-17 20:05:00.735931: Saved current settings to /config/predbat_config.json
2026-08-17 20:05:00.736052: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 20:05:00.736124: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:05:00.736222: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:05:00.756433: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:05:00.756553: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:05:00.756754: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:05:00.757276: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:05:00.757393: Predbat mode is set to Control charge & discharge
2026-08-17 20:05:00.937985: Found 21602 load_today datapoints going back 27 days
2026-08-17 20:05:00.938137: Using load_power data to fill gaps in load_today data
2026-08-17 20:05:01.813941: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:05:01.814136: Zero load period starting at 2026-08-17T10:54:00+0100 (551 minutes) for 189 minutes with base value 212.8
2026-08-17 20:05:01.814772: Processing 721 30-minute periods for power integration
2026-08-17 20:05:02.015317: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:05:02.015425: Car charging hold False, threshold 6.0kWh
2026-08-17 20:05:02.015461: Current data so far today: load 10.1kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:05:02.029533: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:05:02.029625: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:05:02.030244: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:05:02.030303: Standing charge is set to 46.63p
2026-08-17 20:05:02.114854: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.115139: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.115398: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.115601: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.115833: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.116062: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.116268: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.116465: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.116668: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:05:02.117587: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:05:02.117718: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:05:02.122327: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:05:02.122619: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:05:02.157986: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:05:02.158090: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:05:02.159348: High export rate found rates in range 99p to -99p
2026-08-17 20:05:02.183497: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:05:02.183606: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:05:02.193806: Battery level now 7.68kWh, -1hr ago 8.0kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -19.3p, rate_forward 6.87p
2026-08-17 20:05:02.194225: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:05:02.246428: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:05:02.246563: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:05:02.323048: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:05:02.352769: Today's load divergence 91.88%, in-day adjustment 88.39%, damping 0.95x, yesterday 68.37% today 92.29% blend 16.32%
2026-08-17 20:05:02.352852: Today's predicted so far 12.56kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 12.56kWh forecast extra.
2026-08-17 20:05:02.352878: Today's actual load so far 11.38kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 20:05:02.383451: Inverter 0: Type SK Sunsynk
2026-08-17 20:05:02.383521: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:05:02.383730: Reserve min: 7%, battery_min: 7%
2026-08-17 20:05:02.383822: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:05:02.384097: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 484W, current battery voltage 51.2V, grid power -55W, load power 544W, PV Power 0W
2026-08-17 20:05:02.384257: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:05:02.384365: Inverter 0 scheduled charge enable is False
2026-08-17 20:05:02.384396: Inverter 0 charge windows currently []
2026-08-17 20:05:02.384435: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:05:02.384567: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:05:02.384606: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:05:02.384650: Inverter 0 scheduled discharge enable is False
2026-08-17 20:05:02.384811: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:05:02.384849: Inverter 0 discharge windows currently []
2026-08-17 20:05:02.384869: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:05:02.384895: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:05:02.384927: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:05:02.433740: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:05:02.433821: Plan was last updated on 2026-08-17 20:00:00+01:00 and is now 5.0 minutes old
2026-08-17 20:05:02.434065: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:05:02.434108: Best export window [ ]
2026-08-17 20:05:02.434813: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:05:02.437310: Load divergence over 8.0 hours mean 487.37W, min 322.2W, max 1002.6W, std dev 158.5W, divergence 16.26%
2026-08-17 20:05:02.452625: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:05:02.452737: LoadML is_calculating False
2026-08-17 20:05:02.452800: Creating pool of 12 processes to match your CPU count
2026-08-17 20:05:02.559739: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 606.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:05:00, load 28.78kWh, PV 0.0kWh
2026-08-17 20:05:02.664773: Battery has 8.0 hours left - now at 7.68kWh
2026-08-17 20:05:02.704185: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 627.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:30:00, load 29.67kWh, PV 0.0kWh
2026-08-17 20:05:02.776135: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 333.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.67kWh, PV 0.0kWh
2026-08-17 20:05:02.881484: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 320.83p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.78kWh, PV 0.0kWh
2026-08-17 20:05:02.881579: Saving plan best values to HA entities
2026-08-17 20:05:03.061045: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:05:03.066533: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:05:03.071836: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.55kWh, house 0.0kWh, export 0.0kWh, metric 320.83p, metric10 333.09p
2026-08-17 20:05:03.151097: Marginal costs baseline metric (no standing charge): 274.1934
2026-08-17 20:05:03.426328: Marginal energy costs matrix computed: min=7.33 max=32.62
2026-08-17 20:05:03.498623: Rate array import [{'start': 1205, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1205, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:05:03.499310: - Your estimated bill for today is £1.81 and tomorrow is £1.59
2026-08-17 20:05:03.499358: - Import rates are very expensive (33.8p) for the next 3 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:05:03.499384: - The battery is currently at 48% and is in eco mode for the next 3 and a half hours.
2026-08-17 20:05:03.499425: - For the next 48 hours there will be no solar generation.
2026-08-17 20:05:03.499462: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:05:03.499497: - Your next charge slot will be in 3 and a half hours where import rates will be cheap (8.0p).
2026-08-17 20:05:03.499534:
2026-08-17 20:05:03.554570: Plan calculation took 1.12 seconds
2026-08-17 20:05:03.559671: No high rate period found
2026-08-17 20:05:03.617135: Import threshold used for optimisation was 8.0p
2026-08-17 20:05:03.667384: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:05:03.674018: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-17 20:05:03.674144: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:05:03.674260: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:05:03.674510: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:05:03.674600: No export window planned
2026-08-17 20:05:03.674745: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:05:03.674782: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:05:03.674915: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:05:03.675098: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:05:03.675158: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:05:03.675223: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:05:03.675314: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675381: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675412: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675461: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675713: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:05:03.675764: Inverter 0 count register writes 0
2026-08-17 20:05:03.690406: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 20:05:03.695266: Total inverter register writes now 861
2026-08-17 20:05:03.727334: Info: Completed run status Demand
2026-08-17 20:05:03.734208: Info: record_status Demand
2026-08-17 20:05:03.743514: Saved current settings to /config/predbat_config.json
2026-08-17 20:05:03.744051: Compare, best tariff: current metric 104.68p
2026-08-17 20:05:33.845489: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:05:33.845821: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:05:33.845882: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:05:33.846078: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:05:33.846156: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:05:33.846206: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:05:33.846232: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:07:34.077039: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:07:34.077251: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:07:34.077281: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:07:34.077457: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:07:34.077507: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:07:34.077543: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:07:34.077572: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:09:34.297421: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:09:34.297651: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:09:34.297684: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:09:34.297829: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:09:34.297873: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:09:34.297894: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:09:34.297913: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:10:00.397850: --------------- PredBat - update at 2026-08-17 20:10:00+01:00 with clock skew 0 minutes, minutes now 1210
2026-08-17 20:10:00.398609: Saved current settings to /config/predbat_config.json
2026-08-17 20:10:00.398742: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 20:10:00.398868: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:10:00.398957: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:10:00.416140: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:10:00.416264: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:10:00.416424: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:10:00.416932: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:10:00.417048: Predbat mode is set to Control charge & discharge
2026-08-17 20:10:00.594268: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:10:00.594381: Using load_power data to fill gaps in load_today data
2026-08-17 20:10:01.361196: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:10:01.361392: Zero load period starting at 2026-08-17T10:54:00+0100 (556 minutes) for 189 minutes with base value 212.75
2026-08-17 20:10:01.361941: Processing 721 30-minute periods for power integration
2026-08-17 20:10:01.517228: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:10:01.517335: Car charging hold False, threshold 6.0kWh
2026-08-17 20:10:01.517373: Current data so far today: load 10.22kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:10:01.530470: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:10:01.530538: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:10:01.531170: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:10:01.531229: Standing charge is set to 46.63p
2026-08-17 20:10:01.608278: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.608528: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.608720: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.608921: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.609093: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.609263: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.609433: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.609597: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.609756: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:10:01.610825: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:10:01.610926: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:10:01.616333: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:10:01.616649: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:10:01.660310: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:10:01.660443: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:10:01.661814: High export rate found rates in range 99p to -99p
2026-08-17 20:10:01.690927: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:10:01.691040: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:10:01.702880: Battery level now 7.68kWh, -1hr ago 8.0kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -19.3p, rate_forward 6.87p
2026-08-17 20:10:01.703243: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.16p, import 0.16p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:10:01.765678: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:10:01.765830: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:10:01.866095: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:10:01.904962: Today's load divergence 92.45%, in-day adjustment 88.92%, damping 0.95x, yesterday 68.37% today 92.83% blend 15.97%
2026-08-17 20:10:01.905058: Today's predicted so far 12.56kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 12.56kWh forecast extra.
2026-08-17 20:10:01.905091: Today's actual load so far 11.46kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 20:10:01.940223: Inverter 0: Type SK Sunsynk
2026-08-17 20:10:01.940310: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:10:01.940486: Reserve min: 7%, battery_min: 7%
2026-08-17 20:10:01.940583: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:10:01.940859: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 528W, current battery voltage 51.2V, grid power -51W, load power 576W, PV Power 0W
2026-08-17 20:10:01.941008: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:10:01.941094: Inverter 0 scheduled charge enable is False
2026-08-17 20:10:01.941122: Inverter 0 charge windows currently []
2026-08-17 20:10:01.941148: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:10:01.941260: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:10:01.941295: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:10:01.941330: Inverter 0 scheduled discharge enable is False
2026-08-17 20:10:01.941448: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:10:01.941484: Inverter 0 discharge windows currently []
2026-08-17 20:10:01.941506: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:10:01.941524: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:10:01.941541: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:10:01.998488: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:10:01.998579: Plan was last updated on 2026-08-17 20:00:00+01:00 and is now 10.0 minutes old
2026-08-17 20:10:01.998806: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:10:01.998848: Best export window [ ]
2026-08-17 20:10:01.999698: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:10:02.002909: Load divergence over 8.0 hours mean 487.37W, min 342.6W, max 1039.2W, std dev 160.33W, divergence 16.45%
2026-08-17 20:10:02.021536: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:10:02.021646: LoadML is_calculating False
2026-08-17 20:10:02.021706: Creating pool of 12 processes to match your CPU count
2026-08-17 20:10:02.130490: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 607.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:10:00, load 28.97kWh, PV 0.0kWh
2026-08-17 20:10:02.259081: Battery has 8.0 hours left - now at 7.68kWh
2026-08-17 20:10:02.300130: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.87kWh, PV 0.0kWh
2026-08-17 20:10:02.376282: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 336.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.87kWh, PV 0.0kWh
2026-08-17 20:10:02.442723: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 324.71p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.97kWh, PV 0.0kWh
2026-08-17 20:10:02.442813: Saving plan best values to HA entities
2026-08-17 20:10:02.580118: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:10:02.584956: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:10:02.590296: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.04kWh, house 0.0kWh, export 0.0kWh, metric 324.71p, metric10 336.34p
2026-08-17 20:10:02.665031: Marginal costs baseline metric (no standing charge): 278.0744
2026-08-17 20:10:02.929920: Marginal energy costs matrix computed: min=6.67 max=32.6
2026-08-17 20:10:02.991690: Rate array import [{'start': 1210, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1210, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:10:02.992424: - Your estimated bill for today is £1.81 and tomorrow is £1.59
2026-08-17 20:10:02.992474: - Import rates are very expensive (33.8p) for the next 3 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:10:02.992498: - The battery is currently at 48% and is in eco mode for the next 3 and a quarter hours.
2026-08-17 20:10:02.992516: - For the next 48 hours there will be no solar generation.
2026-08-17 20:10:02.992538: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:10:02.992562: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 20:10:02.992583:
2026-08-17 20:10:03.037031: Plan calculation took 1.04 seconds
2026-08-17 20:10:03.039984: No high rate period found
2026-08-17 20:10:03.085512: Import threshold used for optimisation was 8.0p
2026-08-17 20:10:03.137475: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:10:03.144541: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-17 20:10:03.144747: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:10:03.144919: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:10:03.145307: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:10:03.145449: No export window planned
2026-08-17 20:10:03.145651: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:10:03.145716: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:10:03.145982: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:10:03.146261: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:10:03.146362: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:10:03.146467: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:10:03.146616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.146708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.146848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.146936: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.146977: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147009: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147041: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147222: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147246: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:03.147320: Inverter 0 count register writes 0
2026-08-17 20:10:03.162653: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 20:10:03.162884: Recompute is saving previous plan...
2026-08-17 20:10:03.163966: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 20:10:03.164023: Best export window [ ]
2026-08-17 20:10:03.164879: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:10:03.168136: Load divergence over 8.0 hours mean 487.37W, min 342.6W, max 1039.2W, std dev 160.33W, divergence 16.45%
2026-08-17 20:10:03.184233: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:10:03.184338: LoadML is_calculating False
2026-08-17 20:10:03.184413: Creating pool of 12 processes to match your CPU count
2026-08-17 20:10:03.263246: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 20:10:03.264181: Optimise levels pass started at 2026-08-17 20:10:03
2026-08-17 20:10:03.264238: Optimise all windows, total charge 24 export 1
2026-08-17 20:10:03.638639: >> Region optimisation pass width 960 gives best_metric 387.89p, best_cost 416.47p, best_cycle 46.39kWh, best_import 32.34kWh
2026-08-17 20:10:03.781277: >> Region optimisation pass width 480 gives best_metric 387.89p, best_cost 416.47p, best_cycle 46.39kWh, best_import 32.34kWh
2026-08-17 20:10:04.036118: >> Region optimisation pass width 240 gives best_metric 387.89p, best_cost 416.47p, best_cycle 46.39kWh, best_import 32.34kWh
2026-08-17 20:10:04.567993: >> Region optimisation pass width 120 gives best_metric 387.89p, best_cost 416.47p, best_cycle 46.39kWh, best_import 32.34kWh
2026-08-17 20:10:04.568243: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 20:10:04.568345: Optimise levels pass ended at 2026-08-17 20:10:04, duration 1.3 seconds tried 72 combinations
2026-08-17 20:10:04.568447: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 387.89p, best_keep 0kWh, best_cycle 46.39kWh, best_carbon 0kg, best_import 32.34kWh
2026-08-17 20:10:04.591672: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 20:10:07.017000: Tweak plan optimisation started metric 261.41p, cost 271.76p
2026-08-17 20:10:07.342592: Tweak optimisation finished metric 261.41p, cost 271.76p, metric_keep 0kWh, cycle 23.94kWh, carbon 0kg, import 14.25kWh, changed 8 window(s)
2026-08-17 20:10:07.361836: Swap charge optimisation started metric 261.41p, cost 271.76p, min_improvement_swap 0.1p
2026-08-17 20:10:07.967767: Swap charge optimisation finished metric 261.41p, cost 271.76p
2026-08-17 20:10:08.087276: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 260.23p -> 260.08p, plan now metric 262.28p, cost 269.79p, cycle 24.19kWh, import 14.0kWh
2026-08-17 20:10:08.095060: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:10:08.095317: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:10:08.095518: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:10:08.095656: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:10:08.125456: Previous plan best metric is 261.41 (cost 271.76) and new plan best metric is 261.41 (cost 271.76)
2026-08-17 20:10:08.125644: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 20:10:08.125789: Plan valid is now true after recompute was False
2026-08-17 20:10:08.148230: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 605.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:10:00, load 28.77kWh, PV 0.0kWh
2026-08-17 20:10:08.245165: Battery has 8.0 hours left - now at 7.68kWh
2026-08-17 20:10:08.284490: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.66kWh, PV 0.0kWh
2026-08-17 20:10:08.349701: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 329.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.66kWh, PV 0.0kWh
2026-08-17 20:10:08.410994: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 316.42p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.77kWh, PV 0.0kWh
2026-08-17 20:10:08.411071: Saving plan best values to HA entities
2026-08-17 20:10:08.553209: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:10:08.557686: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:10:08.564909: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.0kWh, house 0.0kWh, export 0.0kWh, metric 316.42p, metric10 329.09p
2026-08-17 20:10:08.631243: Marginal costs baseline metric (no standing charge): 269.7901
2026-08-17 20:10:08.877863: Marginal energy costs matrix computed: min=6.67 max=32.6
2026-08-17 20:10:08.944587: Rate array import [{'start': 1210, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1210, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:10:08.945224: - Your estimated bill for today is £1.81 and tomorrow is £1.59
2026-08-17 20:10:08.945266: - Import rates are very expensive (33.8p) for the next 3 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:10:08.945289: - The battery is currently at 48% and is in eco mode for the next 3 and a quarter hours.
2026-08-17 20:10:08.945308: - For the next 48 hours there will be no solar generation.
2026-08-17 20:10:08.945331: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:10:08.945348: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 20:10:08.945365:
2026-08-17 20:10:09.001669: Plan calculation took 5.84 seconds
2026-08-17 20:10:09.001998: Inverter 0: Type SK Sunsynk
2026-08-17 20:10:09.002060: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:10:09.002284: Reserve min: 7%, battery_min: 7%
2026-08-17 20:10:09.002391: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:10:09.002860: Inverter 0 SoC: 7.68kW 48%, current charge rate 5000W, current discharge rate 5250W, current battery power 514W, current battery voltage 51.2V, grid power -49W, load power 568W, PV Power 0W
2026-08-17 20:10:09.003155: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:10:09.003263: Inverter 0 scheduled charge enable is False
2026-08-17 20:10:09.003299: Inverter 0 charge windows currently []
2026-08-17 20:10:09.003330: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:10:09.003446: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:10:09.003485: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:10:09.003523: Inverter 0 scheduled discharge enable is False
2026-08-17 20:10:09.003654: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:10:09.003691: Inverter 0 discharge windows currently []
2026-08-17 20:10:09.003713: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:10:09.003735: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:10:09.003752: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:10:09.066193: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 48%, target 100%
2026-08-17 20:10:09.066333: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:10:09.066405: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:10:09.066578: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:10:09.066657: No export window planned
2026-08-17 20:10:09.066777: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:10:09.066815: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:10:09.066946: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:10:09.067100: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:10:09.067152: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:10:09.067226: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:10:09.067349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067492: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067560: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067662: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.067997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.068073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.068130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.068159: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:10:09.068182: Inverter 0 count register writes 0
2026-08-17 20:10:09.087985: Total inverter register writes now 861
2026-08-17 20:10:09.118813: Info: Completed run status Demand
2026-08-17 20:10:09.124243: Info: record_status Demand
2026-08-17 20:10:09.130000: Saved current settings to /config/predbat_config.json
2026-08-17 20:10:09.130283: Compare, best tariff: current metric 104.68p
2026-08-17 20:10:49.236963: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:10:49.237189: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:10:49.237230: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:10:49.237359: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:10:49.237396: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:10:49.237417: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:10:49.237434: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:12:49.484247: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:12:49.484490: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:12:49.484547: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:12:49.484720: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:12:49.484764: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:12:49.484807: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:12:49.484845: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:15:00.738637: --------------- PredBat - update at 2026-08-17 20:15:00+01:00 with clock skew 0 minutes, minutes now 1215
2026-08-17 20:15:00.739458: Saved current settings to /config/predbat_config.json
2026-08-17 20:15:00.739631: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 20:15:00.739772: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:15:00.739888: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:15:00.757239: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:15:00.757399: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:15:00.757570: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:15:00.758082: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:15:00.758198: Predbat mode is set to Control charge & discharge
2026-08-17 20:15:00.967582: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:15:00.967704: Using load_power data to fill gaps in load_today data
2026-08-17 20:15:01.804867: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:15:01.805056: Zero load period starting at 2026-08-17T10:54:00+0100 (561 minutes) for 189 minutes with base value 212.7
2026-08-17 20:15:01.805723: Processing 721 30-minute periods for power integration
2026-08-17 20:15:01.996688: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:15:01.996853: Car charging hold False, threshold 6.0kWh
2026-08-17 20:15:01.996944: Current data so far today: load 10.25kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:15:02.013193: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:15:02.013285: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:15:02.014039: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:15:02.014127: Standing charge is set to 46.63p
2026-08-17 20:15:02.109366: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.109711: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.110009: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.110259: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.110481: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.110699: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.110932: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.111149: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.111353: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:15:02.112923: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:15:02.113048: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:15:02.118851: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:15:02.119485: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:15:02.167720: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:15:02.168143: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:15:02.169551: High export rate found rates in range 99p to -99p
2026-08-17 20:15:02.204293: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:15:02.204415: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:15:02.214263: Battery level now 7.68kWh, -1hr ago 8.0kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -19.3p, rate_forward 6.87p
2026-08-17 20:15:02.214560: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:15:02.279673: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:15:02.279866: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:15:02.384052: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:15:02.428164: Today's load divergence 92.6%, in-day adjustment 89.12%, damping 0.95x, yesterday 68.37% today 92.97% blend 15.62%
2026-08-17 20:15:02.428309: Today's predicted so far 12.56kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 12.56kWh forecast extra.
2026-08-17 20:15:02.428349: Today's actual load so far 11.48kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 20:15:02.468210: Inverter 0: Type SK Sunsynk
2026-08-17 20:15:02.468298: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:15:02.468501: Reserve min: 7%, battery_min: 7%
2026-08-17 20:15:02.468567: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:15:02.468858: Inverter 0 SoC: 7.58kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 610W, current battery voltage 51.2V, grid power -59W, load power 671W, PV Power 0W
2026-08-17 20:15:02.469041: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:15:02.469123: Inverter 0 scheduled charge enable is False
2026-08-17 20:15:02.469147: Inverter 0 charge windows currently []
2026-08-17 20:15:02.469169: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:15:02.469264: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:15:02.469287: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:15:02.469316: Inverter 0 scheduled discharge enable is False
2026-08-17 20:15:02.469457: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:15:02.469497: Inverter 0 discharge windows currently []
2026-08-17 20:15:02.469516: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:15:02.469533: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:15:02.469547: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:15:02.540259: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:15:02.540367: Plan was last updated on 2026-08-17 20:10:00+01:00 and is now 5.0 minutes old
2026-08-17 20:15:02.540573: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:15:02.540614: Best export window [ ]
2026-08-17 20:15:02.541522: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:15:02.544850: Load divergence over 8.0 hours mean 487.39W, min 331.2W, max 1005.0W, std dev 167.52W, divergence 17.19%
2026-08-17 20:15:02.563295: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:15:02.563405: LoadML is_calculating False
2026-08-17 20:15:02.563487: Creating pool of 12 processes to match your CPU count
2026-08-17 20:15:02.695293: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:00:00, load 28.88kWh, PV 0.0kWh
2026-08-17 20:15:02.825897: Battery has 7.75 hours left - now at 7.58kWh
2026-08-17 20:15:02.873820: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 628.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:30:00, load 29.76kWh, PV 0.0kWh
2026-08-17 20:15:02.959105: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 333.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 29.76kWh, PV 0.0kWh
2026-08-17 20:15:03.027481: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 321.1p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 28.88kWh, PV 0.0kWh
2026-08-17 20:15:03.027588: Saving plan best values to HA entities
2026-08-17 20:15:03.178461: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:15:03.182798: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 20:15:03.187073: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.59kWh, house 0.0kWh, export 0.0kWh, metric 321.1p, metric10 333.62p
2026-08-17 20:15:03.250894: Marginal costs baseline metric (no standing charge): 274.4646
2026-08-17 20:15:03.511992: Marginal energy costs matrix computed: min=6.0 max=32.65
2026-08-17 20:15:03.600593: Rate array import [{'start': 1215, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1215, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:15:03.601169: - Your estimated bill for today is £1.82 and tomorrow is £1.60
2026-08-17 20:15:03.601207: - Import rates are very expensive (33.8p) for the next 3 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:15:03.601226: - The battery is currently at 47% and is in eco mode for the next 3 and a quarter hours.
2026-08-17 20:15:03.601241: - For the next 48 hours there will be no solar generation.
2026-08-17 20:15:03.601261: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:15:03.601275: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 20:15:03.601293:
2026-08-17 20:15:03.671157: Plan calculation took 1.13 seconds
2026-08-17 20:15:03.675345: No high rate period found
2026-08-17 20:15:03.749354: Import threshold used for optimisation was 8.0p
2026-08-17 20:15:03.804418: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:15:03.811206: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-17 20:15:03.811371: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:15:03.811510: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:15:03.811839: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:15:03.811996: No export window planned
2026-08-17 20:15:03.812187: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:15:03.812234: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:15:03.812431: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:15:03.812671: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:15:03.812766: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:15:03.812882: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:15:03.813030: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813190: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813234: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813276: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813636: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813683: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813718: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:15:03.813763: Inverter 0 count register writes 0
2026-08-17 20:15:03.830912: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 20:15:03.836439: Total inverter register writes now 861
2026-08-17 20:15:03.872744: Info: Completed run status Demand
2026-08-17 20:15:03.880337: Info: record_status Demand
2026-08-17 20:15:03.888013: Saved current settings to /config/predbat_config.json
2026-08-17 20:15:03.888449: Compare, best tariff: current metric 104.68p
2026-08-17 20:15:33.989198: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:15:33.989431: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:15:33.989479: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:15:33.989622: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:15:33.989665: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:15:33.989686: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:15:33.989709: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:17:34.209215: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:17:34.209561: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:17:34.209635: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:17:34.209822: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:17:34.209881: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:17:34.209922: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:17:34.209947: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:19:34.453545: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:19:34.453851: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:19:34.453908: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:19:34.454111: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:19:34.454163: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:19:34.454195: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:19:34.454230: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:20:00.571977: --------------- PredBat - update at 2026-08-17 20:20:00+01:00 with clock skew 0 minutes, minutes now 1220
2026-08-17 20:20:00.572767: Saved current settings to /config/predbat_config.json
2026-08-17 20:20:00.572941: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 20:20:00.573084: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:20:00.573230: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:20:00.601964: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:20:00.602114: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:20:00.602312: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:20:00.602944: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:20:00.603068: Predbat mode is set to Control charge & discharge
2026-08-17 20:20:00.845956: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:20:00.846123: Using load_power data to fill gaps in load_today data
2026-08-17 20:20:01.733314: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:20:01.733555: Zero load period starting at 2026-08-17T10:54:00+0100 (566 minutes) for 189 minutes with base value 212.675
2026-08-17 20:20:01.734332: Processing 721 30-minute periods for power integration
2026-08-17 20:20:01.918082: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:20:01.918358: Car charging hold False, threshold 6.0kWh
2026-08-17 20:20:01.918406: Current data so far today: load 10.35kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:20:01.932115: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:20:01.932214: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:20:01.932900: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:20:01.932963: Standing charge is set to 46.63p
2026-08-17 20:20:02.025344: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.025604: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.025797: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.026020: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.026194: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.026365: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.026537: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.026703: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.026881: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:20:02.028010: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:20:02.028122: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:20:02.033667: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:20:02.034187: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:20:02.080161: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:20:02.080295: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:20:02.081781: High export rate found rates in range 99p to -99p
2026-08-17 20:20:02.112544: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:20:02.112684: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:20:02.126709: Battery level now 7.58kWh, -1hr ago 7.84kWh, at midnight 10.49kWh, battery value change in the last hour -1.76p, change today -19.96p, rate_forward 6.87p
2026-08-17 20:20:02.127121: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:20:02.188102: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:20:02.188256: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:20:02.292751: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:20:02.330233: Today's load divergence 92.99%, in-day adjustment 89.52%, damping 0.95x, yesterday 68.37% today 93.34% blend 15.28%
2026-08-17 20:20:02.330326: Today's predicted so far 12.59kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 12.59kWh forecast extra.
2026-08-17 20:20:02.330358: Today's actual load so far 11.56kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 20:20:02.374337: Inverter 0: Type SK Sunsynk
2026-08-17 20:20:02.374435: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:20:02.374664: Reserve min: 7%, battery_min: 7%
2026-08-17 20:20:02.374769: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:20:02.375107: Inverter 0 SoC: 7.58kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 589W, current battery voltage 51.2V, grid power -48W, load power 684W, PV Power 0W
2026-08-17 20:20:02.375302: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:20:02.375415: Inverter 0 scheduled charge enable is False
2026-08-17 20:20:02.375467: Inverter 0 charge windows currently []
2026-08-17 20:20:02.375542: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:20:02.375721: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:20:02.375766: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:20:02.375823: Inverter 0 scheduled discharge enable is False
2026-08-17 20:20:02.376054: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:20:02.376102: Inverter 0 discharge windows currently []
2026-08-17 20:20:02.376132: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:20:02.376171: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:20:02.376214: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:20:02.440310: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:20:02.440418: Plan was last updated on 2026-08-17 20:10:00+01:00 and is now 10.0 minutes old
2026-08-17 20:20:02.440677: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:20:02.440726: Best export window [ ]
2026-08-17 20:20:02.441674: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:20:02.445056: Load divergence over 8.0 hours mean 486.11W, min 361.2W, max 977.4W, std dev 157.63W, divergence 16.21%
2026-08-17 20:20:02.470294: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:20:02.470419: LoadML is_calculating False
2026-08-17 20:20:02.470487: Creating pool of 12 processes to match your CPU count
2026-08-17 20:20:02.595286: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 607.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:05:00, load 29.03kWh, PV 0.0kWh
2026-08-17 20:20:02.738192: Battery has 7.75 hours left - now at 7.58kWh
2026-08-17 20:20:02.795960: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.92kWh, PV 0.0kWh
2026-08-17 20:20:02.906578: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 336.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.92kWh, PV 0.0kWh
2026-08-17 20:20:02.983894: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 324.88p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.03kWh, PV 0.0kWh
2026-08-17 20:20:02.984056: Saving plan best values to HA entities
2026-08-17 20:20:03.135067: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:20:03.139817: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 20:20:03.146049: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.06kWh, house 0.0kWh, export 0.0kWh, metric 324.88p, metric10 336.56p
2026-08-17 20:20:03.222210: Marginal costs baseline metric (no standing charge): 278.2496
2026-08-17 20:20:03.454760: Marginal energy costs matrix computed: min=7.46 max=32.61
2026-08-17 20:20:03.520715: Rate array import [{'start': 1220, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1220, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:20:03.521287: - Your estimated bill for today is £1.82 and tomorrow is £1.59
2026-08-17 20:20:03.521325: - Import rates are very expensive (33.8p) for the next 3 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:20:03.521360: - The battery is currently at 47% and is in eco mode for the next 3 and a quarter hours.
2026-08-17 20:20:03.521376: - For the next 48 hours there will be no solar generation.
2026-08-17 20:20:03.521391: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:20:03.521405: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 20:20:03.521419:
2026-08-17 20:20:03.570349: Plan calculation took 1.13 seconds
2026-08-17 20:20:03.573303: No high rate period found
2026-08-17 20:20:03.622580: Import threshold used for optimisation was 8.0p
2026-08-17 20:20:03.685176: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:20:03.690939: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-17 20:20:03.691043: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:20:03.691131: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:20:03.691335: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:20:03.691415: No export window planned
2026-08-17 20:20:03.691511: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:20:03.691540: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:20:03.691648: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:20:03.691795: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:20:03.691858: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:20:03.691965: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:20:03.692055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692113: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692134: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692154: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692215: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:03.692617: Inverter 0 count register writes 0
2026-08-17 20:20:03.706372: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 20:20:03.706513: Recompute is saving previous plan...
2026-08-17 20:20:03.707221: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 20:20:03.707260: Best export window [ ]
2026-08-17 20:20:03.707872: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:20:03.710357: Load divergence over 8.0 hours mean 486.11W, min 361.2W, max 977.4W, std dev 157.63W, divergence 16.21%
2026-08-17 20:20:03.725512: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:20:03.725615: LoadML is_calculating False
2026-08-17 20:20:03.725674: Creating pool of 12 processes to match your CPU count
2026-08-17 20:20:03.802013: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 20:20:03.802791: Optimise levels pass started at 2026-08-17 20:20:03
2026-08-17 20:20:03.802863: Optimise all windows, total charge 24 export 1
2026-08-17 20:20:04.186976: >> Region optimisation pass width 960 gives best_metric 388.72p, best_cost 416.69p, best_cycle 46.45kWh, best_import 32.36kWh
2026-08-17 20:20:04.336287: >> Region optimisation pass width 480 gives best_metric 388.72p, best_cost 416.69p, best_cycle 46.45kWh, best_import 32.36kWh
2026-08-17 20:20:04.609252: >> Region optimisation pass width 240 gives best_metric 388.72p, best_cost 416.69p, best_cycle 46.45kWh, best_import 32.36kWh
2026-08-17 20:20:05.131957: >> Region optimisation pass width 120 gives best_metric 388.72p, best_cost 416.69p, best_cycle 46.45kWh, best_import 32.36kWh
2026-08-17 20:20:05.132756: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 20:20:05.132850: Optimise levels pass ended at 2026-08-17 20:20:05, duration 1.3 seconds tried 72 combinations
2026-08-17 20:20:05.132909: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 388.72p, best_keep 0kWh, best_cycle 46.45kWh, best_carbon 0kg, best_import 32.36kWh
2026-08-17 20:20:05.152506: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 20:20:07.662469: Tweak plan optimisation started metric 261.61p, cost 271.91p
2026-08-17 20:20:08.090315: Tweak optimisation finished metric 261.61p, cost 271.91p, metric_keep 0kWh, cycle 23.9kWh, carbon 0kg, import 14.27kWh, changed 8 window(s)
2026-08-17 20:20:08.116933: Swap charge optimisation started metric 261.61p, cost 271.91p, min_improvement_swap 0.1p
2026-08-17 20:20:08.918272: Swap charge optimisation finished metric 261.61p, cost 271.91p
2026-08-17 20:20:09.087118: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 260.41p -> 260.26p, plan now metric 262.47p, cost 269.96p, cycle 24.15kWh, import 14.02kWh
2026-08-17 20:20:09.098485: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:20:09.098996: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:20:09.099303: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:20:09.099535: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:20:09.144589: Previous plan best metric is 261.61 (cost 271.91) and new plan best metric is 261.61 (cost 271.91)
2026-08-17 20:20:09.144783: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 20:20:09.144968: Plan valid is now true after recompute was False
2026-08-17 20:20:09.175290: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 605.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:05:00, load 28.83kWh, PV 0.0kWh
2026-08-17 20:20:09.287272: Battery has 7.75 hours left - now at 7.58kWh
2026-08-17 20:20:09.325933: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 627.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.71kWh, PV 0.0kWh
2026-08-17 20:20:09.399450: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 329.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.71kWh, PV 0.0kWh
2026-08-17 20:20:09.481729: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 316.59p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.83kWh, PV 0.0kWh
2026-08-17 20:20:09.481812: Saving plan best values to HA entities
2026-08-17 20:20:09.624590: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:20:09.629224: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 20:20:09.633864: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.02kWh, house 0.0kWh, export 0.0kWh, metric 316.59p, metric10 329.3p
2026-08-17 20:20:09.717578: Marginal costs baseline metric (no standing charge): 269.9574
2026-08-17 20:20:10.017635: Marginal energy costs matrix computed: min=7.46 max=32.61
2026-08-17 20:20:10.091793: Rate array import [{'start': 1220, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1220, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:20:10.092472: - Your estimated bill for today is £1.82 and tomorrow is £1.59
2026-08-17 20:20:10.092522: - Import rates are very expensive (33.8p) for the next 3 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:20:10.092544: - The battery is currently at 47% and is in eco mode for the next 3 and a quarter hours.
2026-08-17 20:20:10.092563: - For the next 48 hours there will be no solar generation.
2026-08-17 20:20:10.092584: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:20:10.092601: - Your next charge slot will be in 3 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 20:20:10.092619:
2026-08-17 20:20:10.146596: Plan calculation took 6.44 seconds
2026-08-17 20:20:10.146870: Inverter 0: Type SK Sunsynk
2026-08-17 20:20:10.146908: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:20:10.147100: Reserve min: 7%, battery_min: 7%
2026-08-17 20:20:10.147163: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:20:10.147434: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 660W, current battery voltage 51.2V, grid power -60W, load power 648W, PV Power 0W
2026-08-17 20:20:10.147623: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:20:10.147707: Inverter 0 scheduled charge enable is False
2026-08-17 20:20:10.147732: Inverter 0 charge windows currently []
2026-08-17 20:20:10.147756: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:20:10.147854: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:20:10.147887: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:20:10.147962: Inverter 0 scheduled discharge enable is False
2026-08-17 20:20:10.148095: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:20:10.148147: Inverter 0 discharge windows currently []
2026-08-17 20:20:10.148167: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:20:10.148182: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:20:10.148203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:20:10.209308: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-17 20:20:10.209479: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:20:10.209563: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:20:10.209783: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:20:10.209901: No export window planned
2026-08-17 20:20:10.210022: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:20:10.210058: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:20:10.210195: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:20:10.210350: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:20:10.210401: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:20:10.210460: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:20:10.210555: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210594: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210622: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210680: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210706: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210819: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210918: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210948: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:20:10.210998: Inverter 0 count register writes 0
2026-08-17 20:20:10.235567: Total inverter register writes now 861
2026-08-17 20:20:10.269460: Info: Completed run status Demand
2026-08-17 20:20:10.279079: Info: record_status Demand
2026-08-17 20:20:10.284749: Saved current settings to /config/predbat_config.json
2026-08-17 20:20:10.285055: Compare, best tariff: current metric 104.68p
2026-08-17 20:20:49.396586: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:20:49.396813: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:20:49.396875: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:20:49.397013: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:20:49.397051: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:20:49.397073: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:20:49.397091: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:22:49.624693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:22:49.624983: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:22:49.625068: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:22:49.625226: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:22:49.625264: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:22:49.625285: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:22:49.625305: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:25:00.844404: --------------- PredBat - update at 2026-08-17 20:25:00+01:00 with clock skew 0 minutes, minutes now 1225
2026-08-17 20:25:00.845133: Saved current settings to /config/predbat_config.json
2026-08-17 20:25:00.845250: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 20:25:00.845325: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:25:00.845401: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:25:00.864544: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:25:00.864661: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:25:00.864823: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:25:00.865339: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:25:00.865454: Predbat mode is set to Control charge & discharge
2026-08-17 20:25:01.032317: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:25:01.032444: Using load_power data to fill gaps in load_today data
2026-08-17 20:25:01.858189: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:25:01.858373: Zero load period starting at 2026-08-17T10:54:00+0100 (571 minutes) for 189 minutes with base value 212.65
2026-08-17 20:25:01.859058: Processing 721 30-minute periods for power integration
2026-08-17 20:25:02.048368: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:25:02.048491: Car charging hold False, threshold 6.0kWh
2026-08-17 20:25:02.048536: Current data so far today: load 10.4kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:25:02.064841: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:25:02.064946: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:25:02.065652: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:25:02.065740: Standing charge is set to 46.63p
2026-08-17 20:25:02.145343: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.145557: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.145715: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.145878: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.146025: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.146167: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.146308: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.146444: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.146577: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:25:02.147430: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:25:02.147514: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:25:02.151983: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:25:02.152257: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:25:02.186774: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:25:02.186886: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:25:02.188028: High export rate found rates in range 99p to -99p
2026-08-17 20:25:02.210800: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:25:02.210913: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:25:02.225416: Battery level now 7.58kWh, -1hr ago 7.84kWh, at midnight 10.49kWh, battery value change in the last hour -1.76p, change today -19.96p, rate_forward 6.87p
2026-08-17 20:25:02.225847: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:25:02.289301: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:25:02.289484: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:25:02.400515: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:25:02.430230: Today's load divergence 92.94%, in-day adjustment 89.57%, damping 0.95x, yesterday 68.37% today 93.3% blend 14.93%
2026-08-17 20:25:02.430305: Today's predicted so far 12.63kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 12.63kWh forecast extra.
2026-08-17 20:25:02.430332: Today's actual load so far 11.59kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 20:25:02.459494: Inverter 0: Type SK Sunsynk
2026-08-17 20:25:02.459563: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:25:02.459707: Reserve min: 7%, battery_min: 7%
2026-08-17 20:25:02.459763: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:25:02.460044: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 972W, current battery voltage 51.2V, grid power -53W, load power 1048W, PV Power 0W
2026-08-17 20:25:02.460179: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:25:02.460250: Inverter 0 scheduled charge enable is False
2026-08-17 20:25:02.460278: Inverter 0 charge windows currently []
2026-08-17 20:25:02.460300: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:25:02.460389: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:25:02.460417: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:25:02.460454: Inverter 0 scheduled discharge enable is False
2026-08-17 20:25:02.460552: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:25:02.460581: Inverter 0 discharge windows currently []
2026-08-17 20:25:02.460600: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:25:02.460614: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:25:02.460631: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:25:02.510332: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:25:02.510417: Plan was last updated on 2026-08-17 20:20:00+01:00 and is now 5.0 minutes old
2026-08-17 20:25:02.510582: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:25:02.510614: Best export window [ ]
2026-08-17 20:25:02.511288: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:25:02.513834: Load divergence over 8.0 hours mean 484.55W, min 344.4W, max 1032.6W, std dev 168.15W, divergence 17.35%
2026-08-17 20:25:02.529532: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:25:02.529626: LoadML is_calculating False
2026-08-17 20:25:02.529676: Creating pool of 12 processes to match your CPU count
2026-08-17 20:25:02.625902: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 606.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:05:00, load 28.93kWh, PV 0.0kWh
2026-08-17 20:25:02.740267: Battery has 7.67 hours left - now at 7.52kWh
2026-08-17 20:25:02.777709: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 628.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.81kWh, PV 0.0kWh
2026-08-17 20:25:02.849372: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 333.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.81kWh, PV 0.0kWh
2026-08-17 20:25:02.928684: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 320.76p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 28.93kWh, PV 0.0kWh
2026-08-17 20:25:02.928779: Saving plan best values to HA entities
2026-08-17 20:25:03.080499: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:25:03.085433: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:25:03.090214: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.54kWh, house 0kWh, export 0.0kWh, metric 320.76p, metric10 333.27p
2026-08-17 20:25:03.158769: Marginal costs baseline metric (no standing charge): 274.1255
2026-08-17 20:25:03.411054: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 20:25:03.493666: Rate array import [{'start': 1225, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1225, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:25:03.494237: - Your estimated bill for today is £1.82 and tomorrow is £1.59
2026-08-17 20:25:03.494275: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:25:03.494293: - The battery is currently at 47% and is in eco mode for the next 3 hours.
2026-08-17 20:25:03.494308: - For the next 48 hours there will be no solar generation.
2026-08-17 20:25:03.494322: - You will reach a minimum of 9% battery in 27 hours.
2026-08-17 20:25:03.494335: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-17 20:25:03.494352:
2026-08-17 20:25:03.536691: Plan calculation took 1.03 seconds
2026-08-17 20:25:03.539829: No high rate period found
2026-08-17 20:25:03.593295: Import threshold used for optimisation was 8.0p
2026-08-17 20:25:03.641999: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:25:03.648642: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-17 20:25:03.648819: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:25:03.648993: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:25:03.649317: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:25:03.649455: No export window planned
2026-08-17 20:25:03.649643: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:25:03.649695: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:25:03.649914: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:25:03.650167: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:25:03.650253: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:25:03.650368: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:25:03.650527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.650592: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.650655: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.650706: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.650769: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.650825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.650892: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.650990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.651034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.651067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.651127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.651189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.651249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.651309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:25:03.651356: Inverter 0 count register writes 0
2026-08-17 20:25:03.669907: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 20:25:03.676207: Total inverter register writes now 861
2026-08-17 20:25:03.724707: Info: Completed run status Demand
2026-08-17 20:25:03.730608: Info: record_status Demand
2026-08-17 20:25:03.736537: Saved current settings to /config/predbat_config.json
2026-08-17 20:25:03.736833: Compare, best tariff: current metric 104.68p
2026-08-17 20:25:33.846073: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:25:33.846362: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:25:33.846425: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:25:33.846654: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:25:33.846704: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:25:33.846751: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:25:33.846789: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:27:34.062561: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:27:34.062795: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:27:34.062828: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:27:34.062980: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:27:34.063021: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:27:34.063043: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:27:34.063061: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:27:45.207424: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 20:27:46.206709: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:27:46.206998: Zero load period starting at 2026-08-17T10:54:00+0100 (571 minutes) for 189 minutes with base value 409.1
2026-08-17 20:27:46.207667: Processing 1345 30-minute periods for power integration
2026-08-17 20:27:46.316688: ML Component: Car charging hold False, car energy reported load False
2026-08-17 20:27:46.420109: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:27:46.519474: ML Temperature data points: 49176
2026-08-17 20:27:46.745805: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 20:27:46.786907: ML Component: Data fetch completed, load data age 59.0 days, 17069 data points
2026-08-17 20:27:46.787117: ML Component: No training needed, model age is 1.24 hours
2026-08-17 20:27:46.787196: ML Component: Generating predictions load data age 59.0 days, 17069 data points
2026-08-17 20:27:46.949005: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0679 max_dow {0: 0.08525277784036266, 1: 0.10017499963007867, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 20:27:47.364805: ML Component: Generated 576 predictions (total 25.43 kWh over 48h)
2026-08-17 20:27:47.405187: ML Component: Prediction cycle completed
2026-08-17 20:27:47.521634: ML Component: Saved 17069 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 20:29:34.080347: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:29:34.080574: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:29:34.080639: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:29:34.080785: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:29:34.080826: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:29:34.080847: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:29:34.080865: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:30:00.184405: --------------- PredBat - update at 2026-08-17 20:30:00+01:00 with clock skew 0 minutes, minutes now 1230
2026-08-17 20:30:00.185198: Saved current settings to /config/predbat_config.json
2026-08-17 20:30:00.185322: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 20:30:00.185388: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:30:00.185470: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:30:00.206120: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:30:00.206243: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:30:00.206441: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:30:00.206990: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:30:00.207132: Predbat mode is set to Control charge & discharge
2026-08-17 20:30:00.428558: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:30:00.428683: Using load_power data to fill gaps in load_today data
2026-08-17 20:30:01.270614: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:30:01.270851: Zero load period starting at 2026-08-17T10:54:00+0100 (576 minutes) for 189 minutes with base value 212.625
2026-08-17 20:30:01.272158: Processing 721 30-minute periods for power integration
2026-08-17 20:30:01.498674: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:30:01.498801: Car charging hold False, threshold 6.0kWh
2026-08-17 20:30:01.498867: Current data so far today: load 10.45kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:30:01.522792: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:30:01.523204: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:30:01.524363: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:30:01.524453: Standing charge is set to 46.63p
2026-08-17 20:30:01.631666: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.631965: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.632159: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.632339: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.632514: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.632681: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.632848: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.633032: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.633194: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:30:01.634248: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:30:01.634351: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:30:01.639889: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:30:01.640239: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:30:01.683669: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:30:01.683784: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:30:01.685143: High export rate found rates in range 99p to -99p
2026-08-17 20:30:01.714569: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:30:01.715012: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:30:01.729173: Battery level now 7.52kWh, -1hr ago 7.84kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -20.4p, rate_forward 6.87p
2026-08-17 20:30:01.729585: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.42kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:30:01.797125: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:30:01.797283: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:30:01.892712: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:30:01.928890: Today's load divergence 92.64%, in-day adjustment 89.41%, damping 0.95x, yesterday 68.37% today 93.01% blend 14.58%
2026-08-17 20:30:01.928999: Today's predicted so far 12.75kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 12.75kWh forecast extra.
2026-08-17 20:30:01.929032: Today's actual load so far 11.67kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 20:30:01.967744: Inverter 0: Type SK Sunsynk
2026-08-17 20:30:01.967852: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:30:01.968116: Reserve min: 7%, battery_min: 7%
2026-08-17 20:30:01.968203: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:30:01.968461: Inverter 0 SoC: 7.52kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power 976W, current battery voltage 51.2V, grid power -57W, load power 1034W, PV Power 0W
2026-08-17 20:30:01.968635: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:30:01.968726: Inverter 0 scheduled charge enable is False
2026-08-17 20:30:01.968755: Inverter 0 charge windows currently []
2026-08-17 20:30:01.968786: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:30:01.968919: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:30:01.968981: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:30:01.969038: Inverter 0 scheduled discharge enable is False
2026-08-17 20:30:01.969246: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:30:01.969290: Inverter 0 discharge windows currently []
2026-08-17 20:30:01.969326: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:30:01.969370: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:30:01.969392: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:30:02.036442: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:30:02.036541: Plan was last updated on 2026-08-17 20:20:00+01:00 and is now 10.0 minutes old
2026-08-17 20:30:02.036769: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:30:02.036842: Best export window [ ]
2026-08-17 20:30:02.037801: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:30:02.041028: Load divergence over 8.0 hours mean 484.69W, min 353.4W, max 1063.8W, std dev 155.05W, divergence 15.99%
2026-08-17 20:30:02.060701: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:30:02.060842: LoadML is_calculating False
2026-08-17 20:30:02.060971: Creating pool of 12 processes to match your CPU count
2026-08-17 20:30:02.179624: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 606.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:10:00, load 29.03kWh, PV 0.0kWh
2026-08-17 20:30:02.310712: Battery has 7.67 hours left - now at 7.52kWh
2026-08-17 20:30:02.371241: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 628.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.92kWh, PV 0.0kWh
2026-08-17 20:30:02.459236: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 336.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.92kWh, PV 0.0kWh
2026-08-17 20:30:02.571251: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 324.46p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.03kWh, PV 0.0kWh
2026-08-17 20:30:02.571358: Saving plan best values to HA entities
2026-08-17 20:30:02.759429: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:30:02.764850: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 20:30:02.770138: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.01kWh, house 0.0kWh, export 0.0kWh, metric 324.46p, metric10 336.3p
2026-08-17 20:30:02.857302: Marginal costs baseline metric (no standing charge): 277.8251
2026-08-17 20:30:03.188569: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 20:30:03.286543: Rate array import [{'start': 1230, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1230, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:30:03.287112: - Your estimated bill for today is £1.81 and tomorrow is £1.59
2026-08-17 20:30:03.287149: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:30:03.287168: - The battery is currently at 47% and is in eco mode for the next 3 hours.
2026-08-17 20:30:03.287184: - For the next 48 hours there will be no solar generation.
2026-08-17 20:30:03.287198: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:30:03.287213: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-17 20:30:03.287228:
2026-08-17 20:30:03.350180: Plan calculation took 1.31 seconds
2026-08-17 20:30:03.355176: No high rate period found
2026-08-17 20:30:03.404702: Import threshold used for optimisation was 8.0p
2026-08-17 20:30:03.459655: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:30:03.466456: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 47%, target 100%
2026-08-17 20:30:03.466621: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:30:03.466748: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:30:03.467038: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:30:03.467121: No export window planned
2026-08-17 20:30:03.467225: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:30:03.467254: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:30:03.467430: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:30:03.467597: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:30:03.467668: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:30:03.467730: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:30:03.467809: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.467841: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.467890: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.467960: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.467993: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468047: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:03.468340: Inverter 0 count register writes 0
2026-08-17 20:30:03.484096: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 20:30:03.484266: Recompute is saving previous plan...
2026-08-17 20:30:03.485151: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 20:30:03.485198: Best export window [ ]
2026-08-17 20:30:03.485974: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:30:03.489141: Load divergence over 8.0 hours mean 484.69W, min 353.4W, max 1063.8W, std dev 155.05W, divergence 15.99%
2026-08-17 20:30:03.507345: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:30:03.507466: LoadML is_calculating False
2026-08-17 20:30:03.507531: Creating pool of 12 processes to match your CPU count
2026-08-17 20:30:03.591758: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 20:30:03.592651: Optimise levels pass started at 2026-08-17 20:30:03
2026-08-17 20:30:03.592724: Optimise all windows, total charge 24 export 1
2026-08-17 20:30:04.235693: >> Region optimisation pass width 960 gives best_metric 388.62p, best_cost 409.95p, best_cycle 47.26kWh, best_import 31.52kWh
2026-08-17 20:30:04.418092: >> Region optimisation pass width 480 gives best_metric 388.62p, best_cost 409.95p, best_cycle 47.26kWh, best_import 31.52kWh
2026-08-17 20:30:04.702916: >> Region optimisation pass width 240 gives best_metric 388.62p, best_cost 409.95p, best_cycle 47.26kWh, best_import 31.52kWh
2026-08-17 20:30:05.230637: >> Region optimisation pass width 120 gives best_metric 388.62p, best_cost 409.95p, best_cycle 47.26kWh, best_import 31.52kWh
2026-08-17 20:30:05.230821: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 20:30:05.230894: Optimise levels pass ended at 2026-08-17 20:30:05, duration 1.6 seconds tried 69 combinations
2026-08-17 20:30:05.230995: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 388.62p, best_keep 0kWh, best_cycle 47.26kWh, best_carbon 0kg, best_import 31.52kWh
2026-08-17 20:30:05.246331: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 20:30:07.472300: Tweak plan optimisation started metric 263.28p, cost 275.25p
2026-08-17 20:30:07.745454: Tweak optimisation finished metric 263.28p, cost 275.25p, metric_keep 0kWh, cycle 27.05kWh, carbon 0kg, import 14.69kWh, changed 8 window(s)
2026-08-17 20:30:07.760942: Swap charge optimisation started metric 263.28p, cost 275.25p, min_improvement_swap 0.1p
2026-08-17 20:30:08.312143: Swap charge optimisation finished metric 263.28p, cost 275.25p
2026-08-17 20:30:08.411697: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 262.27p -> 262.04p, plan now metric 264.22p, cost 272.31p, cycle 27.43kWh, import 14.32kWh
2026-08-17 20:30:08.419476: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:30:08.419806: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:30:08.420152: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:30:08.420312: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:30:08.449346: Previous plan best metric is 261.33 (cost 271.65) and new plan best metric is 263.28 (cost 275.25)
2026-08-17 20:30:08.449552: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 20:30:08.449744: Plan valid is now true after recompute was False
2026-08-17 20:30:08.472800: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 605.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 04:10:00, load 28.84kWh, PV 0.0kWh
2026-08-17 20:30:08.581657: Battery has 7.67 hours left - now at 7.52kWh
2026-08-17 20:30:08.628632: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 626.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.72kWh, PV 0.0kWh
2026-08-17 20:30:08.691156: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 329.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.72kWh, PV 0.0kWh
2026-08-17 20:30:08.773499: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 316.28p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 28.84kWh, PV 0.0kWh
2026-08-17 20:30:08.773577: Saving plan best values to HA entities
2026-08-17 20:30:08.920346: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:30:08.925706: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 20:30:08.931131: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 13.98kWh, house 0.0kWh, export 0.0kWh, metric 316.28p, metric10 329.15p
2026-08-17 20:30:09.010768: Marginal costs baseline metric (no standing charge): 269.6425
2026-08-17 20:30:09.297512: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 20:30:09.375322: Rate array import [{'start': 1230, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1230, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:30:09.376276: - Your estimated bill for today is £1.81 and tomorrow is £1.59
2026-08-17 20:30:09.376357: - Import rates are very expensive (33.8p) for the next 3 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:30:09.376524: - The battery is currently at 47% and is in eco mode for the next 3 hours.
2026-08-17 20:30:09.376589: - For the next 48 hours there will be no solar generation.
2026-08-17 20:30:09.376620: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:30:09.376637: - Your next charge slot will be in 3 hours where import rates will be cheap (8.0p).
2026-08-17 20:30:09.376654:
2026-08-17 20:30:09.436533: Plan calculation took 5.95 seconds
2026-08-17 20:30:09.436921: Inverter 0: Type SK Sunsynk
2026-08-17 20:30:09.436999: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:30:09.437278: Reserve min: 7%, battery_min: 7%
2026-08-17 20:30:09.437363: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:30:09.437818: Inverter 0 SoC: 7.38kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 1006W, current battery voltage 51.2V, grid power -53W, load power 1065W, PV Power 0W
2026-08-17 20:30:09.438127: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:30:09.438281: Inverter 0 scheduled charge enable is False
2026-08-17 20:30:09.438339: Inverter 0 charge windows currently []
2026-08-17 20:30:09.438381: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:30:09.438569: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:30:09.438640: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:30:09.438717: Inverter 0 scheduled discharge enable is False
2026-08-17 20:30:09.438875: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:30:09.438935: Inverter 0 discharge windows currently []
2026-08-17 20:30:09.438967: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:30:09.438987: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:30:09.439017: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:30:09.516705: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-17 20:30:09.516847: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:30:09.516927: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:30:09.517109: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:30:09.517188: No export window planned
2026-08-17 20:30:09.517297: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:30:09.517331: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:30:09.517463: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:30:09.517616: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:30:09.517666: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:30:09.517717: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:30:09.517864: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.517960: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518038: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518092: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518200: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:30:09.518682: Inverter 0 count register writes 0
2026-08-17 20:30:09.542256: Total inverter register writes now 861
2026-08-17 20:30:09.578277: Info: Completed run status Demand
2026-08-17 20:30:09.584035: Info: record_status Demand
2026-08-17 20:30:09.591444: Saved current settings to /config/predbat_config.json
2026-08-17 20:30:09.591768: Compare, best tariff: current metric 104.68p
2026-08-17 20:30:48.710335: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:30:48.710564: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:30:48.710606: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:30:48.710742: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:30:48.710781: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:30:48.710802: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:30:48.710825: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:32:48.927643: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:32:48.928011: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:32:48.928079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:32:48.928330: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:32:48.928377: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:32:48.928401: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:32:48.928419: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:34:49.148942: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:34:49.149140: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:34:49.149173: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:34:49.149303: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:34:49.149343: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:34:49.149361: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:34:49.149389: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:35:00.238075: --------------- PredBat - update at 2026-08-17 20:35:00+01:00 with clock skew 0 minutes, minutes now 1235
2026-08-17 20:35:00.238856: Saved current settings to /config/predbat_config.json
2026-08-17 20:35:00.238995: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 20:35:00.239155: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:35:00.239292: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:35:00.260041: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:35:00.260170: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:35:00.260334: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:35:00.260845: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:35:00.260986: Predbat mode is set to Control charge & discharge
2026-08-17 20:35:00.452285: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:35:00.452398: Using load_power data to fill gaps in load_today data
2026-08-17 20:35:01.230681: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:35:01.230859: Zero load period starting at 2026-08-17T10:54:00+0100 (581 minutes) for 189 minutes with base value 212.6
2026-08-17 20:35:01.231500: Processing 721 30-minute periods for power integration
2026-08-17 20:35:01.407836: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:35:01.407985: Car charging hold False, threshold 6.0kWh
2026-08-17 20:35:01.408044: Current data so far today: load 10.5kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:35:01.421315: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:35:01.421397: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:35:01.422042: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:35:01.422119: Standing charge is set to 46.63p
2026-08-17 20:35:01.499107: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.499498: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.499729: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.499989: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.500195: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.500423: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.500646: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.500860: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.501057: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:35:01.502027: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:35:01.502158: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:35:01.506741: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:35:01.507132: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:35:01.542406: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:35:01.542725: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:35:01.543968: High export rate found rates in range 99p to -99p
2026-08-17 20:35:01.570974: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:35:01.571097: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:35:01.582721: Battery level now 7.52kWh, -1hr ago 7.84kWh, at midnight 10.49kWh, battery value change in the last hour -2.2p, change today -20.4p, rate_forward 6.87p
2026-08-17 20:35:01.583172: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:35:01.640158: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:35:01.640317: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:35:01.732553: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:35:01.761248: Today's load divergence 92.47%, in-day adjustment 89.36%, damping 0.95x, yesterday 68.37% today 92.85% blend 14.24%
2026-08-17 20:35:01.761329: Today's predicted so far 12.83kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 12.83kWh forecast extra.
2026-08-17 20:35:01.761355: Today's actual load so far 11.73kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 20:35:01.790020: Inverter 0: Type SK Sunsynk
2026-08-17 20:35:01.790099: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:35:01.790269: Reserve min: 7%, battery_min: 7%
2026-08-17 20:35:01.790348: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:35:01.790710: Inverter 0 SoC: 7.35kW 46%, current charge rate 5000W, current discharge rate 5250W, current battery power 939W, current battery voltage 51.2V, grid power -58W, load power 994W, PV Power 0W
2026-08-17 20:35:01.790921: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:35:01.791036: Inverter 0 scheduled charge enable is False
2026-08-17 20:35:01.791080: Inverter 0 charge windows currently []
2026-08-17 20:35:01.791119: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:35:01.791270: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:35:01.791312: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:35:01.791364: Inverter 0 scheduled discharge enable is False
2026-08-17 20:35:01.791543: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:35:01.791585: Inverter 0 discharge windows currently []
2026-08-17 20:35:01.791675: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:35:01.791707: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:35:01.791726: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:35:01.848221: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:35:01.848349: Plan was last updated on 2026-08-17 20:30:00+01:00 and is now 5.0 minutes old
2026-08-17 20:35:01.848648: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:35:01.848701: Best export window [ ]
2026-08-17 20:35:01.849636: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:35:01.853008: Load divergence over 8.0 hours mean 484.67W, min 322.2W, max 1002.6W, std dev 158.08W, divergence 16.31%
2026-08-17 20:35:01.871957: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:35:01.872066: LoadML is_calculating False
2026-08-17 20:35:01.872125: Creating pool of 12 processes to match your CPU count
2026-08-17 20:35:01.988151: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 607.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:55:00, load 28.95kWh, PV 0.0kWh
2026-08-17 20:35:02.135332: Battery has 7.33 hours left - now at 7.35kWh
2026-08-17 20:35:02.182733: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 628.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:25:00, load 29.83kWh, PV 0.0kWh
2026-08-17 20:35:02.266265: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 333.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.83kWh, PV 0.0kWh
2026-08-17 20:35:02.339267: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 321.55p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.95kWh, PV 0.0kWh
2026-08-17 20:35:02.339349: Saving plan best values to HA entities
2026-08-17 20:35:02.502863: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:35:02.508575: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:35:02.514436: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.64kWh, house 0.0kWh, export 0.0kWh, metric 321.55p, metric10 333.72p
2026-08-17 20:35:02.582028: Marginal costs baseline metric (no standing charge): 274.9191
2026-08-17 20:35:02.849710: Marginal energy costs matrix computed: min=8.0 max=32.62
2026-08-17 20:35:02.919470: Rate array import [{'start': 1235, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1235, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:35:02.920207: - Your estimated bill for today is £1.81 and tomorrow is £1.60
2026-08-17 20:35:02.920258: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:35:02.920282: - The battery is currently at 46% and is in eco mode for the next 2 hours.
2026-08-17 20:35:02.920321: - For the next 48 hours there will be no solar generation.
2026-08-17 20:35:02.920356: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:35:02.920390: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-17 20:35:02.920431:
2026-08-17 20:35:02.969043: Plan calculation took 1.12 seconds
2026-08-17 20:35:02.972940: No high rate period found
2026-08-17 20:35:03.026805: Import threshold used for optimisation was 8.0p
2026-08-17 20:35:03.080235: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:35:03.088113: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 46%, target 100%
2026-08-17 20:35:03.088253: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:35:03.088357: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:35:03.088656: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:35:03.088800: No export window planned
2026-08-17 20:35:03.088941: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:35:03.088980: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:35:03.089192: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:35:03.089484: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:35:03.089559: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:35:03.089651: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:35:03.089754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.089793: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.089824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.089857: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.089888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.089914: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.089937: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.089998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.090033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.090059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.090085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.090110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.090152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.090175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:35:03.090195: Inverter 0 count register writes 0
2026-08-17 20:35:03.110130: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 20:35:03.117359: Total inverter register writes now 861
2026-08-17 20:35:03.158196: Info: Completed run status Demand
2026-08-17 20:35:03.168084: Info: record_status Demand
2026-08-17 20:35:03.176628: Saved current settings to /config/predbat_config.json
2026-08-17 20:35:03.176930: Compare, best tariff: current metric 104.68p
2026-08-17 20:35:34.286278: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:35:34.286512: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:35:34.286574: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:35:34.286726: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:35:34.286768: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:35:34.286791: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:35:34.286809: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:37:34.503758: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:37:34.504122: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:37:34.504180: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:37:34.504344: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:37:34.504385: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:37:34.504407: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:37:34.504425: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:39:48.759759: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:39:48.760098: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:39:48.760158: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:39:48.760345: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:39:48.760390: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:39:48.760412: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:39:48.760439: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:40:00.860062: --------------- PredBat - update at 2026-08-17 20:40:00+01:00 with clock skew 0 minutes, minutes now 1240
2026-08-17 20:40:00.860778: Saved current settings to /config/predbat_config.json
2026-08-17 20:40:00.860936: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 20:40:00.861076: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:40:00.861174: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:40:00.880235: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:40:00.880354: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:40:00.880513: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:40:00.880997: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:40:00.881130: Predbat mode is set to Control charge & discharge
2026-08-17 20:40:01.066964: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:40:01.067127: Using load_power data to fill gaps in load_today data
2026-08-17 20:40:01.907754: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:40:01.908065: Zero load period starting at 2026-08-17T10:54:00+0100 (586 minutes) for 189 minutes with base value 212.55
2026-08-17 20:40:01.908838: Processing 721 30-minute periods for power integration
2026-08-17 20:40:02.109181: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:40:02.109304: Car charging hold False, threshold 6.0kWh
2026-08-17 20:40:02.109348: Current data so far today: load 10.7kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:40:02.126743: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:40:02.126872: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:40:02.127686: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:40:02.127771: Standing charge is set to 46.63p
2026-08-17 20:40:02.225679: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.226008: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.226295: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.226551: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.226808: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.227073: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.227321: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.227562: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.227804: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:40:02.228948: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:40:02.229103: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:40:02.234682: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:40:02.235165: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:40:02.277851: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:40:02.277992: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:40:02.279411: High export rate found rates in range 99p to -99p
2026-08-17 20:40:02.308732: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:40:02.308876: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:40:02.319705: Battery level now 7.35kWh, -1hr ago 7.84kWh, at midnight 10.49kWh, battery value change in the last hour -3.35p, change today -21.55p, rate_forward 6.87p
2026-08-17 20:40:02.320172: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.62kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:40:02.375186: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:40:02.375343: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:40:02.470831: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:40:02.506380: Today's load divergence 93.64%, in-day adjustment 90.4%, damping 0.95x, yesterday 68.37% today 93.95% blend 13.89%
2026-08-17 20:40:02.506468: Today's predicted so far 12.84kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 12.84kWh forecast extra.
2026-08-17 20:40:02.506500: Today's actual load so far 11.9kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 20:40:02.536128: Inverter 0: Type SK Sunsynk
2026-08-17 20:40:02.536211: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:40:02.536387: Reserve min: 7%, battery_min: 7%
2026-08-17 20:40:02.536464: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:40:02.536742: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 884W, current battery voltage 51.2V, grid power -53W, load power 940W, PV Power 0W
2026-08-17 20:40:02.536897: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:40:02.536982: Inverter 0 scheduled charge enable is False
2026-08-17 20:40:02.537010: Inverter 0 charge windows currently []
2026-08-17 20:40:02.537052: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:40:02.537167: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:40:02.537201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:40:02.537237: Inverter 0 scheduled discharge enable is False
2026-08-17 20:40:02.537361: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:40:02.537398: Inverter 0 discharge windows currently []
2026-08-17 20:40:02.537420: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:40:02.537443: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:40:02.537461: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:40:02.592850: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:40:02.592946: Plan was last updated on 2026-08-17 20:30:00+01:00 and is now 10.0 minutes old
2026-08-17 20:40:02.593189: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:40:02.593235: Best export window [ ]
2026-08-17 20:40:02.594011: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:40:02.597215: Load divergence over 8.0 hours mean 484.64W, min 342.6W, max 1039.2W, std dev 160.05W, divergence 16.51%
2026-08-17 20:40:02.615710: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:40:02.615826: LoadML is_calculating False
2026-08-17 20:40:02.615936: Creating pool of 12 processes to match your CPU count
2026-08-17 20:40:02.737121: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:40:00, load 29.24kWh, PV 0.0kWh
2026-08-17 20:40:02.852799: Battery has 7.0 hours left - now at 7.2kWh
2026-08-17 20:40:02.899402: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 30.12kWh, PV 0.0kWh
2026-08-17 20:40:02.981983: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 338.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.12kWh, PV 0.0kWh
2026-08-17 20:40:03.083540: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 326.85p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.24kWh, PV 0.0kWh
2026-08-17 20:40:03.083629: Saving plan best values to HA entities
2026-08-17 20:40:03.275231: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:40:03.281017: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:40:03.286615: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.31kWh, house 0.0kWh, export 0.0kWh, metric 326.85p, metric10 338.38p
2026-08-17 20:40:03.365715: Marginal costs baseline metric (no standing charge): 280.2156
2026-08-17 20:40:03.593802: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 20:40:03.653484: Rate array import [{'start': 1240, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1240, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:40:03.654129: - Your estimated bill for today is £1.81 and tomorrow is £1.61
2026-08-17 20:40:03.654174: - Import rates are very expensive (33.8p) for the next 2 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:40:03.654208: - The battery is currently at 45% and is in eco mode for the next 2 and three quarters hours.
2026-08-17 20:40:03.654238: - For the next 48 hours there will be no solar generation.
2026-08-17 20:40:03.654270: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:40:03.654298: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 20:40:03.654325:
2026-08-17 20:40:03.698790: Plan calculation took 1.11 seconds
2026-08-17 20:40:03.702060: No high rate period found
2026-08-17 20:40:03.746091: Import threshold used for optimisation was 8.0p
2026-08-17 20:40:03.795550: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:40:03.800996: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-17 20:40:03.801137: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:40:03.801240: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:40:03.801489: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:40:03.801583: No export window planned
2026-08-17 20:40:03.801712: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:40:03.801746: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:40:03.801876: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:40:03.802068: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:40:03.802132: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:40:03.802197: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:40:03.802294: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802374: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802437: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802565: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802633: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802689: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802792: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802931: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.802984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.803043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.803096: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:03.803142: Inverter 0 count register writes 0
2026-08-17 20:40:03.818610: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 20:40:03.818916: Recompute is saving previous plan...
2026-08-17 20:40:03.820040: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 20:40:03.820097: Best export window [ ]
2026-08-17 20:40:03.820969: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:40:03.824255: Load divergence over 8.0 hours mean 484.64W, min 342.6W, max 1039.2W, std dev 160.05W, divergence 16.51%
2026-08-17 20:40:03.842848: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:40:03.842960: LoadML is_calculating False
2026-08-17 20:40:03.843059: Creating pool of 12 processes to match your CPU count
2026-08-17 20:40:03.927803: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 20:40:03.928762: Optimise levels pass started at 2026-08-17 20:40:03
2026-08-17 20:40:03.928823: Optimise all windows, total charge 24 export 1
2026-08-17 20:40:04.302453: >> Region optimisation pass width 960 gives best_metric 392.17p, best_cost 418.62p, best_cycle 46.71kWh, best_import 32.61kWh
2026-08-17 20:40:04.451120: >> Region optimisation pass width 480 gives best_metric 392.17p, best_cost 418.62p, best_cycle 46.71kWh, best_import 32.61kWh
2026-08-17 20:40:04.720045: >> Region optimisation pass width 240 gives best_metric 392.17p, best_cost 418.62p, best_cycle 46.71kWh, best_import 32.61kWh
2026-08-17 20:40:05.300552: >> Region optimisation pass width 120 gives best_metric 392.17p, best_cost 418.62p, best_cycle 46.71kWh, best_import 32.61kWh
2026-08-17 20:40:05.301221: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 20:40:05.301322: Optimise levels pass ended at 2026-08-17 20:40:05, duration 1.4 seconds tried 72 combinations
2026-08-17 20:40:05.301421: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 392.17p, best_keep 0kWh, best_cycle 46.71kWh, best_carbon 0kg, best_import 32.61kWh
2026-08-17 20:40:05.322813: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 20:40:07.901929: Tweak plan optimisation started metric 263.54p, cost 273.91p
2026-08-17 20:40:08.213694: Tweak optimisation finished metric 263.54p, cost 273.91p, metric_keep 0kWh, cycle 23.95kWh, carbon 0kg, import 14.52kWh, changed 8 window(s)
2026-08-17 20:40:08.233172: Swap charge optimisation started metric 263.54p, cost 273.91p, min_improvement_swap 0.1p
2026-08-17 20:40:08.858455: Swap charge optimisation finished metric 263.54p, cost 273.91p
2026-08-17 20:40:08.964067: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.37p -> 262.22p, plan now metric 264.41p, cost 271.93p, cycle 24.21kWh, import 14.27kWh
2026-08-17 20:40:08.971737: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 75%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 75%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 75%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 75%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:40:08.972057: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:40:08.972247: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:40:08.972417: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:40:09.001457: Previous plan best metric is 263.54 (cost 273.91) and new plan best metric is 263.54 (cost 273.91)
2026-08-17 20:40:09.001629: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 20:40:09.001758: Plan valid is now true after recompute was False
2026-08-17 20:40:09.024875: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:40:00, load 29.03kWh, PV 0.0kWh
2026-08-17 20:40:09.129090: Battery has 7.0 hours left - now at 7.2kWh
2026-08-17 20:40:09.172295: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 628.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.91kWh, PV 0.0kWh
2026-08-17 20:40:09.243137: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 331.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.91kWh, PV 0.0kWh
2026-08-17 20:40:09.315327: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 318.57p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.03kWh, PV 0.0kWh
2026-08-17 20:40:09.315418: Saving plan best values to HA entities
2026-08-17 20:40:09.477431: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:40:09.482833: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:40:09.487970: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.27kWh, house 0.0kWh, export 0.0kWh, metric 318.57p, metric10 331.13p
2026-08-17 20:40:09.566330: Marginal costs baseline metric (no standing charge): 271.9313
2026-08-17 20:40:09.864845: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 20:40:09.928481: Rate array import [{'start': 1240, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1240, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:40:09.929099: - Your estimated bill for today is £1.81 and tomorrow is £1.61
2026-08-17 20:40:09.929144: - Import rates are very expensive (33.8p) for the next 2 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:40:09.929168: - The battery is currently at 45% and is in eco mode for the next 2 and three quarters hours.
2026-08-17 20:40:09.929201: - For the next 48 hours there will be no solar generation.
2026-08-17 20:40:09.929224: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:40:09.929241: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 20:40:09.929263:
2026-08-17 20:40:09.976230: Plan calculation took 6.16 seconds
2026-08-17 20:40:09.976512: Inverter 0: Type SK Sunsynk
2026-08-17 20:40:09.976560: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:40:09.976749: Reserve min: 7%, battery_min: 7%
2026-08-17 20:40:09.976811: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:40:09.977116: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 803W, current battery voltage 51.2V, grid power -53W, load power 857W, PV Power 0W
2026-08-17 20:40:09.977385: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:40:09.977508: Inverter 0 scheduled charge enable is False
2026-08-17 20:40:09.977576: Inverter 0 charge windows currently []
2026-08-17 20:40:09.977618: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:40:09.977768: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:40:09.977818: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:40:09.977856: Inverter 0 scheduled discharge enable is False
2026-08-17 20:40:09.977974: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:40:09.978005: Inverter 0 discharge windows currently []
2026-08-17 20:40:09.978039: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:40:09.978061: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:40:09.978076: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:40:10.032697: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-17 20:40:10.032836: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:40:10.032905: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:40:10.033076: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:40:10.033147: No export window planned
2026-08-17 20:40:10.033247: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:40:10.033289: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:40:10.033481: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:40:10.033675: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:40:10.033736: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:40:10.033809: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:40:10.033928: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.033978: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034039: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034080: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034120: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034186: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034254: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034292: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034386: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:40:10.034503: Inverter 0 count register writes 0
2026-08-17 20:40:10.055063: Total inverter register writes now 861
2026-08-17 20:40:10.084939: Info: Completed run status Demand
2026-08-17 20:40:10.090811: Info: record_status Demand
2026-08-17 20:40:10.096646: Saved current settings to /config/predbat_config.json
2026-08-17 20:40:10.096864: Compare, best tariff: current metric 104.68p
2026-08-17 20:40:49.205759: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:40:49.206533: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:40:49.206602: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:40:49.206832: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:40:49.206909: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:40:49.207284: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:40:49.207323: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:43:03.770926: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:43:03.771190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:43:03.771235: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:43:03.771391: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:43:03.771435: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:43:03.771457: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:43:03.771475: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:45:00.050361: --------------- PredBat - update at 2026-08-17 20:45:00+01:00 with clock skew 0 minutes, minutes now 1245
2026-08-17 20:45:00.051378: Saved current settings to /config/predbat_config.json
2026-08-17 20:45:00.051562: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 20:45:00.051678: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:45:00.051864: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:45:00.079866: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:45:00.080090: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:45:00.080364: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:45:00.081173: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:45:00.081355: Predbat mode is set to Control charge & discharge
2026-08-17 20:45:00.421468: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:45:00.421659: Using load_power data to fill gaps in load_today data
2026-08-17 20:45:01.522819: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:45:01.523052: Zero load period starting at 2026-08-17T10:54:00+0100 (591 minutes) for 189 minutes with base value 212.5
2026-08-17 20:45:01.523709: Processing 721 30-minute periods for power integration
2026-08-17 20:45:01.755886: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:45:01.756081: Car charging hold False, threshold 6.0kWh
2026-08-17 20:45:01.756149: Current data so far today: load 10.8kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:45:01.780031: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:45:01.780177: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:45:01.781315: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:45:01.781394: Standing charge is set to 46.63p
2026-08-17 20:45:01.923007: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.923355: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.923610: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.923842: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.924071: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.924332: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.924582: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.924761: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.924984: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:45:01.926314: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:45:01.926440: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:45:01.931496: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:45:01.931894: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:45:01.974663: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:45:01.974827: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:45:01.976480: High export rate found rates in range 99p to -99p
2026-08-17 20:45:02.004731: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:45:02.004870: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:45:02.022034: Battery level now 7.2kWh, -1hr ago 7.84kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -22.6p, rate_forward 6.87p
2026-08-17 20:45:02.022619: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:45:02.113103: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:45:02.113290: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:45:02.205395: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:45:02.246921: Today's load divergence 94.25%, in-day adjustment 90.99%, damping 0.95x, yesterday 68.37% today 94.54% blend 13.54%
2026-08-17 20:45:02.247030: Today's predicted so far 12.84kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 12.84kWh forecast extra.
2026-08-17 20:45:02.247084: Today's actual load so far 11.99kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 20:45:02.279450: Inverter 0: Type SK Sunsynk
2026-08-17 20:45:02.279543: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:45:02.279741: Reserve min: 7%, battery_min: 7%
2026-08-17 20:45:02.279808: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:45:02.280146: Inverter 0 SoC: 7.2kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power 744W, current battery voltage 51.2V, grid power -58W, load power 793W, PV Power 0W
2026-08-17 20:45:02.280322: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:45:02.280404: Inverter 0 scheduled charge enable is False
2026-08-17 20:45:02.280434: Inverter 0 charge windows currently []
2026-08-17 20:45:02.280459: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:45:02.280582: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:45:02.280630: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:45:02.280667: Inverter 0 scheduled discharge enable is False
2026-08-17 20:45:02.280873: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:45:02.280924: Inverter 0 discharge windows currently []
2026-08-17 20:45:02.280948: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:45:02.280970: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:45:02.281015: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:45:02.351276: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:45:02.351395: Plan was last updated on 2026-08-17 20:40:00+01:00 and is now 5.0 minutes old
2026-08-17 20:45:02.351708: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:45:02.351767: Best export window [ ]
2026-08-17 20:45:02.353158: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:45:02.358775: Load divergence over 8.0 hours mean 484.43W, min 331.2W, max 1005.0W, std dev 167.67W, divergence 17.31%
2026-08-17 20:45:02.385936: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:45:02.386116: LoadML is_calculating False
2026-08-17 20:45:02.386213: Creating pool of 12 processes to match your CPU count
2026-08-17 20:45:02.538238: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 608.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:40:00, load 29.21kWh, PV 0.0kWh
2026-08-17 20:45:02.741344: Battery has 6.92 hours left - now at 7.2kWh
2026-08-17 20:45:02.801753: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 629.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 30.09kWh, PV 0.0kWh
2026-08-17 20:45:02.898334: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 334.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.09kWh, PV 0.0kWh
2026-08-17 20:45:02.996630: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 322.41p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.21kWh, PV 0.0kWh
2026-08-17 20:45:02.996778: Saving plan best values to HA entities
2026-08-17 20:45:03.222144: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:45:03.229954: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:45:03.236745: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.75kWh, house 0.0kWh, export 0.0kWh, metric 322.41p, metric10 334.82p
2026-08-17 20:45:03.332944: Marginal costs baseline metric (no standing charge): 275.7767
2026-08-17 20:45:03.670149: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 20:45:03.796454: Rate array import [{'start': 1245, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1245, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:45:03.797795: - Your estimated bill for today is £1.82 and tomorrow is £1.61
2026-08-17 20:45:03.797989: - Import rates are very expensive (33.8p) for the next 2 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:45:03.798030: - The battery is currently at 45% and is in eco mode for the next 2 and three quarters hours.
2026-08-17 20:45:03.798067: - For the next 48 hours there will be no solar generation.
2026-08-17 20:45:03.798096: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:45:03.798119: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 20:45:03.798151:
2026-08-17 20:45:03.908613: Plan calculation took 1.56 seconds
2026-08-17 20:45:03.914101: No high rate period found
2026-08-17 20:45:04.003801: Import threshold used for optimisation was 8.0p
2026-08-17 20:45:04.064384: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:45:04.070541: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 45%, target 100%
2026-08-17 20:45:04.070681: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:45:04.070793: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:45:04.071032: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:45:04.071117: No export window planned
2026-08-17 20:45:04.071235: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:45:04.071281: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:45:04.071403: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:45:04.071584: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:45:04.071640: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:45:04.071722: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:45:04.071827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.071855: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.071881: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.071934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.071981: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072005: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072025: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072109: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072154: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:45:04.072236: Inverter 0 count register writes 0
2026-08-17 20:45:04.088481: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 20:45:04.093046: Total inverter register writes now 861
2026-08-17 20:45:04.126032: Info: Completed run status Demand
2026-08-17 20:45:04.132001: Info: record_status Demand
2026-08-17 20:45:04.139539: Saved current settings to /config/predbat_config.json
2026-08-17 20:45:04.139826: Compare, best tariff: current metric 104.68p
2026-08-17 20:45:34.260602: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:45:34.260909: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:45:34.260970: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:45:34.261151: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:45:34.261214: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:45:34.261241: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:45:34.261292: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:47:34.497249: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:47:34.497466: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:47:34.497508: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:47:34.497676: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:47:34.497719: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:47:34.497741: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:47:34.497759: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:49:48.733538: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:49:48.733764: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:49:48.733804: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:49:48.733938: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:49:48.733976: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:49:48.733999: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:49:48.734017: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:50:00.823676: --------------- PredBat - update at 2026-08-17 20:50:00+01:00 with clock skew 0 minutes, minutes now 1250
2026-08-17 20:50:00.824622: Saved current settings to /config/predbat_config.json
2026-08-17 20:50:00.824741: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 20:50:00.824843: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:50:00.824923: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:50:00.842276: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:50:00.842402: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:50:00.842582: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:50:00.843080: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:50:00.843195: Predbat mode is set to Control charge & discharge
2026-08-17 20:50:01.021749: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:50:01.021933: Using load_power data to fill gaps in load_today data
2026-08-17 20:50:01.907683: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:50:01.907871: Zero load period starting at 2026-08-17T10:54:00+0100 (596 minutes) for 189 minutes with base value 212.475
2026-08-17 20:50:01.908638: Processing 721 30-minute periods for power integration
2026-08-17 20:50:02.117579: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:50:02.117699: Car charging hold False, threshold 6.0kWh
2026-08-17 20:50:02.117745: Current data so far today: load 10.75kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:50:02.136743: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:50:02.136876: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:50:02.137662: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:50:02.137737: Standing charge is set to 46.63p
2026-08-17 20:50:02.229616: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.229940: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.230222: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.230499: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.230783: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.231065: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.231322: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.231580: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.231795: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:50:02.233297: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:50:02.233535: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:50:02.239252: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:50:02.239670: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:50:02.287480: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:50:02.287594: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:50:02.289014: High export rate found rates in range 99p to -99p
2026-08-17 20:50:02.320552: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:50:02.320654: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:50:02.332238: Battery level now 7.2kWh, -1hr ago 7.84kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -22.6p, rate_forward 6.87p
2026-08-17 20:50:02.332665: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.62kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:50:02.392140: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:50:02.392285: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:50:02.489718: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:50:02.528223: Today's load divergence 93.75%, in-day adjustment 90.67%, damping 0.95x, yesterday 68.37% today 94.06% blend 13.19%
2026-08-17 20:50:02.528332: Today's predicted so far 12.87kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 12.87kWh forecast extra.
2026-08-17 20:50:02.528366: Today's actual load so far 11.95kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 20:50:02.559807: Inverter 0: Type SK Sunsynk
2026-08-17 20:50:02.559964: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:50:02.560206: Reserve min: 7%, battery_min: 7%
2026-08-17 20:50:02.560326: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:50:02.560685: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 592W, current battery voltage 51.2V, grid power -52W, load power 642W, PV Power 0W
2026-08-17 20:50:02.560920: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:50:02.561051: Inverter 0 scheduled charge enable is False
2026-08-17 20:50:02.561103: Inverter 0 charge windows currently []
2026-08-17 20:50:02.561151: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:50:02.561324: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:50:02.561400: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:50:02.561461: Inverter 0 scheduled discharge enable is False
2026-08-17 20:50:02.561653: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:50:02.561694: Inverter 0 discharge windows currently []
2026-08-17 20:50:02.561717: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:50:02.561736: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:50:02.561757: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:50:02.622760: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:50:02.622861: Plan was last updated on 2026-08-17 20:40:00+01:00 and is now 10.0 minutes old
2026-08-17 20:50:02.623134: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:50:02.623182: Best export window [ ]
2026-08-17 20:50:02.624077: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:50:02.627380: Load divergence over 8.0 hours mean 479.85W, min 361.2W, max 977.4W, std dev 157.81W, divergence 16.44%
2026-08-17 20:50:02.646683: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:50:02.646795: LoadML is_calculating False
2026-08-17 20:50:02.646880: Creating pool of 12 processes to match your CPU count
2026-08-17 20:50:02.757948: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 609.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.2kWh, PV 0.0kWh
2026-08-17 20:50:02.901883: Battery has 6.75 hours left - now at 7.04kWh
2026-08-17 20:50:02.944505: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 30.08kWh, PV 0.0kWh
2026-08-17 20:50:03.024080: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 338.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.08kWh, PV 0.0kWh
2026-08-17 20:50:03.105414: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 327.4p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.2kWh, PV 0.0kWh
2026-08-17 20:50:03.105520: Saving plan best values to HA entities
2026-08-17 20:50:03.258787: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:50:03.264371: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:50:03.269578: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.37kWh, house 0.0kWh, export 0.0kWh, metric 327.4p, metric10 338.98p
2026-08-17 20:50:03.348430: Marginal costs baseline metric (no standing charge): 280.764
2026-08-17 20:50:03.603878: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 20:50:03.675617: Rate array import [{'start': 1250, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1250, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:50:03.676322: - Your estimated bill for today is £1.82 and tomorrow is £1.62
2026-08-17 20:50:03.676372: - Import rates are very expensive (33.8p) for the next 2 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:50:03.676395: - The battery is currently at 44% and is in eco mode for the next 2 and three quarters hours.
2026-08-17 20:50:03.676413: - For the next 48 hours there will be no solar generation.
2026-08-17 20:50:03.676447: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:50:03.676480: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 20:50:03.676500:
2026-08-17 20:50:03.745689: Plan calculation took 1.12 seconds
2026-08-17 20:50:03.749831: No high rate period found
2026-08-17 20:50:03.799369: Import threshold used for optimisation was 8.0p
2026-08-17 20:50:03.850785: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:50:03.855538: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 44%, target 100%
2026-08-17 20:50:03.855680: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:50:03.855809: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:50:03.856104: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:50:03.856215: No export window planned
2026-08-17 20:50:03.856376: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:50:03.856419: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:50:03.856593: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:50:03.856813: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:50:03.856889: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:50:03.856979: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:50:03.857104: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857158: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857201: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857287: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857458: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857520: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:03.857781: Inverter 0 count register writes 0
2026-08-17 20:50:03.875149: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 20:50:03.875325: Recompute is saving previous plan...
2026-08-17 20:50:03.876311: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 20:50:03.876366: Best export window [ ]
2026-08-17 20:50:03.877251: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:50:03.880600: Load divergence over 8.0 hours mean 479.85W, min 361.2W, max 977.4W, std dev 157.81W, divergence 16.44%
2026-08-17 20:50:03.901011: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:50:03.901153: LoadML is_calculating False
2026-08-17 20:50:03.901222: Creating pool of 12 processes to match your CPU count
2026-08-17 20:50:04.003319: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 20:50:04.004288: Optimise levels pass started at 2026-08-17 20:50:04
2026-08-17 20:50:04.004482: Optimise all windows, total charge 24 export 1
2026-08-17 20:50:04.390556: >> Region optimisation pass width 960 gives best_metric 393.43p, best_cost 419.2p, best_cycle 46.8kWh, best_import 32.68kWh
2026-08-17 20:50:04.558742: >> Region optimisation pass width 480 gives best_metric 393.43p, best_cost 419.2p, best_cycle 46.8kWh, best_import 32.68kWh
2026-08-17 20:50:04.871482: >> Region optimisation pass width 240 gives best_metric 393.43p, best_cost 419.2p, best_cycle 46.8kWh, best_import 32.68kWh
2026-08-17 20:50:05.527093: >> Region optimisation pass width 120 gives best_metric 393.43p, best_cost 419.2p, best_cycle 46.8kWh, best_import 32.68kWh
2026-08-17 20:50:05.527282: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 20:50:05.527342: Optimise levels pass ended at 2026-08-17 20:50:05, duration 1.5 seconds tried 72 combinations
2026-08-17 20:50:05.527398: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 393.43p, best_keep 0kWh, best_cycle 46.8kWh, best_carbon 0kg, best_import 32.68kWh
2026-08-17 20:50:05.545921: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 20:50:08.102748: Tweak plan optimisation started metric 264.11p, cost 274.43p
2026-08-17 20:50:08.399183: Tweak optimisation finished metric 264.11p, cost 274.43p, metric_keep 0kWh, cycle 23.94kWh, carbon 0kg, import 14.58kWh, changed 8 window(s)
2026-08-17 20:50:08.418381: Swap charge optimisation started metric 264.11p, cost 274.43p, min_improvement_swap 0.1p
2026-08-17 20:50:09.167064: Swap charge optimisation finished metric 264.11p, cost 274.43p
2026-08-17 20:50:09.296935: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.93p -> 262.78p, plan now metric 264.97p, cost 272.47p, cycle 24.2kWh, import 14.34kWh
2026-08-17 20:50:09.306685: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:50:09.307053: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:50:09.307276: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:50:09.307446: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 20:50:09.343620: Previous plan best metric is 264.11 (cost 274.43) and new plan best metric is 264.11 (cost 274.43)
2026-08-17 20:50:09.343862: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 20:50:09.344111: Plan valid is now true after recompute was False
2026-08-17 20:50:09.372820: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 28.99kWh, PV 0.0kWh
2026-08-17 20:50:09.482182: Battery has 6.75 hours left - now at 7.04kWh
2026-08-17 20:50:09.519359: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 629.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.86kWh, PV 0.0kWh
2026-08-17 20:50:09.598881: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 331.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.86kWh, PV 0.0kWh
2026-08-17 20:50:09.687282: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 319.11p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 28.99kWh, PV 0.0kWh
2026-08-17 20:50:09.687360: Saving plan best values to HA entities
2026-08-17 20:50:09.821538: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:50:09.826331: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:50:09.830647: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.34kWh, house 0.0kWh, export 0.0kWh, metric 319.11p, metric10 331.72p
2026-08-17 20:50:09.904521: Marginal costs baseline metric (no standing charge): 272.4718
2026-08-17 20:50:10.145141: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 20:50:10.214880: Rate array import [{'start': 1250, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1250, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:50:10.215554: - Your estimated bill for today is £1.82 and tomorrow is £1.62
2026-08-17 20:50:10.215606: - Import rates are very expensive (33.8p) for the next 2 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:50:10.215629: - The battery is currently at 44% and is in eco mode for the next 2 and three quarters hours.
2026-08-17 20:50:10.215648: - For the next 48 hours there will be no solar generation.
2026-08-17 20:50:10.215665: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:50:10.215682: - Your next charge slot will be in 2 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 20:50:10.215711:
2026-08-17 20:50:10.266840: Plan calculation took 6.39 seconds
2026-08-17 20:50:10.267096: Inverter 0: Type SK Sunsynk
2026-08-17 20:50:10.267132: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:50:10.267320: Reserve min: 7%, battery_min: 7%
2026-08-17 20:50:10.267398: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:50:10.267682: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 592W, current battery voltage 51.2V, grid power -52W, load power 642W, PV Power 0W
2026-08-17 20:50:10.267866: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:50:10.267998: Inverter 0 scheduled charge enable is False
2026-08-17 20:50:10.268043: Inverter 0 charge windows currently []
2026-08-17 20:50:10.268069: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:50:10.268169: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:50:10.268202: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:50:10.268234: Inverter 0 scheduled discharge enable is False
2026-08-17 20:50:10.268336: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:50:10.268366: Inverter 0 discharge windows currently []
2026-08-17 20:50:10.268385: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:50:10.268417: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:50:10.268432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:50:10.321115: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 44%, target 100%
2026-08-17 20:50:10.321255: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:50:10.321321: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:50:10.321512: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:50:10.321593: No export window planned
2026-08-17 20:50:10.321698: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:50:10.321733: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:50:10.321866: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:50:10.322021: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:50:10.322073: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:50:10.322136: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:50:10.322235: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322306: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322338: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322364: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322393: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322418: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322626: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322800: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:50:10.322848: Inverter 0 count register writes 0
2026-08-17 20:50:10.346634: Total inverter register writes now 861
2026-08-17 20:50:10.376701: Info: Completed run status Demand
2026-08-17 20:50:10.381717: Info: record_status Demand
2026-08-17 20:50:10.387073: Saved current settings to /config/predbat_config.json
2026-08-17 20:50:10.387339: Compare, best tariff: current metric 104.68p
2026-08-17 20:50:49.492875: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:50:49.493122: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:50:49.493157: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:50:49.493289: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:50:49.493328: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:50:49.493349: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:50:49.493367: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:53:03.736810: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:53:03.737166: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:53:03.737236: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:53:03.737504: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:53:03.737571: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:53:03.737614: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:53:03.737651: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:55:00.965618: --------------- PredBat - update at 2026-08-17 20:55:00+01:00 with clock skew 0 minutes, minutes now 1255
2026-08-17 20:55:00.966495: Saved current settings to /config/predbat_config.json
2026-08-17 20:55:00.966609: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 20:55:00.966684: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 20:55:00.966791: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 20:55:00.985752: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 20:55:00.985878: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 20:55:00.986056: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 20:55:00.986584: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 20:55:00.986730: Predbat mode is set to Control charge & discharge
2026-08-17 20:55:01.171992: Found 21602 load_today datapoints going back 28 days
2026-08-17 20:55:01.172590: Using load_power data to fill gaps in load_today data
2026-08-17 20:55:02.012792: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:55:02.012988: Zero load period starting at 2026-08-17T10:54:00+0100 (601 minutes) for 189 minutes with base value 212.45
2026-08-17 20:55:02.013695: Processing 721 30-minute periods for power integration
2026-08-17 20:55:02.202328: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 20:55:02.202451: Car charging hold False, threshold 6.0kWh
2026-08-17 20:55:02.202496: Current data so far today: load 10.8kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 20:55:02.218527: Car 0 using Octopus Intelligent is unplugged
2026-08-17 20:55:02.218616: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 20:55:02.219336: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 20:55:02.219407: Standing charge is set to 46.63p
2026-08-17 20:55:02.308442: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.308715: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.308909: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.309095: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.309269: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.309464: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.309645: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.309811: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.309976: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 20:55:02.311041: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 20:55:02.311143: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 20:55:02.316690: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 20:55:02.317074: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 20:55:02.361725: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 20:55:02.361843: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 20:55:02.363212: High export rate found rates in range 99p to -99p
2026-08-17 20:55:02.394031: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 20:55:02.394190: Car 0 on Octopus Intelligent, no active plan
2026-08-17 20:55:02.407416: Battery level now 7.04kWh, -1hr ago 7.68kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -23.7p, rate_forward 6.87p
2026-08-17 20:55:02.407827: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 20:55:02.466684: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 20:55:02.466871: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:55:02.577024: Using weighted-bucket historical load forecast over 14 days
2026-08-17 20:55:02.622247: Today's load divergence 93.87%, in-day adjustment 90.86%, damping 0.95x, yesterday 68.37% today 94.18% blend 12.85%
2026-08-17 20:55:02.622375: Today's predicted so far 12.9kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 12.9kWh forecast extra.
2026-08-17 20:55:02.622432: Today's actual load so far 11.99kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 20:55:02.654805: Inverter 0: Type SK Sunsynk
2026-08-17 20:55:02.654883: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 20:55:02.655050: Reserve min: 7%, battery_min: 7%
2026-08-17 20:55:02.655120: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 20:55:02.655381: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 1013W, current battery voltage 51.2V, grid power -54W, load power 1073W, PV Power 0W
2026-08-17 20:55:02.655551: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:55:02.655635: Inverter 0 scheduled charge enable is False
2026-08-17 20:55:02.655670: Inverter 0 charge windows currently []
2026-08-17 20:55:02.655703: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 20:55:02.655813: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:55:02.655849: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:55:02.655884: Inverter 0 scheduled discharge enable is False
2026-08-17 20:55:02.656064: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:55:02.656108: Inverter 0 discharge windows currently []
2026-08-17 20:55:02.656132: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:55:02.656150: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:55:02.656174: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:55:02.714563: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 20:55:02.714658: Plan was last updated on 2026-08-17 20:50:00+01:00 and is now 5.0 minutes old
2026-08-17 20:55:02.714859: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 20:55:02.714891: Best export window [ ]
2026-08-17 20:55:02.715803: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 20:55:02.718978: Load divergence over 8.0 hours mean 475.33W, min 344.4W, max 1032.6W, std dev 168.3W, divergence 17.7%
2026-08-17 20:55:02.737975: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 20:55:02.738087: LoadML is_calculating False
2026-08-17 20:55:02.738145: Creating pool of 12 processes to match your CPU count
2026-08-17 20:55:02.859793: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 608.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:35:00, load 29.11kWh, PV 0.0kWh
2026-08-17 20:55:02.986993: Battery has 6.67 hours left - now at 7.04kWh
2026-08-17 20:55:03.031616: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 629.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.99kWh, PV 0.0kWh
2026-08-17 20:55:03.112106: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 335.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 29.99kWh, PV 0.0kWh
2026-08-17 20:55:03.201571: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 322.86p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.11kWh, PV 0.0kWh
2026-08-17 20:55:03.201661: Saving plan best values to HA entities
2026-08-17 20:55:03.451266: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 20:55:03.456936: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 20:55:03.462677: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.81kWh, house 0kWh, export 0.0kWh, metric 322.86p, metric10 335.28p
2026-08-17 20:55:03.543282: Marginal costs baseline metric (no standing charge): 276.2264
2026-08-17 20:55:03.847130: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 20:55:03.914339: Rate array import [{'start': 1255, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1255, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 20:55:03.915354: - Your estimated bill for today is £1.82 and tomorrow is £1.61
2026-08-17 20:55:03.915412: - Import rates are very expensive (33.8p) for the next 2 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 20:55:03.915436: - The battery is currently at 44% and is in eco mode for the next 2 and a half hours.
2026-08-17 20:55:03.915455: - For the next 48 hours there will be no solar generation.
2026-08-17 20:55:03.915473: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 20:55:03.915490: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-17 20:55:03.915512:
2026-08-17 20:55:03.975234: Plan calculation took 1.26 seconds
2026-08-17 20:55:03.981327: No high rate period found
2026-08-17 20:55:04.048079: Import threshold used for optimisation was 8.0p
2026-08-17 20:55:04.100225: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 20:55:04.105827: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 44%, target 100%
2026-08-17 20:55:04.105952: Inverter 0 disabled charge window while waiting for schedule (now 08-17 20:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 20:55:04.106063: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:55:04.106334: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:55:04.106436: No export window planned
2026-08-17 20:55:04.106614: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 20:55:04.106668: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 20:55:04.106830: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 20:55:04.107015: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 20:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 20:55:04.107075: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 20:55:04.107144: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 20:55:04.107238: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107272: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107302: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107463: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107542: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 20:55:04.107768: Inverter 0 count register writes 0
2026-08-17 20:55:04.124884: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 20:55:04.130763: Total inverter register writes now 861
2026-08-17 20:55:04.166449: Info: Completed run status Demand
2026-08-17 20:55:04.175538: Info: record_status Demand
2026-08-17 20:55:04.195077: Saved current settings to /config/predbat_config.json
2026-08-17 20:55:04.195458: Compare, best tariff: current metric 104.68p
2026-08-17 20:55:13.220442: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 20:55:13.360588: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 20:55:34.304843: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:55:34.305080: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:55:34.305132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:55:34.305273: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:55:34.305331: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:55:34.305355: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:55:34.305373: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:56:32.319365: Info: HAHistory: Pruning history data started.
2026-08-17 20:56:32.321546: Info: HAHistory: Pruning history data completed.
2026-08-17 20:57:34.519066: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:57:34.519330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:57:34.519376: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:57:34.519555: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:57:34.519600: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:57:34.519622: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:57:34.519645: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 20:57:49.083009: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 20:57:50.157842: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 20:57:50.158077: Zero load period starting at 2026-08-17T10:54:00+0100 (601 minutes) for 189 minutes with base value 393.35
2026-08-17 20:57:50.158797: Processing 1297 30-minute periods for power integration
2026-08-17 20:57:50.261973: ML Component: Car charging hold False, car energy reported load False
2026-08-17 20:57:50.363422: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 20:57:50.463449: ML Temperature data points: 47706
2026-08-17 20:57:50.735431: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-17 20:57:50.777782: ML Component: Data fetch completed, load data age 59.0 days, 17075 data points
2026-08-17 20:57:50.777974: ML Component: No training needed, model age is 1.74 hours
2026-08-17 20:57:50.778047: ML Component: Generating predictions load data age 59.0 days, 17075 data points
2026-08-17 20:57:50.932695: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0861 max_dow {0: 0.08525277784036266, 1: 0.10017499963007867, 2: 0.11017187459506095, 3: 0.10200937534738332, 4: 0.1370937503574416, 5: 0.09655277786470122, 6: 0.10641666704763969}
2026-08-17 20:57:51.544880: ML Component: Generated 576 predictions (total 25.34 kWh over 48h)
2026-08-17 20:57:51.629293: ML Component: Prediction cycle completed
2026-08-17 20:57:51.735002: ML Component: Saved 17075 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 20:59:49.075160: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 20:59:49.075520: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 20:59:49.075582: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 20:59:49.075753: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 20:59:49.075815: Note: Inverter does not support discharge freeze - disabled
2026-08-17 20:59:49.075859: Note: Inverter does not support charge freeze - disabled
2026-08-17 20:59:49.075926: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:00:00.171167: --------------- PredBat - update at 2026-08-17 21:00:00+01:00 with clock skew 0 minutes, minutes now 1260
2026-08-17 21:00:00.171895: Saved current settings to /config/predbat_config.json
2026-08-17 21:00:00.172098: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 21:00:00.172232: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:00:00.172312: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:00:00.216019: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:00:00.216145: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:00:00.216324: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:00:00.216842: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:00:00.216960: Predbat mode is set to Control charge & discharge
2026-08-17 21:00:00.449584: Found 21602 load_today datapoints going back 27 days
2026-08-17 21:00:00.449777: Using load_power data to fill gaps in load_today data
2026-08-17 21:00:01.289027: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:00:01.289221: Zero load period starting at 2026-08-17T10:54:00+0100 (606 minutes) for 189 minutes with base value 212.425
2026-08-17 21:00:01.289744: Processing 721 30-minute periods for power integration
2026-08-17 21:00:01.502613: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:00:01.502762: Car charging hold False, threshold 6.0kWh
2026-08-17 21:00:01.502835: Current data so far today: load 11.0kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:00:01.524421: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:00:01.524545: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:00:01.525572: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:00:01.525667: Standing charge is set to 46.63p
2026-08-17 21:00:01.633899: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.634226: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.634492: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.634746: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.634998: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.635279: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.635477: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.635649: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.635812: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:00:01.636909: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:00:01.637023: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:00:01.644264: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:00:01.644648: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:00:01.696705: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:00:01.696829: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:00:01.698280: High export rate found rates in range 99p to -99p
2026-08-17 21:00:01.728077: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:00:01.728224: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:00:01.742071: Battery level now 7.04kWh, -1hr ago 7.68kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -23.7p, rate_forward 6.87p
2026-08-17 21:00:01.742510: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.82kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:00:01.804618: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 21:00:01.804810: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:00:01.909414: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:00:01.942918: Today's load divergence 94.5%, in-day adjustment 91.47%, damping 0.95x, yesterday 68.37% today 94.78% blend 12.5%
2026-08-17 21:00:01.942998: Today's predicted so far 13.02kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 13.02kWh forecast extra.
2026-08-17 21:00:01.943041: Today's actual load so far 12.2kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 21:00:01.972015: Inverter 0: Type SK Sunsynk
2026-08-17 21:00:01.972094: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:00:01.972261: Reserve min: 7%, battery_min: 7%
2026-08-17 21:00:01.972325: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:00:01.972544: Inverter 0 SoC: 7.04kW 44%, current charge rate 5000W, current discharge rate 5250W, current battery power 1043W, current battery voltage 51.2V, grid power -55W, load power 1104W, PV Power 0W
2026-08-17 21:00:01.972681: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:00:01.972773: Inverter 0 scheduled charge enable is False
2026-08-17 21:00:01.972811: Inverter 0 charge windows currently []
2026-08-17 21:00:01.972835: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:00:01.972955: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:00:01.973002: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:00:01.973044: Inverter 0 scheduled discharge enable is False
2026-08-17 21:00:01.973216: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:00:01.973253: Inverter 0 discharge windows currently []
2026-08-17 21:00:01.973274: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:00:01.973299: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:00:01.973330: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:00:02.031065: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:00:02.031188: Plan was last updated on 2026-08-17 20:50:00+01:00 and is now 10.0 minutes old
2026-08-17 21:00:02.031468: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:00:02.031519: Best export window [ ]
2026-08-17 21:00:02.032387: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:00:02.035463: Load divergence over 8.0 hours mean 473.58W, min 353.4W, max 1063.8W, std dev 155.8W, divergence 16.45%
2026-08-17 21:00:02.055848: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:00:02.056021: LoadML is_calculating False
2026-08-17 21:00:02.056109: Creating pool of 12 processes to match your CPU count
2026-08-17 21:00:02.161958: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 608.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:40:00, load 29.38kWh, PV 0.0kWh
2026-08-17 21:00:02.279829: Battery has 6.67 hours left - now at 7.04kWh
2026-08-17 21:00:02.334264: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 630.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 30.26kWh, PV 0.0kWh
2026-08-17 21:00:02.434255: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 338.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.26kWh, PV 0.0kWh
2026-08-17 21:00:02.523221: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 326.74p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.38kWh, PV 0.0kWh
2026-08-17 21:00:02.523624: Saving plan best values to HA entities
2026-08-17 21:00:02.732509: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:00:02.738999: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:00:02.744887: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.29kWh, house 0.0kWh, export 0.0kWh, metric 326.74p, metric10 338.49p
2026-08-17 21:00:02.819372: Marginal costs baseline metric (no standing charge): 280.1084
2026-08-17 21:00:03.064974: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 21:00:03.142023: Rate array import [{'start': 1260, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1260, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:00:03.142955: - Your estimated bill for today is £1.82 and tomorrow is £1.61
2026-08-17 21:00:03.143074: - Import rates are very expensive (33.8p) for the next 2 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:00:03.143100: - The battery is currently at 44% and is in eco mode for the next 2 and a half hours.
2026-08-17 21:00:03.143120: - For the next 48 hours there will be no solar generation.
2026-08-17 21:00:03.143138: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:00:03.143155: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-17 21:00:03.143177:
2026-08-17 21:00:03.202420: Plan calculation took 1.17 seconds
2026-08-17 21:00:03.207967: No high rate period found
2026-08-17 21:00:03.262520: Import threshold used for optimisation was 8.0p
2026-08-17 21:00:03.313538: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:00:03.320660: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 44%, target 100%
2026-08-17 21:00:03.320830: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:00:03.320952: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:00:03.321305: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:00:03.321448: No export window planned
2026-08-17 21:00:03.321660: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:00:03.321720: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:00:03.321962: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:00:03.322250: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:00:03.322348: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:00:03.322460: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:00:03.322640: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.322711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.322783: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.322845: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.322900: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.322960: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323020: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323391: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:03.323411: Inverter 0 count register writes 0
2026-08-17 21:00:03.341338: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 21:00:03.341544: Recompute is saving previous plan...
2026-08-17 21:00:03.342789: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 21:00:03.342872: Best export window [ ]
2026-08-17 21:00:03.344047: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:00:03.349359: Load divergence over 8.0 hours mean 473.58W, min 353.4W, max 1063.8W, std dev 155.8W, divergence 16.45%
2026-08-17 21:00:03.368434: Calculating data from yesterday for savings calculation
2026-08-17 21:00:03.381345: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 21:00:03.429300: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 21:00:03.447389: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 21:00:03.474939: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 21:00:03.520972: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 21:00:03.600743: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 280.97kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 21:00:03.600899: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 21:00:03.612633: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:00:03.612783: LoadML is_calculating False
2026-08-17 21:00:03.612880: Creating pool of 12 processes to match your CPU count
2026-08-17 21:00:03.712987: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 21:00:03.713753: Optimise levels pass started at 2026-08-17 21:00:03
2026-08-17 21:00:03.713818: Optimise all windows, total charge 24 export 1
2026-08-17 21:00:04.392933: >> Region optimisation pass width 960 gives best_metric 393.18p, best_cost 414.49p, best_cycle 47.3kWh, best_import 32.09kWh
2026-08-17 21:00:04.559712: >> Region optimisation pass width 480 gives best_metric 393.18p, best_cost 414.49p, best_cycle 47.3kWh, best_import 32.09kWh
2026-08-17 21:00:04.851232: >> Region optimisation pass width 240 gives best_metric 393.18p, best_cost 414.49p, best_cycle 47.3kWh, best_import 32.09kWh
2026-08-17 21:00:05.520370: >> Region optimisation pass width 120 gives best_metric 392.39p, best_cost 404.36p, best_cycle 48.62kWh, best_import 30.82kWh
2026-08-17 21:00:05.520565: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 21:00:05.520624: Optimise levels pass ended at 2026-08-17 21:00:05, duration 1.8 seconds tried 78 combinations
2026-08-17 21:00:05.520686: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 392.39p, best_keep 0kWh, best_cycle 48.62kWh, best_carbon 0kg, best_import 30.82kWh
2026-08-17 21:00:05.544699: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 21:00:07.958842: Tweak plan optimisation started metric 265.55p, cost 277.53p
2026-08-17 21:00:08.209420: Tweak optimisation finished metric 265.55p, cost 277.53p, metric_keep 0kWh, cycle 27.09kWh, carbon 0kg, import 14.97kWh, changed 8 window(s)
2026-08-17 21:00:08.225267: Swap charge optimisation started metric 265.55p, cost 277.53p, min_improvement_swap 0.1p
2026-08-17 21:00:08.842680: Swap charge optimisation finished metric 265.55p, cost 277.53p
2026-08-17 21:00:08.947461: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 264.55p -> 264.32p, plan now metric 266.49p, cost 274.6p, cycle 27.47kWh, import 14.6kWh
2026-08-17 21:00:08.957543: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:00:08.957841: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:00:08.957995: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:00:08.958120: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:00:09.002592: Previous plan best metric is 263.6 (cost 273.93) and new plan best metric is 265.55 (cost 277.53)
2026-08-17 21:00:09.002849: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 21:00:09.003086: Plan valid is now true after recompute was False
2026-08-17 21:00:09.046910: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 607.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:40:00, load 29.19kWh, PV 0.0kWh
2026-08-17 21:00:09.160701: Battery has 6.67 hours left - now at 7.04kWh
2026-08-17 21:00:09.206017: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 628.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 30.06kWh, PV 0.0kWh
2026-08-17 21:00:09.287234: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 331.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.06kWh, PV 0.0kWh
2026-08-17 21:00:09.374979: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 318.56p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.19kWh, PV 0.0kWh
2026-08-17 21:00:09.375062: Saving plan best values to HA entities
2026-08-17 21:00:09.567586: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:00:09.575000: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:00:09.582704: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.27kWh, house 0.0kWh, export 0.0kWh, metric 318.56p, metric10 331.35p
2026-08-17 21:00:09.681369: Marginal costs baseline metric (no standing charge): 271.9258
2026-08-17 21:00:10.005134: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 21:00:10.082873: Rate array import [{'start': 1260, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1260, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:00:10.083740: - Your estimated bill for today is £1.82 and tomorrow is £1.61
2026-08-17 21:00:10.083799: - Import rates are very expensive (33.8p) for the next 2 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:00:10.083829: - The battery is currently at 44% and is in eco mode for the next 2 and a half hours.
2026-08-17 21:00:10.083874: - For the next 48 hours there will be no solar generation.
2026-08-17 21:00:10.083935: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:00:10.083979: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-17 21:00:10.084004:
2026-08-17 21:00:10.148491: Plan calculation took 6.81 seconds
2026-08-17 21:00:10.148832: Inverter 0: Type SK Sunsynk
2026-08-17 21:00:10.148895: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:00:10.149157: Reserve min: 7%, battery_min: 7%
2026-08-17 21:00:10.149290: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:00:10.149660: Inverter 0 SoC: 6.89kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power 1054W, current battery voltage 51.2V, grid power -57W, load power 1117W, PV Power 0W
2026-08-17 21:00:10.149937: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:00:10.150083: Inverter 0 scheduled charge enable is False
2026-08-17 21:00:10.150133: Inverter 0 charge windows currently []
2026-08-17 21:00:10.150188: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:00:10.150383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:00:10.150429: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:00:10.150481: Inverter 0 scheduled discharge enable is False
2026-08-17 21:00:10.150670: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:00:10.150720: Inverter 0 discharge windows currently []
2026-08-17 21:00:10.150764: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:00:10.150806: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:00:10.150840: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:00:10.235516: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 43%, target 100%
2026-08-17 21:00:10.235839: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:00:10.236080: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:00:10.236468: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:00:10.236650: No export window planned
2026-08-17 21:00:10.236946: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:00:10.237033: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:00:10.237296: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:00:10.237574: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:00:10.237641: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:00:10.237748: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:00:10.237912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238022: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238099: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238177: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238273: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238347: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238419: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238689: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238732: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:00:10.238984: Inverter 0 count register writes 0
2026-08-17 21:00:10.265032: Total inverter register writes now 861
2026-08-17 21:00:10.300503: Info: Completed run status Demand
2026-08-17 21:00:10.307572: Info: record_status Demand
2026-08-17 21:00:10.315583: Saved current settings to /config/predbat_config.json
2026-08-17 21:00:10.315954: Compare, best tariff: current metric 104.68p
2026-08-17 21:00:49.444582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:00:49.444808: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:00:49.444851: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:00:49.445009: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:00:49.445048: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:00:49.445089: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:00:49.445107: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:03:03.678353: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:03:03.678589: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:03:03.678644: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:03:03.678840: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:03:03.678890: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:03:03.678911: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:03:03.678927: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:05:00.883769: --------------- PredBat - update at 2026-08-17 21:05:00+01:00 with clock skew 0 minutes, minutes now 1265
2026-08-17 21:05:00.884516: Saved current settings to /config/predbat_config.json
2026-08-17 21:05:00.884680: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 21:05:00.884785: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:05:00.884872: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:05:00.902710: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:05:00.902833: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:05:00.902995: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:05:00.903498: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:05:00.903619: Predbat mode is set to Control charge & discharge
2026-08-17 21:05:01.099156: Found 21602 load_today datapoints going back 27 days
2026-08-17 21:05:01.099469: Using load_power data to fill gaps in load_today data
2026-08-17 21:05:02.007320: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:05:02.007523: Zero load period starting at 2026-08-17T10:54:00+0100 (611 minutes) for 189 minutes with base value 212.4
2026-08-17 21:05:02.008245: Processing 721 30-minute periods for power integration
2026-08-17 21:05:02.214570: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:05:02.214712: Car charging hold False, threshold 6.0kWh
2026-08-17 21:05:02.214763: Current data so far today: load 11.1kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:05:02.232677: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:05:02.232789: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:05:02.233643: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:05:02.233720: Standing charge is set to 46.63p
2026-08-17 21:05:02.329463: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.329787: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.330001: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.330223: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.330500: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.331355: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.331604: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.331830: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.332094: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:05:02.333410: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:05:02.333532: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:05:02.339192: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:05:02.339573: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:05:02.389502: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:05:02.389620: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:05:02.391051: High export rate found rates in range 99p to -99p
2026-08-17 21:05:02.420014: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:05:02.420136: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:05:02.433205: Battery level now 7.04kWh, -1hr ago 7.68kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -23.7p, rate_forward 6.87p
2026-08-17 21:05:02.433645: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:05:02.496394: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 157.77p, import 111.13p, export 0.0p, carbon 0.0kg
2026-08-17 21:05:02.496556: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:05:02.621472: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:05:02.663376: Today's load divergence 94.65%, in-day adjustment 91.69%, damping 0.95x, yesterday 68.37% today 94.92% blend 12.15%
2026-08-17 21:05:02.663475: Today's predicted so far 13.11kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 13.11kWh forecast extra.
2026-08-17 21:05:02.663515: Today's actual load so far 12.32kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 21:05:02.697003: Inverter 0: Type SK Sunsynk
2026-08-17 21:05:02.697083: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:05:02.697354: Reserve min: 7%, battery_min: 7%
2026-08-17 21:05:02.697472: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:05:02.697797: Inverter 0 SoC: 6.89kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power 1041W, current battery voltage 51.2V, grid power -57W, load power 1104W, PV Power 0W
2026-08-17 21:05:02.698049: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:05:02.698219: Inverter 0 scheduled charge enable is False
2026-08-17 21:05:02.698356: Inverter 0 charge windows currently []
2026-08-17 21:05:02.698425: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:05:02.698610: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:05:02.698663: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:05:02.698725: Inverter 0 scheduled discharge enable is False
2026-08-17 21:05:02.698907: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:05:02.698966: Inverter 0 discharge windows currently []
2026-08-17 21:05:02.699018: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:05:02.699055: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:05:02.699097: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:05:02.760172: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:05:02.760275: Plan was last updated on 2026-08-17 21:00:00+01:00 and is now 5.0 minutes old
2026-08-17 21:05:02.760479: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:05:02.760539: Best export window [ ]
2026-08-17 21:05:02.761290: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:05:02.764498: Load divergence over 8.0 hours mean 472.19W, min 322.2W, max 1002.6W, std dev 159.68W, divergence 16.91%
2026-08-17 21:05:02.783100: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:05:02.783215: LoadML is_calculating False
2026-08-17 21:05:02.783278: Creating pool of 12 processes to match your CPU count
2026-08-17 21:05:02.901687: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 608.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:30:00, load 29.35kWh, PV 0.0kWh
2026-08-17 21:05:03.035578: Battery has 6.42 hours left - now at 6.89kWh
2026-08-17 21:05:03.085830: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 630.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 30.22kWh, PV 0.0kWh
2026-08-17 21:05:03.177983: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 335.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.22kWh, PV 0.0kWh
2026-08-17 21:05:03.263515: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 323.66p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.35kWh, PV 0.0kWh
2026-08-17 21:05:03.263607: Saving plan best values to HA entities
2026-08-17 21:05:03.435174: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 21:05:03.442845: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:05:03.451877: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.91kWh, house 0.0kWh, export 0.0kWh, metric 323.66p, metric10 335.73p
2026-08-17 21:05:03.525457: Marginal costs baseline metric (no standing charge): 277.0245
2026-08-17 21:05:03.809287: Marginal energy costs matrix computed: min=8.0 max=32.62
2026-08-17 21:05:03.894734: Rate array import [{'start': 1265, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1265, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:05:03.895420: - Your estimated bill for today is £1.81 and tomorrow is £1.62
2026-08-17 21:05:03.895467: - Import rates are very expensive (33.8p) for the next 2 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:05:03.895490: - The battery is currently at 43% and is in eco mode for the next 2 and a half hours.
2026-08-17 21:05:03.895508: - For the next 48 hours there will be no solar generation.
2026-08-17 21:05:03.895526: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:05:03.895547: - Your next charge slot will be in 2 and a half hours where import rates will be cheap (8.0p).
2026-08-17 21:05:03.895565:
2026-08-17 21:05:03.954509: Plan calculation took 1.19 seconds
2026-08-17 21:05:03.957994: No high rate period found
2026-08-17 21:05:04.010587: Import threshold used for optimisation was 8.0p
2026-08-17 21:05:04.078261: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:05:04.087469: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 43%, target 100%
2026-08-17 21:05:04.087672: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:05:04.087835: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:05:04.088324: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:05:04.088472: No export window planned
2026-08-17 21:05:04.088704: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:05:04.088769: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:05:04.089033: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:05:04.089346: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:05:04.089446: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:05:04.089567: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:05:04.089723: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.089803: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.089866: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.089923: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.089991: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090050: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090136: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090470: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:05:04.090707: Inverter 0 count register writes 0
2026-08-17 21:05:04.116650: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 21:05:04.124947: Total inverter register writes now 861
2026-08-17 21:05:04.169802: Info: Completed run status Demand
2026-08-17 21:05:04.175658: Info: record_status Demand
2026-08-17 21:05:04.183809: Saved current settings to /config/predbat_config.json
2026-08-17 21:05:04.184182: Compare, best tariff: current metric 104.68p
2026-08-17 21:05:34.292493: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:05:34.292723: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:05:34.292774: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:05:34.292945: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:05:34.292989: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:05:34.293012: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:05:34.293030: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:07:34.517612: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:07:34.517842: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:07:34.517881: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:07:34.518008: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:07:34.518073: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:07:34.518094: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:07:34.518114: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:09:48.760342: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:09:48.760636: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:09:48.760699: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:09:48.760844: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:09:48.760882: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:09:48.760903: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:09:48.760921: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:10:00.856259: --------------- PredBat - update at 2026-08-17 21:10:00+01:00 with clock skew 0 minutes, minutes now 1270
2026-08-17 21:10:00.857288: Saved current settings to /config/predbat_config.json
2026-08-17 21:10:01.120619: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:10:01.120844: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:10:01.144981: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:10:01.145167: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:10:01.145457: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:10:01.146208: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:10:01.146381: Predbat mode is set to Control charge & discharge
2026-08-17 21:10:01.362506: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:10:01.362646: Using load_power data to fill gaps in load_today data
2026-08-17 21:10:02.230689: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:10:02.230891: Zero load period starting at 2026-08-17T10:54:00+0100 (616 minutes) for 189 minutes with base value 212.375
2026-08-17 21:10:02.231529: Processing 721 30-minute periods for power integration
2026-08-17 21:10:02.445809: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:10:02.445922: Car charging hold False, threshold 6.0kWh
2026-08-17 21:10:02.445965: Current data so far today: load 11.2kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:10:02.462268: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:10:02.462581: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:10:02.463303: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:10:02.463374: Standing charge is set to 46.63p
2026-08-17 21:10:02.553434: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.553687: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.553899: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.554078: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.554248: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.554415: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.554581: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.554760: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.554924: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:10:02.556029: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:10:02.556136: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:10:02.561621: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:10:02.562047: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:10:02.607353: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:10:02.607477: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:10:02.608924: High export rate found rates in range 99p to -99p
2026-08-17 21:10:02.638342: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:10:02.638466: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:10:02.650877: Battery level now 6.89kWh, -1hr ago 7.68kWh, at midnight 10.49kWh, battery value change in the last hour -5.44p, change today -24.74p, rate_forward 6.87p
2026-08-17 21:10:02.651232: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.95kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:10:02.709796: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:10:02.709948: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:10:02.808622: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:10:02.844165: Today's load divergence 95.12%, in-day adjustment 92.17%, damping 0.95x, yesterday 68.37% today 95.36% blend 11.81%
2026-08-17 21:10:02.844247: Today's predicted so far 13.12kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 13.12kWh forecast extra.
2026-08-17 21:10:02.844279: Today's actual load so far 12.39kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 21:10:02.877877: Inverter 0: Type SK Sunsynk
2026-08-17 21:10:02.877989: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:10:02.878179: Reserve min: 7%, battery_min: 7%
2026-08-17 21:10:02.878255: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:10:02.878556: Inverter 0 SoC: 6.72kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 1131W, current battery voltage 51.2V, grid power -55W, load power 1194W, PV Power 0W
2026-08-17 21:10:02.878762: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:10:02.878852: Inverter 0 scheduled charge enable is False
2026-08-17 21:10:02.878885: Inverter 0 charge windows currently []
2026-08-17 21:10:02.878912: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:10:02.879020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:10:02.879070: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:10:02.879137: Inverter 0 scheduled discharge enable is False
2026-08-17 21:10:02.879298: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:10:02.879337: Inverter 0 discharge windows currently []
2026-08-17 21:10:02.879360: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:10:02.879382: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:10:02.879399: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:10:02.937875: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:10:02.937962: Plan was last updated on 2026-08-17 21:00:00+01:00 and is now 10.0 minutes old
2026-08-17 21:10:02.938139: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:10:02.938172: Best export window [ ]
2026-08-17 21:10:02.938867: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:10:02.941822: Load divergence over 8.0 hours mean 472.19W, min 342.6W, max 1039.2W, std dev 161.67W, divergence 17.12%
2026-08-17 21:10:02.957894: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:10:02.957996: LoadML is_calculating False
2026-08-17 21:10:02.958048: Creating pool of 12 processes to match your CPU count
2026-08-17 21:10:03.067844: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 614.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.52kWh, PV 0.0kWh
2026-08-17 21:10:03.197376: Battery has 6.17 hours left - now at 6.72kWh
2026-08-17 21:10:03.239969: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 635.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.39kWh, PV 0.0kWh
2026-08-17 21:10:03.322137: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 343.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.39kWh, PV 0.0kWh
2026-08-17 21:10:03.397069: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 332.33p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.52kWh, PV 0.0kWh
2026-08-17 21:10:03.397157: Saving plan best values to HA entities
2026-08-17 21:10:03.571434: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 21:10:03.577408: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:10:03.582142: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.57kWh, house 0.0kWh, export 0.0kWh, metric 332.33p, metric10 343.77p
2026-08-17 21:10:03.657408: Marginal costs baseline metric (no standing charge): 285.6957
2026-08-17 21:10:03.887522: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 21:10:03.954303: Rate array import [{'start': 1270, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1270, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:10:03.954952: - Your estimated bill for today is £1.85 and tomorrow is £1.63
2026-08-17 21:10:03.954996: - Import rates are very expensive (33.8p) for the next 2 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:10:03.955019: - The battery is currently at 42% and is in eco mode for the next 2 and a quarter hours.
2026-08-17 21:10:03.955037: - For the next 48 hours there will be no solar generation.
2026-08-17 21:10:03.955055: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:10:03.955077: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 21:10:03.955095:
2026-08-17 21:10:04.004756: Plan calculation took 1.07 seconds
2026-08-17 21:10:04.008557: No high rate period found
2026-08-17 21:10:04.060330: Import threshold used for optimisation was 8.0p
2026-08-17 21:10:04.111477: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:10:04.117276: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-17 21:10:04.117411: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:10:04.117513: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:10:04.117785: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:10:04.117878: No export window planned
2026-08-17 21:10:04.118002: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:10:04.118043: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:10:04.118179: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:10:04.118382: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:10:04.118444: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:10:04.118510: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:10:04.118604: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118672: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118784: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118818: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118850: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.118985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.119014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.119039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.119070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.119095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:04.119123: Inverter 0 count register writes 0
2026-08-17 21:10:04.142644: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 21:10:04.142852: Recompute is saving previous plan...
2026-08-17 21:10:04.143788: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 21:10:04.143840: Best export window [ ]
2026-08-17 21:10:04.144696: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:10:04.147865: Load divergence over 8.0 hours mean 472.19W, min 342.6W, max 1039.2W, std dev 161.67W, divergence 17.12%
2026-08-17 21:10:04.166068: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:10:04.166192: LoadML is_calculating False
2026-08-17 21:10:04.166266: Creating pool of 12 processes to match your CPU count
2026-08-17 21:10:04.259154: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 21:10:04.260004: Optimise levels pass started at 2026-08-17 21:10:04
2026-08-17 21:10:04.260058: Optimise all windows, total charge 24 export 1
2026-08-17 21:10:04.642046: >> Region optimisation pass width 960 gives best_metric 399.79p, best_cost 424.1p, best_cycle 47.02kWh, best_import 32.87kWh
2026-08-17 21:10:04.783158: >> Region optimisation pass width 480 gives best_metric 399.79p, best_cost 424.1p, best_cycle 47.02kWh, best_import 32.87kWh
2026-08-17 21:10:05.066816: >> Region optimisation pass width 240 gives best_metric 399.79p, best_cost 424.1p, best_cycle 47.02kWh, best_import 32.87kWh
2026-08-17 21:10:05.947716: >> Region optimisation pass width 120 gives best_metric 398.76p, best_cost 412.72p, best_cycle 48.5kWh, best_import 31.45kWh
2026-08-17 21:10:05.947950: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 21:10:05.948022: Optimise levels pass ended at 2026-08-17 21:10:05, duration 1.7 seconds tried 73 combinations
2026-08-17 21:10:05.948090: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 398.76p, best_keep 0kWh, best_cycle 48.5kWh, best_carbon 0kg, best_import 31.45kWh
2026-08-17 21:10:05.966206: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 21:10:08.589613: Tweak plan optimisation started metric 269.01p, cost 279.39p
2026-08-17 21:10:08.891762: Tweak optimisation finished metric 269.01p, cost 279.39p, metric_keep 0kWh, cycle 23.96kWh, carbon 0kg, import 14.78kWh, changed 8 window(s)
2026-08-17 21:10:08.910232: Swap charge optimisation started metric 269.01p, cost 279.39p, min_improvement_swap 0.1p
2026-08-17 21:10:09.621519: Swap charge optimisation finished metric 269.01p, cost 279.39p
2026-08-17 21:10:09.755216: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 267.85p -> 267.55p, plan now metric 270.86p, cost 275.25p, cycle 24.5kWh, import 14.26kWh
2026-08-17 21:10:09.765195: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:10:09.765835: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:10:09.766068: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:10:09.766242: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:10:09.802284: Previous plan best metric is 269.01 (cost 279.39) and new plan best metric is 269.01 (cost 279.39)
2026-08-17 21:10:09.802473: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 21:10:09.802624: Plan valid is now true after recompute was False
2026-08-17 21:10:09.836938: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 612.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.32kWh, PV 0.0kWh
2026-08-17 21:10:09.950782: Battery has 6.17 hours left - now at 6.72kWh
2026-08-17 21:10:09.995153: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 633.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.18kWh, PV 0.0kWh
2026-08-17 21:10:10.073070: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 336.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.18kWh, PV 0.0kWh
2026-08-17 21:10:10.157608: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 324.05p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.32kWh, PV 0.0kWh
2026-08-17 21:10:10.157848: Saving plan best values to HA entities
2026-08-17 21:10:10.340012: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 21:10:10.345093: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:10:10.350805: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.53kWh, house 0.0kWh, export 0.0kWh, metric 324.05p, metric10 336.52p
2026-08-17 21:10:10.431381: Marginal costs baseline metric (no standing charge): 277.4114
2026-08-17 21:10:10.703409: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 21:10:10.775408: Rate array import [{'start': 1270, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1270, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:10:10.775967: - Your estimated bill for today is £1.85 and tomorrow is £1.63
2026-08-17 21:10:10.776034: - Import rates are very expensive (33.8p) for the next 2 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:10:10.776053: - The battery is currently at 42% and is in eco mode for the next 2 and a quarter hours.
2026-08-17 21:10:10.776068: - For the next 48 hours there will be no solar generation.
2026-08-17 21:10:10.776082: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:10:10.776096: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 21:10:10.776109:
2026-08-17 21:10:10.823662: Plan calculation took 6.68 seconds
2026-08-17 21:10:10.824011: Inverter 0: Type SK Sunsynk
2026-08-17 21:10:10.824057: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:10:10.824239: Reserve min: 7%, battery_min: 7%
2026-08-17 21:10:10.824302: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:10:10.824611: Inverter 0 SoC: 6.72kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 1131W, current battery voltage 51.2V, grid power -55W, load power 1194W, PV Power 0W
2026-08-17 21:10:10.824812: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:10:10.824896: Inverter 0 scheduled charge enable is False
2026-08-17 21:10:10.824920: Inverter 0 charge windows currently []
2026-08-17 21:10:10.824948: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:10:10.825035: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:10:10.825069: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:10:10.825100: Inverter 0 scheduled discharge enable is False
2026-08-17 21:10:10.825205: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:10:10.825239: Inverter 0 discharge windows currently []
2026-08-17 21:10:10.825257: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:10:10.825272: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:10:10.825286: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:10:10.878889: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-17 21:10:10.879026: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:10:10.879094: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:10:10.879276: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:10:10.879356: No export window planned
2026-08-17 21:10:10.879459: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:10:10.879494: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:10:10.879628: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:10:10.879809: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:10:10.879871: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:10:10.879962: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:10:10.880058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880099: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880127: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880185: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880210: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880235: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:10:10.880508: Inverter 0 count register writes 0
2026-08-17 21:10:10.898360: Total inverter register writes now 861
2026-08-17 21:10:10.931376: Info: Completed run status Demand
2026-08-17 21:10:10.940432: Info: record_status Demand
2026-08-17 21:10:10.947726: Saved current settings to /config/predbat_config.json
2026-08-17 21:10:10.948064: Compare, best tariff: current metric 104.68p
2026-08-17 21:10:49.066817: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:10:49.067110: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:10:49.067174: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:10:49.067377: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:10:49.067428: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:10:49.067477: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:10:49.067513: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:12:49.311019: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:12:49.311309: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:12:49.311356: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:12:49.311508: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:12:49.311545: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:12:49.311563: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:12:49.311587: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:14:49.538176: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:14:49.538425: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:14:49.538483: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:14:49.538617: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:14:49.538657: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:14:49.538679: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:14:49.538697: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:15:00.647970: --------------- PredBat - update at 2026-08-17 21:15:00+01:00 with clock skew 0 minutes, minutes now 1275
2026-08-17 21:15:00.648774: Saved current settings to /config/predbat_config.json
2026-08-17 21:15:00.648911: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 21:15:00.649046: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:15:00.649183: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:15:00.669129: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:15:00.669263: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:15:00.669527: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:15:00.670130: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:15:00.670298: Predbat mode is set to Control charge & discharge
2026-08-17 21:15:00.866117: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:15:00.866271: Using load_power data to fill gaps in load_today data
2026-08-17 21:15:01.722258: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:15:01.722527: Zero load period starting at 2026-08-17T10:54:00+0100 (621 minutes) for 189 minutes with base value 212.35
2026-08-17 21:15:01.723741: Processing 721 30-minute periods for power integration
2026-08-17 21:15:01.922097: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:15:01.922220: Car charging hold False, threshold 6.0kWh
2026-08-17 21:15:01.922265: Current data so far today: load 11.3kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:15:01.938957: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:15:01.939051: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:15:01.939760: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:15:01.939832: Standing charge is set to 46.63p
2026-08-17 21:15:02.029413: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.029683: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.029876: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.030054: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.030229: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.030398: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.030590: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.030756: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.030915: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:15:02.032035: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:15:02.032145: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:15:02.037559: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:15:02.037934: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:15:02.082018: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:15:02.082138: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:15:02.083515: High export rate found rates in range 99p to -99p
2026-08-17 21:15:02.112869: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:15:02.113000: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:15:02.125432: Battery level now 6.72kWh, -1hr ago 7.58kWh, at midnight 10.49kWh, battery value change in the last hour -5.94p, change today -25.9p, rate_forward 6.87p
2026-08-17 21:15:02.125854: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 1.0kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:15:02.190857: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:15:02.191008: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:15:02.290021: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:15:02.326671: Today's load divergence 95.61%, in-day adjustment 92.68%, damping 0.95x, yesterday 68.37% today 95.83% blend 11.46%
2026-08-17 21:15:02.326764: Today's predicted so far 13.13kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 13.13kWh forecast extra.
2026-08-17 21:15:02.326796: Today's actual load so far 12.47kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 21:15:02.354806: Inverter 0: Type SK Sunsynk
2026-08-17 21:15:02.354884: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:15:02.355095: Reserve min: 7%, battery_min: 7%
2026-08-17 21:15:02.355182: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:15:02.355493: Inverter 0 SoC: 6.65kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 1154W, current battery voltage 51.2V, grid power -55W, load power 1216W, PV Power 0W
2026-08-17 21:15:02.355677: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:15:02.355773: Inverter 0 scheduled charge enable is False
2026-08-17 21:15:02.355820: Inverter 0 charge windows currently []
2026-08-17 21:15:02.355876: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:15:02.356075: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:15:02.356121: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:15:02.356174: Inverter 0 scheduled discharge enable is False
2026-08-17 21:15:02.356348: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:15:02.356390: Inverter 0 discharge windows currently []
2026-08-17 21:15:02.356420: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:15:02.356479: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:15:02.356515: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:15:02.414211: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:15:02.414309: Plan was last updated on 2026-08-17 21:10:00+01:00 and is now 5.0 minutes old
2026-08-17 21:15:02.414532: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:15:02.414575: Best export window [ ]
2026-08-17 21:15:02.415333: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:15:02.418633: Load divergence over 8.0 hours mean 472.23W, min 331.2W, max 1005.0W, std dev 169.32W, divergence 17.93%
2026-08-17 21:15:02.437202: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:15:02.437291: LoadML is_calculating False
2026-08-17 21:15:02.437351: Creating pool of 12 processes to match your CPU count
2026-08-17 21:15:02.551518: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 613.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.49kWh, PV 0.0kWh
2026-08-17 21:15:02.679113: Battery has 6.0 hours left - now at 6.65kWh
2026-08-17 21:15:02.724055: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 635.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.35kWh, PV 0.0kWh
2026-08-17 21:15:02.807515: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 340.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.35kWh, PV 0.0kWh
2026-08-17 21:15:02.893528: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 328.44p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.49kWh, PV 0.0kWh
2026-08-17 21:15:02.893608: Saving plan best values to HA entities
2026-08-17 21:15:03.042778: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:15:03.048275: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:15:03.053389: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.08kWh, house 0.0kWh, export 0.0kWh, metric 328.44p, metric10 340.74p
2026-08-17 21:15:03.126525: Marginal costs baseline metric (no standing charge): 281.8012
2026-08-17 21:15:03.384856: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 21:15:03.453191: Rate array import [{'start': 1275, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1275, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:15:03.453933: - Your estimated bill for today is £1.85 and tomorrow is £1.63
2026-08-17 21:15:03.453988: - Import rates are very expensive (33.8p) for the next 2 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:15:03.454012: - The battery is currently at 42% and is in eco mode for the next 2 and a quarter hours.
2026-08-17 21:15:03.454039: - For the next 48 hours there will be no solar generation.
2026-08-17 21:15:03.454070: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:15:03.454095: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 21:15:03.454114:
2026-08-17 21:15:03.502592: Plan calculation took 1.09 seconds
2026-08-17 21:15:03.505673: No high rate period found
2026-08-17 21:15:03.549203: Import threshold used for optimisation was 8.0p
2026-08-17 21:15:03.596173: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:15:03.600973: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-17 21:15:03.601086: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:15:03.601216: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:15:03.601479: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:15:03.601576: No export window planned
2026-08-17 21:15:03.601756: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:15:03.601806: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:15:03.601971: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:15:03.602171: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:15:03.602240: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:15:03.602314: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:15:03.602427: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602580: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602605: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602645: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602686: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602882: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.602983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:15:03.603002: Inverter 0 count register writes 0
2026-08-17 21:15:03.617164: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 21:15:03.621892: Total inverter register writes now 861
2026-08-17 21:15:03.649650: Info: Completed run status Demand
2026-08-17 21:15:03.654662: Info: record_status Demand
2026-08-17 21:15:03.660966: Saved current settings to /config/predbat_config.json
2026-08-17 21:15:03.661255: Compare, best tariff: current metric 104.68p
2026-08-17 21:15:33.765796: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:15:33.766076: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:15:33.766136: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:15:33.766347: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:15:33.766396: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:15:33.766446: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:15:33.766481: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:15:52.694176: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 21:15:53.791257: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:15:53.791452: Zero load period starting at 2026-08-17T10:54:00+0100 (621 minutes) for 189 minutes with base value 408.6
2026-08-17 21:15:53.792199: Processing 1345 30-minute periods for power integration
2026-08-17 21:15:53.903021: ML Component: Car charging hold False, car energy reported load False
2026-08-17 21:15:54.029801: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:15:54.144389: ML Temperature data points: 49126
2026-08-17 21:15:54.462845: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 21:15:54.503299: ML Component: Data fetch completed, load data age 59.0 days, 17079 data points
2026-08-17 21:15:54.503639: ML Component: Starting fine-tune training (2h interval), model age is 2.0733647716666668 hours
2026-08-17 21:15:54.503682: ML Component: Doing training...
2026-08-17 21:15:54.518087: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-17 21:15:54.518205: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.3 days)
2026-08-17 21:15:54.575224: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-17 21:15:54.575338: ML Predictor: Starting initial training with 30 epochs
2026-08-17 21:15:55.222791: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 21:16:00.512375: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 21:16:00.588695: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0480) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7268 std=4.5888) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1925 std=0.5271)
2026-08-17 21:16:13.321704: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0281 val_mae=0.0090 kWh val_bias=+0.0010 kWh (+1.1%) combined=0.0048 kWh ema_combined=0.0048 kWh
2026-08-17 21:16:25.775819: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0380 val_mae=0.0073 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0037 kWh ema_combined=0.0044 kWh
2026-08-17 21:16:39.072351: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0329 val_mae=0.0078 kWh val_bias=-0.0024 kWh (-2.6%) combined=0.0044 kWh ema_combined=0.0044 kWh
2026-08-17 21:16:51.854875: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0218 val_mae=0.0059 kWh val_bias=+0.0022 kWh (+2.4%) combined=0.0054 kWh ema_combined=0.0047 kWh
2026-08-17 21:17:06.890182: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0159 val_mae=0.0056 kWh val_bias=-0.0026 kWh (-2.9%) combined=0.0044 kWh ema_combined=0.0046 kWh
2026-08-17 21:17:19.134904: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0140 val_mae=0.0049 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0027 kWh ema_combined=0.0041 kWh
2026-08-17 21:17:32.522558: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0138 val_mae=0.0054 kWh val_bias=-0.0026 kWh (-3.0%) combined=0.0039 kWh ema_combined=0.0040 kWh
2026-08-17 21:17:34.242477: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:17:34.242898: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:17:34.243028: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:17:34.243263: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:17:34.243380: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:17:34.243490: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:17:34.243591: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:17:45.669046: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0120 val_mae=0.0058 kWh val_bias=+0.0027 kWh (+3.1%) combined=0.0040 kWh ema_combined=0.0040 kWh
2026-08-17 21:18:00.585210: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0108 val_mae=0.0040 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0026 kWh ema_combined=0.0036 kWh
2026-08-17 21:18:13.467495: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0102 val_mae=0.0042 kWh val_bias=-0.0017 kWh (-1.9%) combined=0.0027 kWh ema_combined=0.0033 kWh
2026-08-17 21:18:26.226227: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0110 val_mae=0.0042 kWh val_bias=-0.0012 kWh (-1.3%) combined=0.0033 kWh ema_combined=0.0033 kWh
2026-08-17 21:18:40.041953: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0092 val_mae=0.0038 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0020 kWh ema_combined=0.0029 kWh
2026-08-17 21:18:53.127461: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0088 val_mae=0.0039 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0021 kWh ema_combined=0.0027 kWh
2026-08-17 21:19:08.268400: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0097 val_mae=0.0039 kWh val_bias=-0.0013 kWh (-1.4%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-17 21:19:20.915222: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0081 val_mae=0.0035 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-17 21:19:34.141680: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0081 val_mae=0.0037 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-17 21:19:34.587539: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:19:34.587847: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:19:34.587945: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:19:34.588127: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:19:34.588176: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:19:34.588207: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:19:34.588244: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:19:47.047734: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0074 val_mae=0.0036 kWh val_bias=-0.0020 kWh (-2.3%) combined=0.0028 kWh ema_combined=0.0025 kWh
2026-08-17 21:20:00.284272: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0079 val_mae=0.0037 kWh val_bias=-0.0021 kWh (-2.4%) combined=0.0032 kWh ema_combined=0.0027 kWh
2026-08-17 21:20:00.793959: --------------- PredBat - update at 2026-08-17 21:20:00+01:00 with clock skew 0 minutes, minutes now 1280
2026-08-17 21:20:00.794803: Saved current settings to /config/predbat_config.json
2026-08-17 21:20:00.794955: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 21:20:00.795048: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:20:00.795176: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:20:00.839820: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:20:00.840153: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:20:00.840459: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:20:00.841200: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:20:00.841452: Predbat mode is set to Control charge & discharge
2026-08-17 21:20:01.128959: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:20:01.129179: Using load_power data to fill gaps in load_today data
2026-08-17 21:20:02.357936: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:20:02.358494: Zero load period starting at 2026-08-17T10:54:00+0100 (626 minutes) for 189 minutes with base value 212.325
2026-08-17 21:20:02.359800: Processing 721 30-minute periods for power integration
2026-08-17 21:20:02.749087: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:20:02.749343: Car charging hold False, threshold 6.0kWh
2026-08-17 21:20:02.749515: Current data so far today: load 11.4kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:20:02.771633: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:20:02.771794: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:20:02.772931: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:20:02.773147: Standing charge is set to 46.63p
2026-08-17 21:20:03.043503: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.043806: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.044199: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.044504: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.044793: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.045090: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.045378: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.048473: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.048798: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:20:03.050416: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:20:03.050671: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:20:03.068593: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:20:03.070117: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:20:03.124137: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:20:03.124821: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:20:03.126595: High export rate found rates in range 99p to -99p
2026-08-17 21:20:03.158784: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:20:03.158968: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:20:03.175510: Battery level now 6.65kWh, -1hr ago 7.58kWh, at midnight 10.49kWh, battery value change in the last hour -6.43p, change today -26.39p, rate_forward 6.87p
2026-08-17 21:20:03.176106: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 1.05kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:20:03.321192: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:20:03.321410: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:20:03.549584: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:20:03.594194: Today's load divergence 96.18%, in-day adjustment 93.26%, damping 0.95x, yesterday 68.37% today 96.37% blend 11.11%
2026-08-17 21:20:03.594372: Today's predicted so far 13.15kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 13.15kWh forecast extra.
2026-08-17 21:20:03.594403: Today's actual load so far 12.57kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 21:20:03.672681: Inverter 0: Type SK Sunsynk
2026-08-17 21:20:03.672816: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:20:03.680163: Reserve min: 7%, battery_min: 7%
2026-08-17 21:20:03.680272: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:20:03.680629: Inverter 0 SoC: 6.65kW 42%, current charge rate 5000W, current discharge rate 5250W, current battery power 975W, current battery voltage 51.2V, grid power -55W, load power 1018W, PV Power 0W
2026-08-17 21:20:03.680879: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:20:03.681064: Inverter 0 scheduled charge enable is False
2026-08-17 21:20:03.681172: Inverter 0 charge windows currently []
2026-08-17 21:20:03.681265: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:20:03.681448: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:20:03.681557: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:20:03.681669: Inverter 0 scheduled discharge enable is False
2026-08-17 21:20:03.681883: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:20:03.682007: Inverter 0 discharge windows currently []
2026-08-17 21:20:03.682104: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:20:03.682184: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:20:03.682262: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:20:03.809217: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:20:03.809452: Plan was last updated on 2026-08-17 21:10:00+01:00 and is now 10.0 minutes old
2026-08-17 21:20:03.809757: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:20:03.809870: Best export window [ ]
2026-08-17 21:20:03.810975: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:20:03.814965: Load divergence over 8.0 hours mean 473.67W, min 361.2W, max 977.4W, std dev 158.55W, divergence 16.74%
2026-08-17 21:20:03.859093: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:20:03.879470: LoadML is_calculating True
2026-08-17 21:20:03.879589: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 21:20:03.998889: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 614.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.65kWh, PV 0.0kWh
2026-08-17 21:20:04.197358: Battery has 6.0 hours left - now at 6.65kWh
2026-08-17 21:20:04.300829: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 635.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.52kWh, PV 0.0kWh
2026-08-17 21:20:04.478678: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 343.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.52kWh, PV 0.0kWh
2026-08-17 21:20:04.657031: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 332.31p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.65kWh, PV 0.0kWh
2026-08-17 21:20:04.658232: Saving plan best values to HA entities
2026-08-17 21:20:04.953515: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:20:04.961606: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:20:04.969727: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.57kWh, house 0.0kWh, export 0.0kWh, metric 332.31p, metric10 343.79p
2026-08-17 21:20:05.130493: Marginal costs baseline metric (no standing charge): 285.6727
2026-08-17 21:20:05.579729: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 21:20:05.754795: Rate array import [{'start': 1280, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1280, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:20:05.755702: - Your estimated bill for today is £1.85 and tomorrow is £1.63
2026-08-17 21:20:05.755758: - Import rates are very expensive (33.8p) for the next 2 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:20:05.755788: - The battery is currently at 42% and is in eco mode for the next 2 and a quarter hours.
2026-08-17 21:20:05.755813: - For the next 48 hours there will be no solar generation.
2026-08-17 21:20:05.755838: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:20:05.755995: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 21:20:05.756045:
2026-08-17 21:20:05.796759: Plan calculation took 1.99 seconds
2026-08-17 21:20:05.800676: No high rate period found
2026-08-17 21:20:05.898183: Import threshold used for optimisation was 8.0p
2026-08-17 21:20:06.025185: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:20:06.033761: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 42%, target 100%
2026-08-17 21:20:06.033943: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:20:06.034031: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:20:06.034243: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:20:06.034657: No export window planned
2026-08-17 21:20:06.034802: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:20:06.034848: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:20:06.035050: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:20:06.035234: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:20:06.035294: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:20:06.035352: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:20:06.035451: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035540: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035620: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035688: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035761: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.035880: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.036110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.036170: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.036207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:06.036246: Inverter 0 count register writes 0
2026-08-17 21:20:06.064364: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 21:20:06.064562: Recompute is saving previous plan...
2026-08-17 21:20:06.065786: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 21:20:06.065956: Best export window [ ]
2026-08-17 21:20:06.066962: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:20:06.070490: Load divergence over 8.0 hours mean 473.67W, min 361.2W, max 977.4W, std dev 158.55W, divergence 16.74%
2026-08-17 21:20:06.089391: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:20:06.089897: LoadML is_calculating True
2026-08-17 21:20:06.089960: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 21:20:06.097360: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 21:20:06.097914: Optimise levels pass started at 2026-08-17 21:20:06
2026-08-17 21:20:06.098039: Optimise all windows, total charge 24 export 1
2026-08-17 21:20:08.233466: >> Region optimisation pass width 960 gives best_metric 400.48p, best_cost 424.11p, best_cycle 47.05kWh, best_import 32.87kWh
2026-08-17 21:20:08.448243: >> Region optimisation pass width 480 gives best_metric 400.48p, best_cost 424.11p, best_cycle 47.05kWh, best_import 32.87kWh
2026-08-17 21:20:08.982078: >> Region optimisation pass width 240 gives best_metric 400.48p, best_cost 424.11p, best_cycle 47.05kWh, best_import 32.87kWh
2026-08-17 21:20:12.371683: >> Region optimisation pass width 120 gives best_metric 399.44p, best_cost 412.71p, best_cycle 48.53kWh, best_import 31.45kWh
2026-08-17 21:20:12.371893: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 21:20:12.372106: Optimise levels pass ended at 2026-08-17 21:20:12, duration 6.3 seconds tried 73 combinations
2026-08-17 21:20:12.372346: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 399.44p, best_keep 0kWh, best_cycle 48.53kWh, best_carbon 0kg, best_import 31.45kWh
2026-08-17 21:20:12.400670: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 21:20:23.513957: Tweak plan optimisation started metric 269.0p, cost 279.33p
2026-08-17 21:20:25.647791: Tweak optimisation finished metric 269.0p, cost 279.33p, metric_keep 0kWh, cycle 23.89kWh, carbon 0kg, import 14.77kWh, changed 8 window(s)
2026-08-17 21:20:25.683439: Swap charge optimisation started metric 269.0p, cost 279.33p, min_improvement_swap 0.1p
2026-08-17 21:20:26.753266: Swap charge optimisation finished metric 269.0p, cost 279.33p
2026-08-17 21:20:26.959766: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 267.84p -> 267.72p, plan now metric 271.02p, cost 275.42p, cycle 24.43kWh, import 14.26kWh
2026-08-17 21:20:26.971270: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:20:26.971855: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:20:26.972263: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:20:26.972586: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:20:27.025213: Previous plan best metric is 269.0 (cost 279.33) and new plan best metric is 269.0 (cost 279.33)
2026-08-17 21:20:27.029161: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 21:20:27.029336: Plan valid is now true after recompute was False
2026-08-17 21:20:27.084784: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 612.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:20:00, load 29.45kWh, PV 0.0kWh
2026-08-17 21:20:27.301238: Battery has 6.0 hours left - now at 6.65kWh
2026-08-17 21:20:27.365489: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 633.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.31kWh, PV 0.0kWh
2026-08-17 21:20:27.477546: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 336.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.31kWh, PV 0.0kWh
2026-08-17 21:20:27.665361: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 324.01p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.45kWh, PV 0.0kWh
2026-08-17 21:20:27.665440: Saving plan best values to HA entities
2026-08-17 21:20:27.876525: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:20:27.885227: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:20:27.893868: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.53kWh, house 0.0kWh, export 0.0kWh, metric 324.01p, metric10 336.53p
2026-08-17 21:20:28.014500: Marginal costs baseline metric (no standing charge): 277.3804
2026-08-17 21:20:28.327086: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 21:20:28.424058: Rate array import [{'start': 1280, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1280, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:20:28.424998: - Your estimated bill for today is £1.85 and tomorrow is £1.63
2026-08-17 21:20:28.425232: - Import rates are very expensive (33.8p) for the next 2 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:20:28.425290: - The battery is currently at 42% and is in eco mode for the next 2 and a quarter hours.
2026-08-17 21:20:28.425481: - For the next 48 hours there will be no solar generation.
2026-08-17 21:20:28.425529: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:20:28.425598: - Your next charge slot will be in 2 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 21:20:28.425662:
2026-08-17 21:20:28.489001: Plan calculation took 22.42 seconds
2026-08-17 21:20:28.489232: Inverter 0: Type SK Sunsynk
2026-08-17 21:20:28.489282: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:20:28.489482: Reserve min: 7%, battery_min: 7%
2026-08-17 21:20:28.489566: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:20:28.490071: Inverter 0 SoC: 6.56kW 41%, current charge rate 5000W, current discharge rate 5250W, current battery power 925W, current battery voltage 51.2V, grid power -52W, load power 979W, PV Power 0W
2026-08-17 21:20:28.490266: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:20:28.490371: Inverter 0 scheduled charge enable is False
2026-08-17 21:20:28.490416: Inverter 0 charge windows currently []
2026-08-17 21:20:28.490534: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:20:28.490794: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:20:28.490906: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:20:28.491065: Inverter 0 scheduled discharge enable is False
2026-08-17 21:20:28.491309: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:20:28.491872: Inverter 0 discharge windows currently []
2026-08-17 21:20:28.492016: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:20:28.492146: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:20:28.492239: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:20:28.619487: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 41%, target 100%
2026-08-17 21:20:28.619808: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:20:28.620071: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:20:28.620438: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:20:28.620639: No export window planned
2026-08-17 21:20:28.620933: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:20:28.621081: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:20:28.621382: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:20:28.621717: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:20:28.622591: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:20:28.622871: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:20:28.623119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.623249: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.623382: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.623573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.623701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.623807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.623992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.624167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.624310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.624421: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.624564: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.624670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.624790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.624892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:20:28.625023: Inverter 0 count register writes 0
2026-08-17 21:20:28.664029: Total inverter register writes now 861
2026-08-17 21:20:28.774317: Info: Completed run status Demand
2026-08-17 21:20:28.792244: Info: record_status Demand
2026-08-17 21:20:28.812643: Saved current settings to /config/predbat_config.json
2026-08-17 21:20:28.813090: Compare, best tariff: current metric 104.68p
2026-08-17 21:20:33.768657: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0073 val_mae=0.0034 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0020 kWh ema_combined=0.0025 kWh
2026-08-17 21:20:48.074449: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0071 val_mae=0.0033 kWh val_bias=-0.0013 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-17 21:21:03.970837: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:21:03.971445: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:21:03.971553: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:21:03.976034: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:21:03.976124: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:21:03.976150: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:21:03.976172: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:21:04.336223: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0069 val_mae=0.0030 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0021 kWh
2026-08-17 21:21:19.868948: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0071 val_mae=0.0028 kWh val_bias=+0.0004 kWh (+0.4%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-17 21:21:33.437017: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0071 val_mae=0.0035 kWh val_bias=-0.0021 kWh (-2.3%) combined=0.0030 kWh ema_combined=0.0023 kWh
2026-08-17 21:21:46.544734: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0067 val_mae=0.0027 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-17 21:21:59.375237: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0063 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-17 21:22:14.452695: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0065 val_mae=0.0028 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0016 kWh ema_combined=0.0019 kWh
2026-08-17 21:22:26.870253: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0063 val_mae=0.0028 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-17 21:22:39.867672: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0058 val_mae=0.0029 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0018 kWh
2026-08-17 21:22:53.294042: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0060 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-17 21:23:04.418770: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:23:04.419481: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:23:04.419696: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:23:04.420275: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:23:04.420431: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:23:04.420594: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:23:04.420745: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:23:06.580416: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0059 val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 21:23:06.586398: ML Predictor: Restored best weights from epoch with val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-17 21:23:06.586788: ML Predictor: Training complete, final val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.4%)
2026-08-17 21:23:07.616072: ML Predictor: AR rollout over holdout: ar_mae=0.0028 kWh ar_bias=-0.0004 kWh (-0.4%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 21:23:07.625099: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0026 kWh
2026-08-17 21:23:07.686945: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-17 21:23:07.687210: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 21:23:08.262440: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 21:23:12.929161: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 21:23:12.980572: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7287 std=4.5873) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-17 21:23:13.065284: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 21:23:13.080365: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 21:23:13.136890: ML Predictor: Baseline (pre-finetune) val_mae=0.0041 kWh val_bias=-0.0010 kWh
2026-08-17 21:23:27.717201: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0106 val_mae=0.0043 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-17 21:23:40.029178: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0120 val_mae=0.0044 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0030 kWh ema_combined=0.0025 kWh
2026-08-17 21:23:53.296369: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0110 val_mae=0.0042 kWh val_bias=-0.0024 kWh (-3.0%) combined=0.0038 kWh ema_combined=0.0029 kWh
2026-08-17 21:24:06.679799: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0143 val_mae=0.0053 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0034 kWh ema_combined=0.0030 kWh
2026-08-17 21:24:21.924558: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0141 val_mae=0.0046 kWh val_bias=+0.0018 kWh (+2.2%) combined=0.0039 kWh ema_combined=0.0033 kWh
2026-08-17 21:24:38.715818: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0105 val_mae=0.0037 kWh val_bias=-0.0012 kWh (-1.6%) combined=0.0026 kWh ema_combined=0.0031 kWh
2026-08-17 21:24:52.782373: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0100 val_mae=0.0045 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-17 21:25:00.224788: --------------- PredBat - update at 2026-08-17 21:25:00+01:00 with clock skew 0 minutes, minutes now 1285
2026-08-17 21:25:00.226160: Saved current settings to /config/predbat_config.json
2026-08-17 21:25:00.226606: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 21:25:00.226961: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:25:00.227190: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:25:00.258324: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:25:00.258471: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:25:00.258778: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:25:00.259458: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:25:00.259658: Predbat mode is set to Control charge & discharge
2026-08-17 21:25:00.517196: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:25:00.517318: Using load_power data to fill gaps in load_today data
2026-08-17 21:25:01.800986: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:25:01.805580: Zero load period starting at 2026-08-17T10:54:00+0100 (631 minutes) for 189 minutes with base value 212.3
2026-08-17 21:25:01.806108: Processing 721 30-minute periods for power integration
2026-08-17 21:25:01.963844: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:25:01.963990: Car charging hold False, threshold 6.0kWh
2026-08-17 21:25:01.964034: Current data so far today: load 11.5kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:25:02.001850: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:25:02.001967: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:25:02.002784: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:25:02.002854: Standing charge is set to 46.63p
2026-08-17 21:25:02.335843: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.336309: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.336617: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.336875: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.337135: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.337426: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.337656: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.337875: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.338108: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:25:02.339456: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:25:02.339648: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:25:02.346629: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:25:02.346981: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:25:02.394934: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:25:02.395136: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:25:02.396635: High export rate found rates in range 99p to -99p
2026-08-17 21:25:02.428529: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:25:02.428737: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:25:02.448673: Battery level now 6.65kWh, -1hr ago 7.52kWh, at midnight 10.49kWh, battery value change in the last hour -5.99p, change today -26.39p, rate_forward 6.87p
2026-08-17 21:25:02.449206: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:25:02.513029: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:25:02.513163: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:25:02.608869: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:25:02.651366: Today's load divergence 96.79%, in-day adjustment 93.88%, damping 0.95x, yesterday 68.37% today 96.95% blend 10.76%
2026-08-17 21:25:02.668073: Today's predicted so far 13.17kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 13.17kWh forecast extra.
2026-08-17 21:25:02.668142: Today's actual load so far 12.68kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 21:25:02.736860: Inverter 0: Type SK Sunsynk
2026-08-17 21:25:02.737035: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:25:02.737268: Reserve min: 7%, battery_min: 7%
2026-08-17 21:25:02.737422: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:25:02.737845: Inverter 0 SoC: 6.45kW 40%, current charge rate 5000W, current discharge rate 5250W, current battery power 909W, current battery voltage 51.2V, grid power -54W, load power 967W, PV Power 0W
2026-08-17 21:25:02.738121: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:25:02.738322: Inverter 0 scheduled charge enable is False
2026-08-17 21:25:02.738437: Inverter 0 charge windows currently []
2026-08-17 21:25:02.738544: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:25:02.738750: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:25:02.738888: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:25:02.739018: Inverter 0 scheduled discharge enable is False
2026-08-17 21:25:02.739273: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:25:02.739377: Inverter 0 discharge windows currently []
2026-08-17 21:25:02.739447: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:25:02.739513: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:25:02.739587: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:25:02.844139: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:25:02.844393: Plan was last updated on 2026-08-17 21:20:00+01:00 and is now 5.0 minutes old
2026-08-17 21:25:02.844764: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:25:02.844899: Best export window [ ]
2026-08-17 21:25:02.845798: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:25:02.849528: Load divergence over 8.0 hours mean 474.98W, min 344.4W, max 1032.6W, std dev 168.12W, divergence 17.7%
2026-08-17 21:25:02.895978: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:25:02.896248: LoadML is_calculating True
2026-08-17 21:25:02.896381: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 21:25:02.959669: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 614.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 29.63kWh, PV 0.0kWh
2026-08-17 21:25:03.212498: Battery has 5.67 hours left - now at 6.45kWh
2026-08-17 21:25:03.299529: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 636.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 30.5kWh, PV 0.0kWh
2026-08-17 21:25:03.450073: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 341.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.5kWh, PV 0.0kWh
2026-08-17 21:25:03.624560: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 329.64p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.63kWh, PV 0.0kWh
2026-08-17 21:25:03.625624: Saving plan best values to HA entities
2026-08-17 21:25:03.888609: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:25:03.906219: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:25:03.912570: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.23kWh, house 0kWh, export 0.0kWh, metric 329.64p, metric10 341.97p
2026-08-17 21:25:04.076523: Marginal costs baseline metric (no standing charge): 283.0036
2026-08-17 21:25:04.479681: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 21:25:04.634621: Rate array import [{'start': 1285, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1285, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:25:04.635374: - Your estimated bill for today is £1.86 and tomorrow is £1.65
2026-08-17 21:25:04.635425: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:25:04.635457: - The battery is currently at 40% and is in eco mode for the next 2 hours.
2026-08-17 21:25:04.635484: - For the next 48 hours there will be no solar generation.
2026-08-17 21:25:04.635540: - You will reach a minimum of 9% battery in 26 hours.
2026-08-17 21:25:04.639976: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-17 21:25:04.640169:
2026-08-17 21:25:04.704195: Plan calculation took 1.86 seconds
2026-08-17 21:25:04.708865: No high rate period found
2026-08-17 21:25:04.805976: Import threshold used for optimisation was 8.0p
2026-08-17 21:25:04.898273: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:25:04.904901: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 40%, target 100%
2026-08-17 21:25:04.905162: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:25:04.905321: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:25:04.905576: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:25:04.905721: No export window planned
2026-08-17 21:25:04.905906: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:25:04.906010: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:25:04.906236: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:25:04.906466: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:25:04.906587: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:25:04.906714: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:25:04.906870: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.906984: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907512: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907644: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907752: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.907880: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.908018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.908116: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.908220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.908345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:25:04.908432: Inverter 0 count register writes 0
2026-08-17 21:25:04.949541: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 21:25:04.955597: Total inverter register writes now 861
2026-08-17 21:25:05.012211: Info: Completed run status Demand
2026-08-17 21:25:05.019547: Info: record_status Demand
2026-08-17 21:25:05.027149: Saved current settings to /config/predbat_config.json
2026-08-17 21:25:05.027400: Compare, best tariff: current metric 104.68p
2026-08-17 21:25:09.442435: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0096 val_mae=0.0034 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-17 21:25:24.231392: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0095 val_mae=0.0040 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-17 21:25:37.336167: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0117 val_mae=0.0037 kWh val_bias=+0.0012 kWh (+1.6%) combined=0.0035 kWh ema_combined=0.0029 kWh
2026-08-17 21:25:49.198433: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:25:49.198751: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:25:49.198826: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:25:49.199084: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:25:49.199221: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:25:49.199297: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:25:49.199416: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:25:50.389847: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0090 val_mae=0.0038 kWh val_bias=-0.0024 kWh (-3.0%) combined=0.0038 kWh ema_combined=0.0032 kWh
2026-08-17 21:25:50.390104: ML Predictor: Early stopping at epoch 11
2026-08-17 21:25:50.391196: ML Predictor: Restored best weights from epoch with val_mae=0.0043 kWh val_bias=+0.0004 kWh (+0.5%)
2026-08-17 21:25:50.391520: ML Predictor: Training complete, final val_mae=0.0043 kWh val_bias=+0.0004 kWh (+0.5%)
2026-08-17 21:25:51.463613: ML Predictor: AR rollout over holdout: ar_mae=0.0045 kWh ar_bias=+0.0005 kWh (+0.6%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 21:25:51.469214: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0043 kWh
2026-08-17 21:25:51.545900: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-17 21:25:51.546129: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 21:25:52.094704: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 21:25:57.739351: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 21:25:57.790769: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7251 std=4.5850) import_rate(mean=16.7072 std=8.3577) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-17 21:25:57.879248: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 21:25:57.894877: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 21:25:57.927347: ML Predictor: Baseline (pre-finetune) val_mae=0.0045 kWh val_bias=-0.0007 kWh
2026-08-17 21:26:11.735382: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0128 val_mae=0.0040 kWh val_bias=-0.0007 kWh (-1.2%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-17 21:26:26.797275: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0118 val_mae=0.0043 kWh val_bias=+0.0008 kWh (+1.4%) combined=0.0033 kWh ema_combined=0.0024 kWh
2026-08-17 21:26:40.819646: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0121 val_mae=0.0039 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-17 21:26:53.593907: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0117 val_mae=0.0036 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-17 21:27:06.923859: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0115 val_mae=0.0045 kWh val_bias=+0.0017 kWh (+3.1%) combined=0.0035 kWh ema_combined=0.0026 kWh
2026-08-17 21:27:20.364489: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0106 val_mae=0.0035 kWh val_bias=-0.0012 kWh (-2.1%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-17 21:27:36.114337: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0107 val_mae=0.0036 kWh val_bias=-0.0007 kWh (-1.2%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-17 21:27:49.932700: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0105 val_mae=0.0035 kWh val_bias=+0.0009 kWh (+1.7%) combined=0.0027 kWh ema_combined=0.0026 kWh
2026-08-17 21:28:03.690189: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0091 val_mae=0.0034 kWh val_bias=-0.0018 kWh (-3.3%) combined=0.0033 kWh ema_combined=0.0028 kWh
2026-08-17 21:28:03.869894: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:28:03.870317: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:28:03.870487: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:28:03.870773: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:28:03.870910: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:28:03.871027: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:28:03.871127: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:28:17.342842: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0096 val_mae=0.0034 kWh val_bias=+0.0016 kWh (+2.8%) combined=0.0034 kWh ema_combined=0.0030 kWh
2026-08-17 21:28:29.351661: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0083 val_mae=0.0034 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0023 kWh ema_combined=0.0028 kWh
2026-08-17 21:28:29.351857: ML Predictor: Early stopping at epoch 11
2026-08-17 21:28:29.352726: ML Predictor: Restored best weights from epoch with val_mae=0.0040 kWh val_bias=-0.0007 kWh (-1.2%)
2026-08-17 21:28:29.352944: ML Predictor: Training complete, final val_mae=0.0040 kWh val_bias=-0.0007 kWh (-1.2%)
2026-08-17 21:28:32.563231: ML Predictor: AR rollout over holdout: ar_mae=0.0047 kWh ar_bias=-0.0005 kWh (-0.8%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-17 21:28:32.568622: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0040 kWh
2026-08-17 21:28:32.661409: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-17 21:28:32.661663: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 21:28:33.370416: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-17 21:28:38.236179: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-17 21:28:38.293222: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7161 std=4.5826) import_rate(mean=16.6934 std=8.3727) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-17 21:28:38.389640: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 21:28:38.407984: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 21:28:38.501132: ML Predictor: Baseline (pre-finetune) val_mae=0.0049 kWh val_bias=+0.0002 kWh
2026-08-17 21:28:53.127165: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0133 val_mae=0.0043 kWh val_bias=-0.0016 kWh (-3.8%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-17 21:29:08.098666: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0117 val_mae=0.0042 kWh val_bias=-0.0010 kWh (-2.3%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-17 21:29:21.631169: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0117 val_mae=0.0045 kWh val_bias=+0.0025 kWh (+5.8%) combined=0.0048 kWh ema_combined=0.0034 kWh
2026-08-17 21:29:37.399060: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0111 val_mae=0.0039 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0025 kWh ema_combined=0.0031 kWh
2026-08-17 21:29:51.748017: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0136 val_mae=0.0043 kWh val_bias=-0.0019 kWh (-4.3%) combined=0.0036 kWh ema_combined=0.0033 kWh
2026-08-17 21:30:00.043840: --------------- PredBat - update at 2026-08-17 21:30:00+01:00 with clock skew 0 minutes, minutes now 1290
2026-08-17 21:30:00.047979: Saved current settings to /config/predbat_config.json
2026-08-17 21:30:00.048131: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 21:30:00.048215: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:30:00.048292: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:30:00.115371: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:30:00.115548: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:30:00.115781: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:30:00.116363: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:30:00.116510: Predbat mode is set to Control charge & discharge
2026-08-17 21:30:00.573424: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:30:00.610327: Using load_power data to fill gaps in load_today data
2026-08-17 21:30:01.948200: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:30:01.948542: Zero load period starting at 2026-08-17T10:54:00+0100 (636 minutes) for 189 minutes with base value 212.25
2026-08-17 21:30:01.949425: Processing 721 30-minute periods for power integration
2026-08-17 21:30:02.255726: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:30:02.256112: Car charging hold False, threshold 6.0kWh
2026-08-17 21:30:02.256283: Current data so far today: load 11.45kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:30:02.297082: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:30:02.297485: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:30:02.304033: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:30:02.305207: Standing charge is set to 46.63p
2026-08-17 21:30:02.485766: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.486208: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.486609: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.486908: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.487228: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.487499: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.487754: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.488059: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.488364: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:30:02.489721: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:30:02.490037: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:30:02.495552: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:30:02.496162: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:30:02.543528: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:30:02.543764: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:30:02.545157: High export rate found rates in range 99p to -99p
2026-08-17 21:30:02.574243: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:30:02.575159: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:30:02.589330: Battery level now 6.45kWh, -1hr ago 7.52kWh, at midnight 10.49kWh, battery value change in the last hour -7.37p, change today -27.77p, rate_forward 6.87p
2026-08-17 21:30:02.589769: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.95kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:30:02.689108: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:30:02.689295: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:30:02.973149: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:30:03.025384: Today's load divergence 95.91%, in-day adjustment 93.23%, damping 0.95x, yesterday 68.37% today 96.12% blend 10.42%
2026-08-17 21:30:03.025794: Today's predicted so far 13.28kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 13.28kWh forecast extra.
2026-08-17 21:30:03.025843: Today's actual load so far 12.67kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 21:30:03.078170: Inverter 0: Type SK Sunsynk
2026-08-17 21:30:03.078273: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:30:03.078504: Reserve min: 7%, battery_min: 7%
2026-08-17 21:30:03.078600: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:30:03.079219: Inverter 0 SoC: 6.45kW 40%, current charge rate 5000W, current discharge rate 5250W, current battery power 948W, current battery voltage 51.2V, grid power -54W, load power 1007W, PV Power 0W
2026-08-17 21:30:03.079515: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:30:03.079651: Inverter 0 scheduled charge enable is False
2026-08-17 21:30:03.079700: Inverter 0 charge windows currently []
2026-08-17 21:30:03.079740: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:30:03.079950: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:30:03.080007: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:30:03.080069: Inverter 0 scheduled discharge enable is False
2026-08-17 21:30:03.080275: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:30:03.080333: Inverter 0 discharge windows currently []
2026-08-17 21:30:03.080375: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:30:03.080509: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:30:03.080554: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:30:03.287714: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:30:03.287838: Plan was last updated on 2026-08-17 21:20:00+01:00 and is now 10.0 minutes old
2026-08-17 21:30:03.288132: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:30:03.288192: Best export window [ ]
2026-08-17 21:30:03.289488: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:30:03.294244: Load divergence over 8.0 hours mean 474.92W, min 353.4W, max 1063.8W, std dev 155.68W, divergence 16.39%
2026-08-17 21:30:03.348146: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:30:03.348869: LoadML is_calculating True
2026-08-17 21:30:03.348916: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 21:30:03.394223: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 614.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.62kWh, PV 0.0kWh
2026-08-17 21:30:03.600019: Battery has 5.67 hours left - now at 6.45kWh
2026-08-17 21:30:03.696088: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 636.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 30.48kWh, PV 0.0kWh
2026-08-17 21:30:03.863751: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 344.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.48kWh, PV 0.0kWh
2026-08-17 21:30:04.025896: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 333.2p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.62kWh, PV 0.0kWh
2026-08-17 21:30:04.026001: Saving plan best values to HA entities
2026-08-17 21:30:04.463086: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:30:04.482118: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:30:04.499358: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.68kWh, house 0.0kWh, export 0.0kWh, metric 333.2p, metric10 344.85p
2026-08-17 21:30:04.657535: Marginal costs baseline metric (no standing charge): 286.5683
2026-08-17 21:30:05.094499: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 21:30:05.200499: Rate array import [{'start': 1290, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1290, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:30:05.201125: - Your estimated bill for today is £1.85 and tomorrow is £1.64
2026-08-17 21:30:05.201170: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:30:05.201192: - The battery is currently at 40% and is in eco mode for the next 2 hours.
2026-08-17 21:30:05.201211: - For the next 48 hours there will be no solar generation.
2026-08-17 21:30:05.201228: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:30:05.201245: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-17 21:30:05.201263:
2026-08-17 21:30:05.254375: Plan calculation took 1.97 seconds
2026-08-17 21:30:05.260165: No high rate period found
2026-08-17 21:30:05.326467: Import threshold used for optimisation was 8.0p
2026-08-17 21:30:05.402644: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:30:05.409262: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 40%, target 100%
2026-08-17 21:30:05.409392: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:30:05.409539: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:30:05.409769: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:30:05.409886: No export window planned
2026-08-17 21:30:05.410038: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:30:05.410080: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:30:05.410254: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:30:05.410508: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:30:05.410640: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:30:05.410776: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:30:05.410951: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.411075: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.411196: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.411310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.411423: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.411554: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.411698: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.411850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.412026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.412144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.412335: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.412475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.412592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.412708: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:05.412812: Inverter 0 count register writes 0
2026-08-17 21:30:05.430902: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 21:30:05.431142: Recompute is saving previous plan...
2026-08-17 21:30:05.432774: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 21:30:05.432834: Best export window [ ]
2026-08-17 21:30:05.435550: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:30:05.439385: Load divergence over 8.0 hours mean 474.92W, min 353.4W, max 1063.8W, std dev 155.68W, divergence 16.39%
2026-08-17 21:30:05.491645: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:30:05.508046: LoadML is_calculating True
2026-08-17 21:30:05.508163: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 21:30:05.517893: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 21:30:05.520995: Optimise levels pass started at 2026-08-17 21:30:05
2026-08-17 21:30:05.521069: Optimise all windows, total charge 24 export 1
2026-08-17 21:30:09.382326: >> Region optimisation pass width 960 gives best_metric 401.89p, best_cost 423.17p, best_cycle 47.43kWh, best_import 32.75kWh
2026-08-17 21:30:09.669334: >> Region optimisation pass width 480 gives best_metric 401.89p, best_cost 423.17p, best_cycle 47.43kWh, best_import 32.75kWh
2026-08-17 21:30:10.265740: >> Region optimisation pass width 240 gives best_metric 401.89p, best_cost 423.17p, best_cycle 47.43kWh, best_import 32.75kWh
2026-08-17 21:30:11.917424: >> Region optimisation pass width 120 gives best_metric 401.16p, best_cost 413.75p, best_cycle 48.66kWh, best_import 31.58kWh
2026-08-17 21:30:11.917695: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 21:30:11.917821: Optimise levels pass ended at 2026-08-17 21:30:11, duration 6.4 seconds tried 70 combinations
2026-08-17 21:30:11.917931: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 401.16p, best_keep 0kWh, best_cycle 48.66kWh, best_carbon 0kg, best_import 31.58kWh
2026-08-17 21:30:11.937575: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 21:30:21.395513: Tweak plan optimisation started metric 271.98p, cost 283.99p
2026-08-17 21:30:22.058889: Tweak optimisation finished metric 271.98p, cost 283.99p, metric_keep 0kWh, cycle 27.21kWh, carbon 0kg, import 15.36kWh, changed 8 window(s)
2026-08-17 21:30:22.085827: Swap charge optimisation started metric 271.98p, cost 283.99p, min_improvement_swap 0.1p
2026-08-17 21:30:22.855022: Swap charge optimisation finished metric 271.98p, cost 283.99p
2026-08-17 21:30:23.077745: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 271.01p -> 270.77p, plan now metric 279.01p, cost 281.01p, cycle 27.59kWh, import 14.98kWh
2026-08-17 21:30:23.099202: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:30:23.099740: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:30:23.099982: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:30:23.100224: Filtered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:30:23.134545: Previous plan best metric is 270.05 (cost 280.39) and new plan best metric is 271.98 (cost 283.99)
2026-08-17 21:30:23.134687: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 21:30:23.134888: Plan valid is now true after recompute was False
2026-08-17 21:30:23.157327: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 613.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.43kWh, PV 0.0kWh
2026-08-17 21:30:23.332053: Battery has 5.67 hours left - now at 6.45kWh
2026-08-17 21:30:23.421916: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 634.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 30.28kWh, PV 0.0kWh
2026-08-17 21:30:23.545494: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 337.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.28kWh, PV 0.0kWh
2026-08-17 21:30:23.720094: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 325.02p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.43kWh, PV 0.0kWh
2026-08-17 21:30:23.720202: Saving plan best values to HA entities
2026-08-17 21:30:23.992729: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:30:24.001356: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:30:24.016473: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.66kWh, house 0.0kWh, export 0.0kWh, metric 325.02p, metric10 337.71p
2026-08-17 21:30:24.147569: Marginal costs baseline metric (no standing charge): 278.3856
2026-08-17 21:30:24.519712: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 21:30:24.675944: Rate array import [{'start': 1290, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1290, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:30:24.677173: - Your estimated bill for today is £1.85 and tomorrow is £1.64
2026-08-17 21:30:24.677222: - Import rates are very expensive (33.8p) for the next 2 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:30:24.677245: - The battery is currently at 40% and is in eco mode for the next 2 hours.
2026-08-17 21:30:24.677264: - For the next 48 hours there will be no solar generation.
2026-08-17 21:30:24.677281: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:30:24.677373: - Your next charge slot will be in 2 hours where import rates will be cheap (8.0p).
2026-08-17 21:30:24.677405:
2026-08-17 21:30:24.720914: Plan calculation took 19.29 seconds
2026-08-17 21:30:24.721311: Inverter 0: Type SK Sunsynk
2026-08-17 21:30:24.721378: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:30:24.721727: Reserve min: 7%, battery_min: 7%
2026-08-17 21:30:24.721886: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:30:24.722261: Inverter 0 SoC: 6.4kW 40%, current charge rate 5000W, current discharge rate 5250W, current battery power 924W, current battery voltage 51.2V, grid power -53W, load power 981W, PV Power 0W
2026-08-17 21:30:24.722548: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:30:24.722758: Inverter 0 scheduled charge enable is False
2026-08-17 21:30:24.723167: Inverter 0 charge windows currently []
2026-08-17 21:30:24.723272: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:30:24.723526: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:30:24.723594: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:30:24.723781: Inverter 0 scheduled discharge enable is False
2026-08-17 21:30:24.724091: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:30:24.724146: Inverter 0 discharge windows currently []
2026-08-17 21:30:24.724173: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:30:24.724243: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:30:24.724296: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:30:24.810253: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 40%, target 100%
2026-08-17 21:30:24.810417: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:30:24.810500: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:30:24.810717: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:30:24.810805: No export window planned
2026-08-17 21:30:24.810931: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:30:24.810975: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:30:24.811138: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:30:24.811308: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:30:24.811369: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:30:24.811428: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:30:24.811545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.811598: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.811636: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.811674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.811717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.811753: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.811789: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.811984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.812045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.812167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.812219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.812329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.812381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.812504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:30:24.812550: Inverter 0 count register writes 0
2026-08-17 21:30:24.844929: Total inverter register writes now 861
2026-08-17 21:30:24.893389: Info: Completed run status Demand
2026-08-17 21:30:24.902607: Info: record_status Demand
2026-08-17 21:30:24.912550: Saved current settings to /config/predbat_config.json
2026-08-17 21:30:24.912796: Compare, best tariff: current metric 104.68p
2026-08-17 21:30:26.005900: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0146 val_mae=0.0044 kWh val_bias=-0.0012 kWh (-2.8%) combined=0.0029 kWh ema_combined=0.0032 kWh
2026-08-17 21:30:41.523340: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0143 val_mae=0.0039 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0023 kWh ema_combined=0.0029 kWh
2026-08-17 21:30:56.259143: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0108 val_mae=0.0036 kWh val_bias=-0.0008 kWh (-1.9%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-17 21:31:04.094035: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:31:04.094290: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:31:04.094350: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:31:04.094927: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:31:04.095063: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:31:04.095127: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:31:04.095355: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:31:10.079872: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0107 val_mae=0.0031 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-17 21:31:24.472161: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0095 val_mae=0.0032 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-17 21:31:39.599659: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0088 val_mae=0.0028 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-17 21:31:55.792843: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0086 val_mae=0.0033 kWh val_bias=+0.0011 kWh (+2.5%) combined=0.0031 kWh ema_combined=0.0024 kWh
2026-08-17 21:32:10.010717: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0083 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-17 21:32:23.893610: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0079 val_mae=0.0030 kWh val_bias=+0.0006 kWh (+1.4%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-17 21:32:38.504966: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0077 val_mae=0.0029 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-17 21:32:54.927519: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0072 val_mae=0.0028 kWh val_bias=-0.0010 kWh (-2.4%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-17 21:33:04.515230: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:33:04.515523: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:33:04.515596: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:33:04.515788: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:33:04.515840: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:33:04.515875: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:33:04.515930: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:33:09.846927: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0066 val_mae=0.0025 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-17 21:33:23.484080: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0069 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 21:33:37.953726: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0068 val_mae=0.0025 kWh val_bias=+0.0006 kWh (+1.4%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 21:33:53.827772: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0072 val_mae=0.0025 kWh val_bias=+0.0008 kWh (+1.9%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-17 21:34:08.615441: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0060 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0018 kWh
2026-08-17 21:34:23.853277: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0061 val_mae=0.0023 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-17 21:34:38.324285: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0056 val_mae=0.0024 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-17 21:34:54.737051: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0016 kWh
2026-08-17 21:35:00.904931: --------------- PredBat - update at 2026-08-17 21:35:00+01:00 with clock skew 0 minutes, minutes now 1295
2026-08-17 21:35:00.906646: Saved current settings to /config/predbat_config.json
2026-08-17 21:35:00.906923: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 21:35:00.907125: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:35:00.907335: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:35:00.970025: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:35:00.970161: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:35:00.970331: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:35:00.970927: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:35:00.971052: Predbat mode is set to Control charge & discharge
2026-08-17 21:35:01.384565: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:35:01.384915: Using load_power data to fill gaps in load_today data
2026-08-17 21:35:02.600562: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:35:02.600820: Zero load period starting at 2026-08-17T10:54:00+0100 (641 minutes) for 189 minutes with base value 212.2
2026-08-17 21:35:02.601873: Processing 721 30-minute periods for power integration
2026-08-17 21:35:02.873957: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:35:02.874318: Car charging hold False, threshold 6.0kWh
2026-08-17 21:35:02.874839: Current data so far today: load 11.5kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:35:02.900165: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:35:02.900427: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:35:02.901693: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:35:02.901839: Standing charge is set to 46.63p
2026-08-17 21:35:03.122975: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.123505: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.140264: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.140753: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.141214: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.141631: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.142024: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.142403: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.142799: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:35:03.144474: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:35:03.144787: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:35:03.152493: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:35:03.153348: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:35:03.198215: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:35:03.198423: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:35:03.199742: High export rate found rates in range 99p to -99p
2026-08-17 21:35:03.229267: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:35:03.229495: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:35:03.246750: Battery level now 6.45kWh, -1hr ago 7.35kWh, at midnight 10.49kWh, battery value change in the last hour -6.21p, change today -27.77p, rate_forward 6.87p
2026-08-17 21:35:03.247330: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:35:03.331100: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:35:03.331247: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:35:03.512678: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:35:03.566209: Today's load divergence 95.75%, in-day adjustment 93.18%, damping 0.95x, yesterday 68.37% today 95.96% blend 10.07%
2026-08-17 21:35:03.566349: Today's predicted so far 13.37kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 13.37kWh forecast extra.
2026-08-17 21:35:03.566411: Today's actual load so far 12.74kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 21:35:03.608468: Inverter 0: Type SK Sunsynk
2026-08-17 21:35:03.608573: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:35:03.608803: Reserve min: 7%, battery_min: 7%
2026-08-17 21:35:03.608884: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:35:03.609246: Inverter 0 SoC: 6.3kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 1051W, current battery voltage 51.2V, grid power -54W, load power 1114W, PV Power 0W
2026-08-17 21:35:03.609423: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:35:03.609542: Inverter 0 scheduled charge enable is False
2026-08-17 21:35:03.609587: Inverter 0 charge windows currently []
2026-08-17 21:35:03.609635: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:35:03.609853: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:35:03.609903: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:35:03.609943: Inverter 0 scheduled discharge enable is False
2026-08-17 21:35:03.610071: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:35:03.610110: Inverter 0 discharge windows currently []
2026-08-17 21:35:03.610133: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:35:03.610152: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:35:03.610169: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:35:03.731515: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:35:03.731769: Plan was last updated on 2026-08-17 21:30:00+01:00 and is now 5.0 minutes old
2026-08-17 21:35:03.732121: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:35:03.732352: Best export window [ ]
2026-08-17 21:35:03.733903: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:35:03.738979: Load divergence over 8.0 hours mean 474.91W, min 322.2W, max 1002.6W, std dev 159.7W, divergence 16.81%
2026-08-17 21:35:03.770315: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:35:03.770920: LoadML is_calculating True
2026-08-17 21:35:03.771043: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 21:35:03.820784: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 614.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.54kWh, PV 0.0kWh
2026-08-17 21:35:04.002574: Battery has 5.42 hours left - now at 6.3kWh
2026-08-17 21:35:04.137419: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 636.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.39kWh, PV 0.0kWh
2026-08-17 21:35:04.290690: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 342.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.39kWh, PV 0.0kWh
2026-08-17 21:35:04.421948: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 330.11p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.54kWh, PV 0.0kWh
2026-08-17 21:35:04.422196: Saving plan best values to HA entities
2026-08-17 21:35:04.794330: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:35:04.802435: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:35:04.807888: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.29kWh, house 0.0kWh, export 0.0kWh, metric 330.11p, metric10 342.09p
2026-08-17 21:35:05.043719: Marginal costs baseline metric (no standing charge): 283.4727
2026-08-17 21:35:05.494373: Marginal energy costs matrix computed: min=8.0 max=32.62
2026-08-17 21:35:05.649589: Rate array import [{'start': 1295, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1295, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:35:05.650506: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 21:35:05.650564: - Import rates are very expensive (33.8p) for the next 1 hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:35:05.650593: - The battery is currently at 39% and is in eco mode for the next 1 hours.
2026-08-17 21:35:05.650663: - For the next 48 hours there will be no solar generation.
2026-08-17 21:35:05.650692: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:35:05.650716: - Your next charge slot will be in 1 hours where import rates will be cheap (8.0p).
2026-08-17 21:35:05.650741:
2026-08-17 21:35:05.723116: Plan calculation took 1.99 seconds
2026-08-17 21:35:05.728565: No high rate period found
2026-08-17 21:35:05.818136: Import threshold used for optimisation was 8.0p
2026-08-17 21:35:05.954882: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:35:05.967044: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-17 21:35:05.967475: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:35:05.967741: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:35:05.968104: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:35:05.968282: No export window planned
2026-08-17 21:35:05.968643: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:35:05.968814: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:35:05.969298: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:35:05.969699: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:35:05.969888: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:35:05.970179: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:35:05.970430: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.970672: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.970826: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.970973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.971119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.971259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.971430: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.971779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.972043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.972268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.972590: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.972879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.973130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.973409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:35:05.973687: Inverter 0 count register writes 0
2026-08-17 21:35:06.023020: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 21:35:06.031259: Total inverter register writes now 861
2026-08-17 21:35:06.077876: Info: Completed run status Demand
2026-08-17 21:35:06.086537: Info: record_status Demand
2026-08-17 21:35:06.095732: Saved current settings to /config/predbat_config.json
2026-08-17 21:35:06.096124: Compare, best tariff: current metric 104.68p
2026-08-17 21:35:14.716187: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0061 val_mae=0.0024 kWh val_bias=+0.0006 kWh (+1.5%) combined=0.0021 kWh ema_combined=0.0017 kWh
2026-08-17 21:35:29.137433: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 21:35:43.670945: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0059 val_mae=0.0023 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 21:35:49.255311: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:35:49.255651: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:35:49.255704: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:35:49.255870: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:35:49.255943: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:35:49.256091: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:35:49.256215: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:35:59.116422: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0055 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 21:36:13.954615: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0057 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 21:36:28.186685: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0015 kWh ema_combined=0.0015 kWh
2026-08-17 21:36:28.192074: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0005 kWh (-1.1%)
2026-08-17 21:36:28.192213: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0005 kWh (-1.1%)
2026-08-17 21:36:29.150281: ML Predictor: AR rollout over holdout: ar_mae=0.0025 kWh ar_bias=-0.0005 kWh (-1.1%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 21:36:29.154619: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0023 kWh
2026-08-17 21:36:29.154810: ML Predictor: Curriculum final pass 5/5: full dataset (59.3 days)
2026-08-17 21:36:29.154959: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 21:36:29.801885: ML Predictor: Creating dataset with 1423 hours of training data, 48 hours validation
2026-08-17 21:36:34.580893: ML Predictor: Created 16790 training samples, 576 validation samples
2026-08-17 21:36:34.638868: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7070 std=4.5797) import_rate(mean=16.6860 std=8.3912) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1946 std=0.5281)
2026-08-17 21:36:34.733476: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 21:36:34.748518: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 21:36:34.774105: ML Predictor: Baseline (pre-finetune) val_mae=0.0034 kWh val_bias=-0.0013 kWh
2026-08-17 21:36:48.554521: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0083 val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-17 21:37:03.284166: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0127 val_mae=0.0033 kWh val_bias=-0.0016 kWh (-3.6%) combined=0.0027 kWh ema_combined=0.0021 kWh
2026-08-17 21:37:16.851188: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0120 val_mae=0.0033 kWh val_bias=+0.0007 kWh (+1.5%) combined=0.0025 kWh ema_combined=0.0023 kWh
2026-08-17 21:37:31.105009: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0120 val_mae=0.0035 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-17 21:37:45.290649: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0127 val_mae=0.0036 kWh val_bias=-0.0018 kWh (-3.9%) combined=0.0033 kWh ema_combined=0.0026 kWh
2026-08-17 21:37:49.625970: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:37:49.626231: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:37:49.626283: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:37:49.626448: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:37:49.626494: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:37:49.626523: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:37:49.626548: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:37:58.733054: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0099 val_mae=0.0033 kWh val_bias=-0.0011 kWh (-2.4%) combined=0.0027 kWh ema_combined=0.0026 kWh
2026-08-17 21:38:13.869460: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0100 val_mae=0.0026 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0023 kWh
2026-08-17 21:38:27.576430: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0101 val_mae=0.0032 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-17 21:38:42.073258: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0092 val_mae=0.0027 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-17 21:38:57.550595: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0087 val_mae=0.0027 kWh val_bias=+0.0007 kWh (+1.6%) combined=0.0022 kWh ema_combined=0.0021 kWh
2026-08-17 21:39:13.682736: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0077 val_mae=0.0024 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 21:39:13.682889: ML Predictor: Early stopping at epoch 11
2026-08-17 21:39:13.684382: ML Predictor: Restored best weights from epoch with val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 21:39:13.684548: ML Predictor: Training complete, final val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 21:39:14.801355: ML Predictor: AR rollout over holdout: ar_mae=0.0040 kWh ar_bias=-0.0001 kWh (-0.2%) [drift vs teacher-forced: +0.0007 kWh]
2026-08-17 21:39:14.806762: ML Predictor: Curriculum training complete, final val_mae=0.0033 kWh
2026-08-17 21:39:14.817858: ML Component: Training successful, val_mae=0.0033 kWh
2026-08-17 21:39:14.951300: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-17 21:39:14.955655: ML Component: Generating predictions load data age 59.0 days, 17079 data points
2026-08-17 21:39:15.107003: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.1122 max_dow {0: 0.08633055561814043, 1: 0.09851874950341881, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-17 21:39:15.542671: ML Component: Generated 576 predictions (total 31.06 kWh over 48h)
2026-08-17 21:39:15.580190: ML Component: Prediction cycle completed
2026-08-17 21:39:15.699198: ML Component: Saved 17079 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 21:40:00.486164: --------------- PredBat - update at 2026-08-17 21:40:00+01:00 with clock skew 0 minutes, minutes now 1300
2026-08-17 21:40:00.487169: Saved current settings to /config/predbat_config.json
2026-08-17 21:40:00.487324: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 21:40:00.487423: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:40:00.487531: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:40:00.509445: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:40:00.509564: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:40:00.509718: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:40:00.510294: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:40:00.510449: Predbat mode is set to Control charge & discharge
2026-08-17 21:40:00.686889: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:40:00.687011: Using load_power data to fill gaps in load_today data
2026-08-17 21:40:01.404094: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:40:01.404262: Zero load period starting at 2026-08-17T10:54:00+0100 (646 minutes) for 189 minutes with base value 212.175
2026-08-17 21:40:01.404796: Processing 721 30-minute periods for power integration
2026-08-17 21:40:01.580862: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:40:01.581029: Car charging hold False, threshold 6.0kWh
2026-08-17 21:40:01.581107: Current data so far today: load 11.7kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:40:01.600629: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:40:01.600757: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:40:01.601497: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:40:01.601569: Standing charge is set to 46.63p
2026-08-17 21:40:01.677293: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.677498: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.677641: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.677809: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.677954: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.678121: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.678263: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.678401: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.678533: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:40:01.679398: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:40:01.679482: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:40:01.683977: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:40:01.684214: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:40:01.718865: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:40:01.718959: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:40:01.720120: High export rate found rates in range 99p to -99p
2026-08-17 21:40:01.743597: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:40:01.743716: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:40:01.754292: Battery level now 6.3kWh, -1hr ago 7.2kWh, at midnight 10.49kWh, battery value change in the last hour -6.21p, change today -28.81p, rate_forward 6.87p
2026-08-17 21:40:01.754578: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 1.05kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:40:01.807496: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:40:01.807655: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:40:01.890841: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:40:01.921000: Today's load divergence 96.87%, in-day adjustment 94.24%, damping 0.95x, yesterday 68.37% today 97.02% blend 9.72%
2026-08-17 21:40:01.921088: Today's predicted so far 13.38kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 13.38kWh forecast extra.
2026-08-17 21:40:01.921114: Today's actual load so far 12.91kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 21:40:01.956535: Inverter 0: Type SK Sunsynk
2026-08-17 21:40:01.956635: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:40:01.956865: Reserve min: 7%, battery_min: 7%
2026-08-17 21:40:01.956964: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:40:01.957284: Inverter 0 SoC: 6.24kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 985W, current battery voltage 51.2V, grid power -54W, load power 1047W, PV Power 0W
2026-08-17 21:40:01.957457: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:40:01.957563: Inverter 0 scheduled charge enable is False
2026-08-17 21:40:01.957616: Inverter 0 charge windows currently []
2026-08-17 21:40:01.957670: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:40:01.957838: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:40:01.957889: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:40:01.957939: Inverter 0 scheduled discharge enable is False
2026-08-17 21:40:01.958147: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:40:01.958192: Inverter 0 discharge windows currently []
2026-08-17 21:40:01.958234: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:40:01.958270: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:40:01.958288: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:40:02.011347: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:40:02.011434: Plan was last updated on 2026-08-17 21:30:00+01:00 and is now 10.0 minutes old
2026-08-17 21:40:02.011607: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:40:02.011642: Best export window [ ]
2026-08-17 21:40:02.012331: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:40:02.014789: Load divergence over 8.0 hours mean 473.39W, min 342.6W, max 1039.2W, std dev 161.59W, divergence 17.07%
2026-08-17 21:40:02.030185: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:40:02.030276: LoadML is_calculating False
2026-08-17 21:40:02.030330: Creating pool of 12 processes to match your CPU count
2026-08-17 21:40:02.135545: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 616.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.81kWh, PV 0.0kWh
2026-08-17 21:40:02.253819: Battery has 5.25 hours left - now at 6.24kWh
2026-08-17 21:40:02.330991: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 637.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.67kWh, PV 0.0kWh
2026-08-17 21:40:02.414143: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 345.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.67kWh, PV 0.0kWh
2026-08-17 21:40:02.495102: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 334.53p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.81kWh, PV 0.0kWh
2026-08-17 21:40:02.495190: Saving plan best values to HA entities
2026-08-17 21:40:02.678686: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:40:02.686532: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:40:02.693413: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.84kWh, house 0.0kWh, export 0.0kWh, metric 334.53p, metric10 345.88p
2026-08-17 21:40:02.774521: Marginal costs baseline metric (no standing charge): 287.894
2026-08-17 21:40:03.036530: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 21:40:03.103356: Rate array import [{'start': 1300, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1300, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:40:03.104094: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 21:40:03.104151: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:40:03.104175: - The battery is currently at 39% and is in eco mode for the next 1 and three quarters hours.
2026-08-17 21:40:03.104194: - For the next 48 hours there will be no solar generation.
2026-08-17 21:40:03.104211: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:40:03.104231: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 21:40:03.104267:
2026-08-17 21:40:03.151297: Plan calculation took 1.14 seconds
2026-08-17 21:40:03.156973: No high rate period found
2026-08-17 21:40:03.204603: Import threshold used for optimisation was 8.0p
2026-08-17 21:40:03.265884: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:40:03.273660: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-17 21:40:03.273814: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:40:03.273928: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:40:03.274176: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:40:03.274272: No export window planned
2026-08-17 21:40:03.274402: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:40:03.274437: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:40:03.274569: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:40:03.274760: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:40:03.274825: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:40:03.274891: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:40:03.274986: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275028: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275059: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275086: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275164: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:03.275433: Inverter 0 count register writes 0
2026-08-17 21:40:03.289989: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 21:40:03.290158: Recompute is saving previous plan...
2026-08-17 21:40:03.291054: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 21:40:03.291102: Best export window [ ]
2026-08-17 21:40:03.292002: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:40:03.295157: Load divergence over 8.0 hours mean 473.39W, min 342.6W, max 1039.2W, std dev 161.59W, divergence 17.07%
2026-08-17 21:40:03.312930: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:40:03.313022: LoadML is_calculating False
2026-08-17 21:40:03.313082: Creating pool of 12 processes to match your CPU count
2026-08-17 21:40:03.398765: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 21:40:03.399603: Optimise levels pass started at 2026-08-17 21:40:03
2026-08-17 21:40:03.399665: Optimise all windows, total charge 24 export 1
2026-08-17 21:40:03.741446: >> Region optimisation pass width 960 gives best_metric 404.04p, best_cost 426.29p, best_cycle 47.33kWh, best_import 33.14kWh
2026-08-17 21:40:03.885899: >> Region optimisation pass width 480 gives best_metric 404.04p, best_cost 426.29p, best_cycle 47.33kWh, best_import 33.14kWh
2026-08-17 21:40:04.140927: >> Region optimisation pass width 240 gives best_metric 404.04p, best_cost 426.29p, best_cycle 47.33kWh, best_import 33.14kWh
2026-08-17 21:40:04.952898: >> Region optimisation pass width 120 gives best_metric 403.22p, best_cost 417.59p, best_cycle 48.47kWh, best_import 32.06kWh
2026-08-17 21:40:04.953178: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 21:40:04.953392: Optimise levels pass ended at 2026-08-17 21:40:04, duration 1.6 seconds tried 71 combinations
2026-08-17 21:40:04.953469: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 403.22p, best_keep 0kWh, best_cycle 48.47kWh, best_carbon 0kg, best_import 32.06kWh
2026-08-17 21:40:04.970582: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 21:40:07.286823: Tweak plan optimisation started metric 272.54p, cost 283.94p
2026-08-17 21:40:07.653728: Tweak optimisation finished metric 272.54p, cost 283.94p, metric_keep 0kWh, cycle 26.36kWh, carbon 0kg, import 15.35kWh, changed 8 window(s)
2026-08-17 21:40:07.673658: Swap charge optimisation started metric 272.54p, cost 283.94p, min_improvement_swap 0.1p
2026-08-17 21:40:08.517797: Swap charge optimisation finished metric 272.54p, cost 283.94p
2026-08-17 21:40:08.647796: Pruned 1 dead plan slot(s) in 9 trial(s), nominal metric 271.55p -> 271.25p, plan now metric 272.98p, cost 281.95p, cycle 26.32kWh, import 15.1kWh
2026-08-17 21:40:08.657794: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:40:08.658119: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:40:08.658331: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:40:08.658499: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:40:08.694706: Previous plan best metric is 271.19 (cost 281.58) and new plan best metric is 272.54 (cost 283.94)
2026-08-17 21:40:08.694915: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 21:40:08.695065: Plan valid is now true after recompute was False
2026-08-17 21:40:08.723452: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.61kWh, PV 0.0kWh
2026-08-17 21:40:08.839062: Battery has 5.25 hours left - now at 6.24kWh
2026-08-17 21:40:08.883677: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.46kWh, PV 0.0kWh
2026-08-17 21:40:08.962363: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 338.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.46kWh, PV 0.0kWh
2026-08-17 21:40:09.054085: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 326.24p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.61kWh, PV 0.0kWh
2026-08-17 21:40:09.054172: Saving plan best values to HA entities
2026-08-17 21:40:09.214329: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:40:09.219582: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:40:09.224959: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.81kWh, house 0.0kWh, export 0.0kWh, metric 326.24p, metric10 338.63p
2026-08-17 21:40:09.313449: Marginal costs baseline metric (no standing charge): 279.6097
2026-08-17 21:40:09.604144: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 21:40:09.693840: Rate array import [{'start': 1300, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1300, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:40:09.694840: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 21:40:09.694914: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:40:09.694949: - The battery is currently at 39% and is in eco mode for the next 1 and three quarters hours.
2026-08-17 21:40:09.694980: - For the next 48 hours there will be no solar generation.
2026-08-17 21:40:09.695008: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:40:09.695034: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 21:40:09.695061:
2026-08-17 21:40:09.768660: Plan calculation took 6.48 seconds
2026-08-17 21:40:09.769041: Inverter 0: Type SK Sunsynk
2026-08-17 21:40:09.769095: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:40:09.769372: Reserve min: 7%, battery_min: 7%
2026-08-17 21:40:09.769478: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:40:09.769888: Inverter 0 SoC: 6.24kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 985W, current battery voltage 51.2V, grid power -54W, load power 1047W, PV Power 0W
2026-08-17 21:40:09.770172: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:40:09.770304: Inverter 0 scheduled charge enable is False
2026-08-17 21:40:09.770357: Inverter 0 charge windows currently []
2026-08-17 21:40:09.770413: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:40:09.770559: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:40:09.770607: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:40:09.770684: Inverter 0 scheduled discharge enable is False
2026-08-17 21:40:09.770880: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:40:09.770926: Inverter 0 discharge windows currently []
2026-08-17 21:40:09.770964: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:40:09.770999: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:40:09.771025: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:40:09.827242: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-17 21:40:09.827416: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:40:09.827492: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:40:09.827664: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:40:09.827764: No export window planned
2026-08-17 21:40:09.827887: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:40:09.827989: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:40:09.828138: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:40:09.828299: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:40:09.828350: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:40:09.828417: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:40:09.828506: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828544: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828576: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828631: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828689: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.828809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.829144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.829191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.829219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.829250: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.829276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:40:09.829299: Inverter 0 count register writes 0
2026-08-17 21:40:09.853520: Total inverter register writes now 861
2026-08-17 21:40:09.888224: Info: Completed run status Demand
2026-08-17 21:40:09.894601: Info: record_status Demand
2026-08-17 21:40:09.901821: Saved current settings to /config/predbat_config.json
2026-08-17 21:40:09.902107: Compare, best tariff: current metric 104.68p
2026-08-17 21:40:49.015360: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:40:49.015712: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:40:49.015856: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:40:49.016172: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:40:49.016240: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:40:49.016277: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:40:49.016309: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:42:49.235155: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:42:49.235448: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:42:49.235510: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:42:49.235730: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:42:49.235787: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:42:49.235825: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:42:49.235853: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:44:49.450202: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:44:49.450464: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:44:49.450511: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:44:49.450692: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:44:49.450738: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:44:49.450763: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:44:49.450805: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:45:00.550826: --------------- PredBat - update at 2026-08-17 21:45:00+01:00 with clock skew 0 minutes, minutes now 1305
2026-08-17 21:45:00.551723: Saved current settings to /config/predbat_config.json
2026-08-17 21:45:00.551846: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 21:45:00.551962: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:45:00.552087: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:45:00.573612: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:45:00.573789: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:45:00.574044: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:45:00.574829: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:45:00.575000: Predbat mode is set to Control charge & discharge
2026-08-17 21:45:00.760091: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:45:00.760226: Using load_power data to fill gaps in load_today data
2026-08-17 21:45:01.587754: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:45:01.587995: Zero load period starting at 2026-08-17T10:54:00+0100 (651 minutes) for 189 minutes with base value 212.15
2026-08-17 21:45:01.588745: Processing 721 30-minute periods for power integration
2026-08-17 21:45:01.792464: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:45:01.792590: Car charging hold False, threshold 6.0kWh
2026-08-17 21:45:01.792652: Current data so far today: load 11.8kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:45:01.809466: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:45:01.809577: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:45:01.810322: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:45:01.810394: Standing charge is set to 46.63p
2026-08-17 21:45:01.889336: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.889595: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.889843: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.890057: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.890266: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.890465: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.890679: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.890876: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.891073: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:45:01.892125: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:45:01.892244: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:45:01.896790: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:45:01.897180: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:45:01.931856: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:45:01.931973: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:45:01.933347: High export rate found rates in range 99p to -99p
2026-08-17 21:45:01.957288: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:45:01.957418: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:45:01.968294: Battery level now 6.24kWh, -1hr ago 7.2kWh, at midnight 10.49kWh, battery value change in the last hour -6.6p, change today -29.2p, rate_forward 6.87p
2026-08-17 21:45:01.968732: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:45:02.029155: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:45:02.029325: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:45:02.128007: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:45:02.165513: Today's load divergence 97.37%, in-day adjustment 94.77%, damping 0.95x, yesterday 68.37% today 97.5% blend 9.38%
2026-08-17 21:45:02.165620: Today's predicted so far 13.39kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 13.39kWh forecast extra.
2026-08-17 21:45:02.165686: Today's actual load so far 12.99kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 21:45:02.196945: Inverter 0: Type SK Sunsynk
2026-08-17 21:45:02.197052: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:45:02.197294: Reserve min: 7%, battery_min: 7%
2026-08-17 21:45:02.197403: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:45:02.197777: Inverter 0 SoC: 6.24kW 39%, current charge rate 5000W, current discharge rate 5250W, current battery power 987W, current battery voltage 51.2V, grid power -55W, load power 1049W, PV Power 0W
2026-08-17 21:45:02.197992: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:45:02.198119: Inverter 0 scheduled charge enable is False
2026-08-17 21:45:02.198176: Inverter 0 charge windows currently []
2026-08-17 21:45:02.198227: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:45:02.198394: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:45:02.198444: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:45:02.198512: Inverter 0 scheduled discharge enable is False
2026-08-17 21:45:02.198716: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:45:02.198760: Inverter 0 discharge windows currently []
2026-08-17 21:45:02.198786: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:45:02.198827: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:45:02.198869: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:45:02.255660: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:45:02.255749: Plan was last updated on 2026-08-17 21:40:00+01:00 and is now 5.0 minutes old
2026-08-17 21:45:02.255946: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:45:02.255982: Best export window [ ]
2026-08-17 21:45:02.256651: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:45:02.259107: Load divergence over 8.0 hours mean 471.89W, min 331.2W, max 1005.0W, std dev 169.35W, divergence 17.94%
2026-08-17 21:45:02.274492: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:45:02.274587: LoadML is_calculating False
2026-08-17 21:45:02.274657: Creating pool of 12 processes to match your CPU count
2026-08-17 21:45:02.387214: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 615.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.78kWh, PV 0.0kWh
2026-08-17 21:45:02.499593: Battery has 5.25 hours left - now at 6.24kWh
2026-08-17 21:45:02.544743: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 636.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.64kWh, PV 0.0kWh
2026-08-17 21:45:02.615179: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 342.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 30.64kWh, PV 0.0kWh
2026-08-17 21:45:02.683420: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 330.0p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.78kWh, PV 0.0kWh
2026-08-17 21:45:02.683500: Saving plan best values to HA entities
2026-08-17 21:45:02.865160: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:45:02.870217: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 21:45:02.875493: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.28kWh, house 0.0kWh, export 0.0kWh, metric 330.0p, metric10 342.24p
2026-08-17 21:45:02.950151: Marginal costs baseline metric (no standing charge): 283.3644
2026-08-17 21:45:03.209800: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 21:45:03.278473: Rate array import [{'start': 1305, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1305, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:45:03.279196: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 21:45:03.279281: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:45:03.279307: - The battery is currently at 39% and is in eco mode for the next 1 and three quarters hours.
2026-08-17 21:45:03.279326: - For the next 48 hours there will be no solar generation.
2026-08-17 21:45:03.279343: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:45:03.279366: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 21:45:03.279389:
2026-08-17 21:45:03.328293: Plan calculation took 1.07 seconds
2026-08-17 21:45:03.333176: No high rate period found
2026-08-17 21:45:03.382236: Import threshold used for optimisation was 8.0p
2026-08-17 21:45:03.432615: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:45:03.438094: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 39%, target 100%
2026-08-17 21:45:03.438207: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:45:03.438296: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:45:03.438504: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:45:03.438585: No export window planned
2026-08-17 21:45:03.438706: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:45:03.438738: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:45:03.438846: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:45:03.438994: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:45:03.439044: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:45:03.439106: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:45:03.439228: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439300: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439327: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439399: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439423: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439605: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:45:03.439621: Inverter 0 count register writes 0
2026-08-17 21:45:03.455096: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 21:45:03.460333: Total inverter register writes now 861
2026-08-17 21:45:03.493989: Info: Completed run status Demand
2026-08-17 21:45:03.500079: Info: record_status Demand
2026-08-17 21:45:03.506220: Saved current settings to /config/predbat_config.json
2026-08-17 21:45:03.506531: Compare, best tariff: current metric 104.68p
2026-08-17 21:45:34.611054: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:45:34.611346: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:45:34.611401: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:45:34.611583: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:45:34.611646: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:45:34.611739: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:45:34.611777: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:47:48.849604: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:47:48.849838: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:47:48.849872: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:47:48.850002: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:47:48.850033: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:47:48.850053: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:47:48.850071: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:49:49.075057: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:49:49.075282: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:49:49.075342: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:49:49.075512: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:49:49.075571: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:49:49.075596: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:49:49.075614: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:50:00.174049: --------------- PredBat - update at 2026-08-17 21:50:00+01:00 with clock skew 0 minutes, minutes now 1310
2026-08-17 21:50:00.174852: Saved current settings to /config/predbat_config.json
2026-08-17 21:50:00.174966: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 21:50:00.175050: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:50:00.175159: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:50:00.197069: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:50:00.197253: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:50:00.197556: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:50:00.198183: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:50:00.198292: Predbat mode is set to Control charge & discharge
2026-08-17 21:50:00.371120: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:50:00.371241: Using load_power data to fill gaps in load_today data
2026-08-17 21:50:01.166913: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:50:01.167112: Zero load period starting at 2026-08-17T10:54:00+0100 (656 minutes) for 189 minutes with base value 212.125
2026-08-17 21:50:01.167820: Processing 721 30-minute periods for power integration
2026-08-17 21:50:01.357101: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:50:01.357223: Car charging hold False, threshold 6.0kWh
2026-08-17 21:50:01.357269: Current data so far today: load 11.9kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:50:01.374193: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:50:01.374295: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:50:01.375046: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:50:01.375117: Standing charge is set to 46.63p
2026-08-17 21:50:01.461961: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.462288: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.462550: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.462781: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.463005: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.463248: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.463469: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.463698: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.463963: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:50:01.465150: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:50:01.465281: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:50:01.470869: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:50:01.471289: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:50:01.514587: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:50:01.514903: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:50:01.516313: High export rate found rates in range 99p to -99p
2026-08-17 21:50:01.545518: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:50:01.545644: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:50:01.556916: Battery level now 6.24kWh, -1hr ago 7.04kWh, at midnight 10.49kWh, battery value change in the last hour -5.5p, change today -29.2p, rate_forward 6.87p
2026-08-17 21:50:01.557301: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.46p, import 0.46p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:50:01.612810: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:50:01.612991: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:50:01.692560: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:50:01.725874: Today's load divergence 97.81%, in-day adjustment 95.25%, damping 0.95x, yesterday 68.37% today 97.92% blend 9.03%
2026-08-17 21:50:01.725967: Today's predicted so far 13.41kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 13.41kWh forecast extra.
2026-08-17 21:50:01.726009: Today's actual load so far 13.08kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 21:50:01.757227: Inverter 0: Type SK Sunsynk
2026-08-17 21:50:01.757316: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:50:01.757495: Reserve min: 7%, battery_min: 7%
2026-08-17 21:50:01.757586: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:50:01.757846: Inverter 0 SoC: 6.13kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power 957W, current battery voltage 51.2V, grid power -55W, load power 1018W, PV Power 0W
2026-08-17 21:50:01.757995: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:50:01.758079: Inverter 0 scheduled charge enable is False
2026-08-17 21:50:01.758114: Inverter 0 charge windows currently []
2026-08-17 21:50:01.758146: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:50:01.758254: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:50:01.758288: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:50:01.758324: Inverter 0 scheduled discharge enable is False
2026-08-17 21:50:01.758475: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:50:01.758512: Inverter 0 discharge windows currently []
2026-08-17 21:50:01.758550: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:50:01.758573: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:50:01.758590: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:50:01.811582: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:50:01.811682: Plan was last updated on 2026-08-17 21:40:00+01:00 and is now 10.0 minutes old
2026-08-17 21:50:01.811893: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:50:01.812068: Best export window [ ]
2026-08-17 21:50:01.812890: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:50:01.816067: Load divergence over 8.0 hours mean 469.04W, min 361.2W, max 977.4W, std dev 159.51W, divergence 17.0%
2026-08-17 21:50:01.830958: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:50:01.831040: LoadML is_calculating False
2026-08-17 21:50:01.831112: Creating pool of 12 processes to match your CPU count
2026-08-17 21:50:01.932662: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 616.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.94kWh, PV 0.0kWh
2026-08-17 21:50:02.041822: Battery has 5.08 hours left - now at 6.13kWh
2026-08-17 21:50:02.089236: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 637.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.79kWh, PV 0.0kWh
2026-08-17 21:50:02.174477: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 346.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.79kWh, PV 0.0kWh
2026-08-17 21:50:02.266917: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 334.77p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.94kWh, PV 0.0kWh
2026-08-17 21:50:02.266997: Saving plan best values to HA entities
2026-08-17 21:50:02.421847: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:50:02.428649: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:50:02.434395: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.87kWh, house 0.0kWh, export 0.0kWh, metric 334.77p, metric10 346.16p
2026-08-17 21:50:02.506419: Marginal costs baseline metric (no standing charge): 288.1381
2026-08-17 21:50:02.773690: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 21:50:02.841634: Rate array import [{'start': 1310, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1310, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:50:02.842337: - Your estimated bill for today is £1.86 and tomorrow is £1.66
2026-08-17 21:50:02.842386: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:50:02.842411: - The battery is currently at 38% and is in eco mode for the next 1 and three quarters hours.
2026-08-17 21:50:02.842452: - For the next 48 hours there will be no solar generation.
2026-08-17 21:50:02.842478: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:50:02.842505: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 21:50:02.842562:
2026-08-17 21:50:02.889326: Plan calculation took 1.08 seconds
2026-08-17 21:50:02.893296: No high rate period found
2026-08-17 21:50:02.938033: Import threshold used for optimisation was 8.0p
2026-08-17 21:50:02.985114: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:50:02.989845: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-17 21:50:02.989942: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:50:02.990029: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:50:02.990232: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:50:02.990311: No export window planned
2026-08-17 21:50:02.990422: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:50:02.990465: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:50:02.990596: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:50:02.990783: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:50:02.990883: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:50:02.990971: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:50:02.991090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991142: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991231: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991268: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991315: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991681: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:02.991702: Inverter 0 count register writes 0
2026-08-17 21:50:03.004950: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 21:50:03.005097: Recompute is saving previous plan...
2026-08-17 21:50:03.005805: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 21:50:03.005847: Best export window [ ]
2026-08-17 21:50:03.006548: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:50:03.009141: Load divergence over 8.0 hours mean 469.04W, min 361.2W, max 977.4W, std dev 159.51W, divergence 17.0%
2026-08-17 21:50:03.027418: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:50:03.027504: LoadML is_calculating False
2026-08-17 21:50:03.027570: Creating pool of 12 processes to match your CPU count
2026-08-17 21:50:03.100393: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 21:50:03.101065: Optimise levels pass started at 2026-08-17 21:50:03
2026-08-17 21:50:03.101119: Optimise all windows, total charge 24 export 1
2026-08-17 21:50:03.474733: >> Region optimisation pass width 960 gives best_metric 405.02p, best_cost 426.57p, best_cycle 47.39kWh, best_import 33.18kWh
2026-08-17 21:50:03.583579: >> Region optimisation pass width 480 gives best_metric 405.02p, best_cost 426.57p, best_cycle 47.39kWh, best_import 33.18kWh
2026-08-17 21:50:03.816013: >> Region optimisation pass width 240 gives best_metric 405.02p, best_cost 426.57p, best_cycle 47.39kWh, best_import 33.18kWh
2026-08-17 21:50:04.630789: >> Region optimisation pass width 120 gives best_metric 404.18p, best_cost 417.93p, best_cycle 48.51kWh, best_import 32.1kWh
2026-08-17 21:50:04.631157: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 21:50:04.631242: Optimise levels pass ended at 2026-08-17 21:50:04, duration 1.5 seconds tried 71 combinations
2026-08-17 21:50:04.631308: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 404.18p, best_keep 0kWh, best_cycle 48.51kWh, best_carbon 0kg, best_import 32.1kWh
2026-08-17 21:50:04.650251: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 21:50:07.040273: Tweak plan optimisation started metric 272.79p, cost 284.24p
2026-08-17 21:50:07.363254: Tweak optimisation finished metric 272.78p, cost 284.24p, metric_keep 0kWh, cycle 26.3kWh, carbon 0kg, import 15.39kWh, changed 8 window(s)
2026-08-17 21:50:07.382506: Swap charge optimisation started metric 272.78p, cost 284.24p, min_improvement_swap 0.1p
2026-08-17 21:50:08.234945: Swap charge optimisation finished metric 272.78p, cost 284.24p
2026-08-17 21:50:08.343482: Pruned 1 dead plan slot(s) in 9 trial(s), nominal metric 271.81p -> 271.52p, plan now metric 273.24p, cost 282.23p, cycle 26.28kWh, import 15.14kWh
2026-08-17 21:50:08.353892: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:50:08.354208: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:50:08.354457: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:50:08.354656: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 21:50:08.397446: Previous plan best metric is 271.46 (cost 281.8) and new plan best metric is 272.78 (cost 284.24)
2026-08-17 21:50:08.397683: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 21:50:08.397852: Plan valid is now true after recompute was False
2026-08-17 21:50:08.428427: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.73kWh, PV 0.0kWh
2026-08-17 21:50:08.538439: Battery has 5.08 hours left - now at 6.13kWh
2026-08-17 21:50:08.582715: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.58kWh, PV 0.0kWh
2026-08-17 21:50:08.659157: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 338.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.58kWh, PV 0.0kWh
2026-08-17 21:50:08.740907: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 326.48p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.73kWh, PV 0.0kWh
2026-08-17 21:50:08.741000: Saving plan best values to HA entities
2026-08-17 21:50:08.889860: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:50:08.895109: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:50:08.900438: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.84kWh, house 0.0kWh, export 0.0kWh, metric 326.48p, metric10 338.91p
2026-08-17 21:50:08.996321: Marginal costs baseline metric (no standing charge): 279.8458
2026-08-17 21:50:09.279944: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 21:50:09.352989: Rate array import [{'start': 1310, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1310, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:50:09.353594: - Your estimated bill for today is £1.86 and tomorrow is £1.66
2026-08-17 21:50:09.353642: - Import rates are very expensive (33.8p) for the next 1 and three quarters hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:50:09.353676: - The battery is currently at 38% and is in eco mode for the next 1 and three quarters hours.
2026-08-17 21:50:09.353703: - For the next 48 hours there will be no solar generation.
2026-08-17 21:50:09.353737: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:50:09.353761: - Your next charge slot will be in 1 and three quarters hours where import rates will be cheap (8.0p).
2026-08-17 21:50:09.353775:
2026-08-17 21:50:09.397707: Plan calculation took 6.39 seconds
2026-08-17 21:50:09.398025: Inverter 0: Type SK Sunsynk
2026-08-17 21:50:09.398075: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:50:09.398320: Reserve min: 7%, battery_min: 7%
2026-08-17 21:50:09.398419: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:50:09.398816: Inverter 0 SoC: 6.08kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power 964W, current battery voltage 51.2V, grid power -53W, load power 1022W, PV Power 0W
2026-08-17 21:50:09.399044: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:50:09.399141: Inverter 0 scheduled charge enable is False
2026-08-17 21:50:09.399170: Inverter 0 charge windows currently []
2026-08-17 21:50:09.399199: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:50:09.399305: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:50:09.399343: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:50:09.399382: Inverter 0 scheduled discharge enable is False
2026-08-17 21:50:09.399509: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:50:09.399564: Inverter 0 discharge windows currently []
2026-08-17 21:50:09.399589: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:50:09.399612: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:50:09.399630: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:50:09.455584: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-17 21:50:09.455724: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:50:09.455790: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:50:09.456067: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:50:09.456168: No export window planned
2026-08-17 21:50:09.456274: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:50:09.456308: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:50:09.456444: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:50:09.456617: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:50:09.456670: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:50:09.456726: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:50:09.456822: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.456861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.456889: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.456921: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.456946: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.456970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.456999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457191: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:50:09.457241: Inverter 0 count register writes 0
2026-08-17 21:50:09.483635: Total inverter register writes now 861
2026-08-17 21:50:09.528239: Info: Completed run status Demand
2026-08-17 21:50:09.536493: Info: record_status Demand
2026-08-17 21:50:09.543865: Saved current settings to /config/predbat_config.json
2026-08-17 21:50:09.544152: Compare, best tariff: current metric 104.68p
2026-08-17 21:50:48.664303: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:50:48.664734: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:50:48.664814: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:50:48.664965: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:50:48.665005: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:50:48.665027: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:50:48.665068: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:51:16.399619: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 21:51:17.411270: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:51:17.411438: Zero load period starting at 2026-08-17T10:54:00+0100 (656 minutes) for 189 minutes with base value 408.35
2026-08-17 21:51:17.412055: Processing 1345 30-minute periods for power integration
2026-08-17 21:51:17.497940: ML Component: Car charging hold False, car energy reported load False
2026-08-17 21:51:17.588167: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:51:17.669505: ML Temperature data points: 49091
2026-08-17 21:51:17.906285: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 21:51:17.947683: ML Component: Data fetch completed, load data age 59.0 days, 17086 data points
2026-08-17 21:51:17.947848: ML Component: No training needed, model age is 0.18 hours
2026-08-17 21:51:17.947945: ML Component: Generating predictions load data age 59.0 days, 17086 data points
2026-08-17 21:51:18.108308: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0924 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 21:51:18.676012: ML Component: Generated 576 predictions (total 33.30 kWh over 48h)
2026-08-17 21:51:18.708237: ML Component: Prediction cycle completed
2026-08-17 21:51:18.813744: ML Component: Saved 17086 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 21:52:49.219957: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:52:49.220194: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:52:49.220236: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:52:49.220370: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:52:49.220407: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:52:49.220429: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:52:49.220447: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:54:49.452643: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:54:49.452937: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:54:49.452984: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:54:49.453155: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:54:49.453199: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:54:49.453221: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:54:49.453241: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:55:00.561893: --------------- PredBat - update at 2026-08-17 21:55:00+01:00 with clock skew 0 minutes, minutes now 1315
2026-08-17 21:55:00.562619: Saved current settings to /config/predbat_config.json
2026-08-17 21:55:00.562764: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-17 21:55:00.562903: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 21:55:00.562988: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 21:55:00.582779: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 21:55:00.582913: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 21:55:00.583091: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 21:55:00.583604: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 21:55:00.583723: Predbat mode is set to Control charge & discharge
2026-08-17 21:55:00.742317: Found 21602 load_today datapoints going back 28 days
2026-08-17 21:55:00.742438: Using load_power data to fill gaps in load_today data
2026-08-17 21:55:01.571782: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 21:55:01.572016: Zero load period starting at 2026-08-17T10:54:00+0100 (661 minutes) for 189 minutes with base value 212.1
2026-08-17 21:55:01.572715: Processing 721 30-minute periods for power integration
2026-08-17 21:55:01.777429: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 21:55:01.777577: Car charging hold False, threshold 6.0kWh
2026-08-17 21:55:01.777633: Current data so far today: load 12.0kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 21:55:01.794630: Car 0 using Octopus Intelligent is unplugged
2026-08-17 21:55:01.794736: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 21:55:01.795532: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 21:55:01.795613: Standing charge is set to 46.63p
2026-08-17 21:55:01.893726: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.894036: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.894306: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.894579: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.894832: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.895079: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.895378: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.895706: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.896046: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 21:55:01.898206: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 21:55:01.898387: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 21:55:01.906655: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 21:55:01.907113: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 21:55:01.964023: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 21:55:01.964346: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 21:55:01.965759: High export rate found rates in range 99p to -99p
2026-08-17 21:55:01.996179: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 21:55:01.996308: Car 0 on Octopus Intelligent, no active plan
2026-08-17 21:55:02.007563: Battery level now 6.13kWh, -1hr ago 7.04kWh, at midnight 10.49kWh, battery value change in the last hour -6.27p, change today -29.97p, rate_forward 6.87p
2026-08-17 21:55:02.007975: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.31p, import 0.31p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 21:55:02.070418: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 21:55:02.070654: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 21:55:02.169202: Using weighted-bucket historical load forecast over 14 days
2026-08-17 21:55:02.197958: Today's load divergence 98.23%, in-day adjustment 95.72%, damping 0.95x, yesterday 68.37% today 98.32% blend 8.68%
2026-08-17 21:55:02.198038: Today's predicted so far 13.44kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 13.44kWh forecast extra.
2026-08-17 21:55:02.198064: Today's actual load so far 13.17kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 21:55:02.248370: Inverter 0: Type SK Sunsynk
2026-08-17 21:55:02.248448: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 21:55:02.248629: Reserve min: 7%, battery_min: 7%
2026-08-17 21:55:02.248699: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 21:55:02.248939: Inverter 0 SoC: 5.95kW 37%, current charge rate 5000W, current discharge rate 5250W, current battery power 932W, current battery voltage 51.2V, grid power -54W, load power 991W, PV Power 0W
2026-08-17 21:55:02.249089: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:55:02.249172: Inverter 0 scheduled charge enable is False
2026-08-17 21:55:02.249200: Inverter 0 charge windows currently []
2026-08-17 21:55:02.249225: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 21:55:02.249334: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:55:02.249369: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:55:02.249403: Inverter 0 scheduled discharge enable is False
2026-08-17 21:55:02.249541: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:55:02.249578: Inverter 0 discharge windows currently []
2026-08-17 21:55:02.249601: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:55:02.249619: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:55:02.249636: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:55:02.321687: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 21:55:02.321785: Plan was last updated on 2026-08-17 21:50:00+01:00 and is now 5.0 minutes old
2026-08-17 21:55:02.321985: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 21:55:02.322024: Best export window [ ]
2026-08-17 21:55:02.322781: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 21:55:02.325983: Load divergence over 8.0 hours mean 466.01W, min 339.0W, max 1032.6W, std dev 170.47W, divergence 18.29%
2026-08-17 21:55:02.343285: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 21:55:02.343393: LoadML is_calculating False
2026-08-17 21:55:02.343450: Creating pool of 12 processes to match your CPU count
2026-08-17 21:55:02.457950: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 616.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.9kWh, PV 0.0kWh
2026-08-17 21:55:02.589941: Battery has 4.83 hours left - now at 5.95kWh
2026-08-17 21:55:02.639722: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 637.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.75kWh, PV 0.0kWh
2026-08-17 21:55:02.714316: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 343.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.75kWh, PV 0.0kWh
2026-08-17 21:55:02.781596: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 331.74p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.9kWh, PV 0.0kWh
2026-08-17 21:55:02.781669: Saving plan best values to HA entities
2026-08-17 21:55:02.921913: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 21:55:02.926428: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 21:55:02.931056: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.5kWh, house 0kWh, export 0.0kWh, metric 331.74p, metric10 343.96p
2026-08-17 21:55:03.007550: Marginal costs baseline metric (no standing charge): 285.1074
2026-08-17 21:55:03.276667: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 21:55:03.369734: Rate array import [{'start': 1315, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1315, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 21:55:03.370247: - Your estimated bill for today is £1.86 and tomorrow is £1.67
2026-08-17 21:55:03.370287: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 21:55:03.370305: - The battery is currently at 37% and is in eco mode for the next 1 and a half hours.
2026-08-17 21:55:03.370321: - For the next 48 hours there will be no solar generation.
2026-08-17 21:55:03.370335: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 21:55:03.370348: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-17 21:55:03.370362:
2026-08-17 21:55:03.414071: Plan calculation took 1.09 seconds
2026-08-17 21:55:03.418038: No high rate period found
2026-08-17 21:55:03.466729: Import threshold used for optimisation was 8.0p
2026-08-17 21:55:03.508802: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 21:55:03.513771: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 37%, target 100%
2026-08-17 21:55:03.513882: Inverter 0 disabled charge window while waiting for schedule (now 08-17 21:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 21:55:03.513975: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:55:03.514179: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:55:03.514259: No export window planned
2026-08-17 21:55:03.514365: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 21:55:03.514396: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 21:55:03.514527: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 21:55:03.514682: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 21:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 21:55:03.514734: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 21:55:03.514791: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 21:55:03.514864: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.514896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.514920: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.514940: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.514960: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.514982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515002: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515118: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515187: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 21:55:03.515204: Inverter 0 count register writes 0
2026-08-17 21:55:03.528307: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 21:55:03.532616: Total inverter register writes now 861
2026-08-17 21:55:03.563519: Info: Completed run status Demand
2026-08-17 21:55:03.571130: Info: record_status Demand
2026-08-17 21:55:03.579585: Saved current settings to /config/predbat_config.json
2026-08-17 21:55:03.579967: Compare, best tariff: current metric 104.68p
2026-08-17 21:55:17.377246: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 21:55:17.527845: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 21:55:33.685135: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:55:33.685364: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:55:33.685411: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:55:33.685571: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:55:33.685615: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:55:33.685637: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:55:33.685655: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:56:48.038680: Info: HAHistory: Pruning history data started.
2026-08-17 21:56:48.041769: Info: HAHistory: Pruning history data completed.
2026-08-17 21:57:33.900029: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:57:33.900278: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:57:33.900312: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:57:33.900427: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:57:33.900458: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:57:33.900476: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:57:33.900507: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 21:59:34.123685: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 21:59:34.123984: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 21:59:34.124035: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 21:59:34.124172: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 21:59:34.124210: Note: Inverter does not support discharge freeze - disabled
2026-08-17 21:59:34.124231: Note: Inverter does not support charge freeze - disabled
2026-08-17 21:59:34.124249: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:00:00.229513: --------------- PredBat - update at 2026-08-17 22:00:00+01:00 with clock skew 0 minutes, minutes now 1320
2026-08-17 22:00:00.230530: Saved current settings to /config/predbat_config.json
2026-08-17 22:00:00.230689: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-17 22:00:00.230793: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:00:00.230963: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:00:00.253834: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:00:00.254002: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:00:00.254174: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:00:00.254803: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:00:00.254949: Predbat mode is set to Control charge & discharge
2026-08-17 22:00:00.492816: Found 21602 load_today datapoints going back 27 days
2026-08-17 22:00:00.492953: Using load_power data to fill gaps in load_today data
2026-08-17 22:00:01.309454: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:00:01.309631: Zero load period starting at 2026-08-17T10:54:00+0100 (666 minutes) for 189 minutes with base value 212.075
2026-08-17 22:00:01.310214: Processing 721 30-minute periods for power integration
2026-08-17 22:00:01.477894: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:00:01.478010: Car charging hold False, threshold 6.0kWh
2026-08-17 22:00:01.478049: Current data so far today: load 12.1kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:00:01.496703: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:00:01.496844: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:00:01.497903: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:00:01.497985: Standing charge is set to 46.63p
2026-08-17 22:00:01.611708: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.612015: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.612232: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.612415: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.612623: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.612807: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.612981: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.613148: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.613313: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:00:01.614697: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:00:01.614811: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:00:01.619411: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:00:01.620051: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:00:01.655025: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:00:01.655124: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:00:01.656348: High export rate found rates in range 99p to -99p
2026-08-17 22:00:01.680297: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:00:01.680410: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:00:01.691432: Battery level now 5.95kWh, -1hr ago 7.04kWh, at midnight 10.49kWh, battery value change in the last hour -7.48p, change today -31.18p, rate_forward 6.87p
2026-08-17 22:00:01.691747: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.15p, import 0.15p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:00:01.750279: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:00:01.750534: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:00:01.844440: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:00:01.882196: Today's load divergence 98.12%, in-day adjustment 95.73%, damping 0.95x, yesterday 68.37% today 98.21% blend 8.33%
2026-08-17 22:00:01.882295: Today's predicted so far 13.59kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 13.59kWh forecast extra.
2026-08-17 22:00:01.882328: Today's actual load so far 13.3kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 22:00:01.918467: Inverter 0: Type SK Sunsynk
2026-08-17 22:00:01.918568: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:00:01.918750: Reserve min: 7%, battery_min: 7%
2026-08-17 22:00:01.918827: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:00:01.919079: Inverter 0 SoC: 5.95kW 37%, current charge rate 5000W, current discharge rate 5250W, current battery power 971W, current battery voltage 51.2V, grid power -54W, load power 1031W, PV Power 0W
2026-08-17 22:00:01.919231: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:00:01.919316: Inverter 0 scheduled charge enable is False
2026-08-17 22:00:01.919350: Inverter 0 charge windows currently []
2026-08-17 22:00:01.919377: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:00:01.919486: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:00:01.919548: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:00:01.919586: Inverter 0 scheduled discharge enable is False
2026-08-17 22:00:01.919710: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:00:01.919747: Inverter 0 discharge windows currently []
2026-08-17 22:00:01.919769: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:00:01.919792: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:00:01.919809: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:00:01.982396: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:00:01.982501: Plan was last updated on 2026-08-17 21:50:00+01:00 and is now 10.0 minutes old
2026-08-17 22:00:01.982684: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:00:01.982721: Best export window [ ]
2026-08-17 22:00:01.983384: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:00:01.985908: Load divergence over 8.0 hours mean 461.85W, min 328.8W, max 1063.8W, std dev 155.2W, divergence 16.8%
2026-08-17 22:00:02.002212: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:00:02.002323: LoadML is_calculating False
2026-08-17 22:00:02.002379: Creating pool of 12 processes to match your CPU count
2026-08-17 22:00:02.120758: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 616.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 30.02kWh, PV 0.0kWh
2026-08-17 22:00:02.264869: Battery has 4.83 hours left - now at 5.95kWh
2026-08-17 22:00:02.324823: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 637.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.88kWh, PV 0.0kWh
2026-08-17 22:00:02.409403: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 346.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.88kWh, PV 0.0kWh
2026-08-17 22:00:02.489398: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 335.21p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 30.02kWh, PV 0.0kWh
2026-08-17 22:00:02.489512: Saving plan best values to HA entities
2026-08-17 22:00:02.689543: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:00:02.697168: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:00:02.706040: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.93kWh, house 0.0kWh, export 0.0kWh, metric 335.21p, metric10 346.75p
2026-08-17 22:00:02.810244: Marginal costs baseline metric (no standing charge): 288.5737
2026-08-17 22:00:03.061787: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 22:00:03.131995: Rate array import [{'start': 1320, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1320, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:00:03.132628: - Your estimated bill for today is £1.85 and tomorrow is £1.66
2026-08-17 22:00:03.132671: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:00:03.132694: - The battery is currently at 37% and is in eco mode for the next 1 and a half hours.
2026-08-17 22:00:03.132713: - For the next 48 hours there will be no solar generation.
2026-08-17 22:00:03.132734: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:00:03.132752: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-17 22:00:03.132769:
2026-08-17 22:00:03.187921: Plan calculation took 1.21 seconds
2026-08-17 22:00:03.190922: No high rate period found
2026-08-17 22:00:03.257529: Import threshold used for optimisation was 8.0p
2026-08-17 22:00:03.312034: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:00:03.321183: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 37%, target 100%
2026-08-17 22:00:03.321372: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:00:03.321531: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:00:03.321841: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:00:03.321991: No export window planned
2026-08-17 22:00:03.322183: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:00:03.322250: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:00:03.322422: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:00:03.322662: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:00:03.322751: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:00:03.322866: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:00:03.322992: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323035: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323090: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323133: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323165: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323257: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323434: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:03.323528: Inverter 0 count register writes 0
2026-08-17 22:00:03.344459: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 22:00:03.344704: Recompute is saving previous plan...
2026-08-17 22:00:03.346357: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 22:00:03.346447: Best export window [ ]
2026-08-17 22:00:03.347546: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:00:03.352028: Load divergence over 8.0 hours mean 461.85W, min 328.8W, max 1063.8W, std dev 155.2W, divergence 16.8%
2026-08-17 22:00:03.373738: Calculating data from yesterday for savings calculation
2026-08-17 22:00:03.388629: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 22:00:03.443877: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 22:00:03.459464: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 22:00:03.490658: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 22:00:03.539797: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 22:00:03.626282: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 280.97kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 22:00:03.626433: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 22:00:03.637328: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:00:03.637455: LoadML is_calculating False
2026-08-17 22:00:03.637545: Creating pool of 12 processes to match your CPU count
2026-08-17 22:00:03.731262: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 22:00:03.732348: Optimise levels pass started at 2026-08-17 22:00:03
2026-08-17 22:00:03.732422: Optimise all windows, total charge 24 export 1
2026-08-17 22:00:04.390548: >> Region optimisation pass width 960 gives best_metric 406.39p, best_cost 427.18p, best_cycle 47.46kWh, best_import 33.25kWh
2026-08-17 22:00:04.537890: >> Region optimisation pass width 480 gives best_metric 406.39p, best_cost 427.18p, best_cycle 47.46kWh, best_import 33.25kWh
2026-08-17 22:00:04.838164: >> Region optimisation pass width 240 gives best_metric 406.39p, best_cost 427.18p, best_cycle 47.46kWh, best_import 33.25kWh
2026-08-17 22:00:05.481047: >> Region optimisation pass width 120 gives best_metric 405.72p, best_cost 418.54p, best_cycle 48.58kWh, best_import 32.17kWh
2026-08-17 22:00:05.481462: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 22:00:05.481581: Optimise levels pass ended at 2026-08-17 22:00:05, duration 1.7 seconds tried 68 combinations
2026-08-17 22:00:05.481814: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 405.72p, best_keep 0kWh, best_cycle 48.58kWh, best_carbon 0kg, best_import 32.17kWh
2026-08-17 22:00:05.501934: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 22:00:08.017481: Tweak plan optimisation started metric 273.96p, cost 286.0p
2026-08-17 22:00:08.319643: Tweak optimisation finished metric 273.96p, cost 286.0p, metric_keep 0kWh, cycle 27.17kWh, carbon 0kg, import 15.61kWh, changed 8 window(s)
2026-08-17 22:00:08.343555: Swap charge optimisation started metric 273.96p, cost 286.0p, min_improvement_swap 0.1p
2026-08-17 22:00:09.019866: Swap charge optimisation finished metric 273.96p, cost 286.0p
2026-08-17 22:00:09.111780: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 273.01p -> 272.75p, plan now metric 281.42p, cost 282.21p, cycle 27.73kWh, import 15.13kWh
2026-08-17 22:00:09.121909: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 41%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:00:09.122235: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 41%, 18-08 01:00:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:00:09.122458: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 41%, 18-08 01:00:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:00:09.122647: Filtered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 41%, 18-08 01:00:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:00:09.159218: Previous plan best metric is 272.04 (cost 282.4) and new plan best metric is 273.96 (cost 286.0)
2026-08-17 22:00:09.159426: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 22:00:09.159597: Plan valid is now true after recompute was False
2026-08-17 22:00:09.192594: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 615.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.83kWh, PV 0.0kWh
2026-08-17 22:00:09.302760: Battery has 4.83 hours left - now at 5.95kWh
2026-08-17 22:00:09.355705: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 636.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.68kWh, PV 0.0kWh
2026-08-17 22:00:09.443553: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 339.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.68kWh, PV 0.0kWh
2026-08-17 22:00:09.532661: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 327.02p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.83kWh, PV 0.0kWh
2026-08-17 22:00:09.532755: Saving plan best values to HA entities
2026-08-17 22:00:09.684619: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:00:09.689159: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:00:09.693754: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.91kWh, house 0.0kWh, export 0.0kWh, metric 327.02p, metric10 339.61p
2026-08-17 22:00:09.772533: Marginal costs baseline metric (no standing charge): 280.3911
2026-08-17 22:00:10.081294: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 22:00:10.158767: Rate array import [{'start': 1320, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1320, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:00:10.159394: - Your estimated bill for today is £1.85 and tomorrow is £1.66
2026-08-17 22:00:10.159443: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:00:10.159466: - The battery is currently at 37% and is in eco mode for the next 1 and a half hours.
2026-08-17 22:00:10.159485: - For the next 48 hours there will be no solar generation.
2026-08-17 22:00:10.159526: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:00:10.159550: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-17 22:00:10.159568:
2026-08-17 22:00:10.213851: Plan calculation took 6.87 seconds
2026-08-17 22:00:10.214183: Inverter 0: Type SK Sunsynk
2026-08-17 22:00:10.214239: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:00:10.214455: Reserve min: 7%, battery_min: 7%
2026-08-17 22:00:10.214554: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:00:10.214874: Inverter 0 SoC: 5.95kW 37%, current charge rate 5000W, current discharge rate 5250W, current battery power 971W, current battery voltage 51.2V, grid power -54W, load power 1031W, PV Power 0W
2026-08-17 22:00:10.215133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:00:10.215238: Inverter 0 scheduled charge enable is False
2026-08-17 22:00:10.215274: Inverter 0 charge windows currently []
2026-08-17 22:00:10.215304: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:00:10.215416: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:00:10.215455: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:00:10.215512: Inverter 0 scheduled discharge enable is False
2026-08-17 22:00:10.215657: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:00:10.215695: Inverter 0 discharge windows currently []
2026-08-17 22:00:10.215718: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:00:10.215739: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:00:10.215756: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:00:10.272658: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 37%, target 100%
2026-08-17 22:00:10.272807: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:00:10.272882: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:00:10.273065: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:00:10.273162: No export window planned
2026-08-17 22:00:10.273353: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:00:10.273393: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:00:10.273571: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:00:10.273740: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:00:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:00:10.273792: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:00:10.273859: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:00:10.273947: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.273987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274015: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274041: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274070: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274126: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274256: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:00:10.274429: Inverter 0 count register writes 0
2026-08-17 22:00:10.298971: Total inverter register writes now 861
2026-08-17 22:00:10.333432: Info: Completed run status Demand
2026-08-17 22:00:10.340675: Info: record_status Demand
2026-08-17 22:00:10.355203: Saved current settings to /config/predbat_config.json
2026-08-17 22:00:10.355544: Compare, best tariff: current metric 104.68p
2026-08-17 22:00:49.489057: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:00:49.489324: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:00:49.489371: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:00:49.489572: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:00:49.489619: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:00:49.489642: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:00:49.489666: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:03:03.727672: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:03:03.727948: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:03:03.727988: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:03:03.728140: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:03:03.728178: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:03:03.728200: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:03:03.728218: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:05:00.941684: --------------- PredBat - update at 2026-08-17 22:05:00+01:00 with clock skew 0 minutes, minutes now 1325
2026-08-17 22:05:00.942526: Saved current settings to /config/predbat_config.json
2026-08-17 22:05:00.942685: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-17 22:05:00.942822: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:05:00.942948: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:05:00.962654: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:05:00.962794: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:05:00.962982: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:05:00.963473: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:05:00.963673: Predbat mode is set to Control charge & discharge
2026-08-17 22:05:01.168669: Found 21602 load_today datapoints going back 27 days
2026-08-17 22:05:01.168799: Using load_power data to fill gaps in load_today data
2026-08-17 22:05:01.885709: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:05:01.885906: Zero load period starting at 2026-08-17T10:54:00+0100 (671 minutes) for 189 minutes with base value 212.05
2026-08-17 22:05:01.886499: Processing 721 30-minute periods for power integration
2026-08-17 22:05:02.100908: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:05:02.101436: Car charging hold False, threshold 6.0kWh
2026-08-17 22:05:02.101502: Current data so far today: load 12.2kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:05:02.117031: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:05:02.117133: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:05:02.117813: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:05:02.117892: Standing charge is set to 46.63p
2026-08-17 22:05:02.217716: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.218258: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.218523: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.218755: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.218959: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.219189: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.219394: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.219558: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.219699: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:05:02.221074: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:05:02.221200: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:05:02.226725: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:05:02.227158: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:05:02.269710: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:05:02.269992: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:05:02.271690: High export rate found rates in range 99p to -99p
2026-08-17 22:05:02.297956: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:05:02.298059: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:05:02.308166: Battery level now 5.95kWh, -1hr ago 6.89kWh, at midnight 10.49kWh, battery value change in the last hour -6.43p, change today -31.18p, rate_forward 6.87p
2026-08-17 22:05:02.308481: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 1.1kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:05:02.369753: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:05:02.369908: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:05:02.488891: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:05:02.546727: Today's load divergence 97.98%, in-day adjustment 95.71%, damping 0.95x, yesterday 68.37% today 98.08% blend 7.99%
2026-08-17 22:05:02.546810: Today's predicted so far 13.72kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 13.72kWh forecast extra.
2026-08-17 22:05:02.546837: Today's actual load so far 13.41kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 22:05:02.585592: Inverter 0: Type SK Sunsynk
2026-08-17 22:05:02.585688: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:05:02.585913: Reserve min: 7%, battery_min: 7%
2026-08-17 22:05:02.585996: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:05:02.586296: Inverter 0 SoC: 5.8kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 950W, current battery voltage 51.2V, grid power -49W, load power 1005W, PV Power 0W
2026-08-17 22:05:02.586493: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:05:02.586636: Inverter 0 scheduled charge enable is False
2026-08-17 22:05:02.586681: Inverter 0 charge windows currently []
2026-08-17 22:05:02.586724: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:05:02.586882: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:05:02.586924: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:05:02.587011: Inverter 0 scheduled discharge enable is False
2026-08-17 22:05:02.587197: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:05:02.587243: Inverter 0 discharge windows currently []
2026-08-17 22:05:02.587274: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:05:02.587309: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:05:02.587346: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:05:02.654885: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:05:02.655034: Plan was last updated on 2026-08-17 22:00:00+01:00 and is now 5.0 minutes old
2026-08-17 22:05:02.655263: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:05:02.655304: Best export window [ ]
2026-08-17 22:05:02.656117: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:05:02.659192: Load divergence over 8.0 hours mean 459.82W, min 322.2W, max 1002.6W, std dev 155.4W, divergence 16.9%
2026-08-17 22:05:02.678876: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:05:02.678975: LoadML is_calculating False
2026-08-17 22:05:02.679035: Creating pool of 12 processes to match your CPU count
2026-08-17 22:05:02.800323: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 616.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 29.95kWh, PV 0.0kWh
2026-08-17 22:05:02.926598: Battery has 4.67 hours left - now at 5.8kWh
2026-08-17 22:05:02.980626: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 637.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:30:00, load 30.8kWh, PV 0.0kWh
2026-08-17 22:05:03.067471: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 343.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.8kWh, PV 0.0kWh
2026-08-17 22:05:03.148540: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 331.72p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.95kWh, PV 0.0kWh
2026-08-17 22:05:03.149247: Saving plan best values to HA entities
2026-08-17 22:05:03.322447: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:05:03.327578: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 22:05:03.333301: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.49kWh, house 0.0kWh, export 0.0kWh, metric 331.72p, metric10 343.58p
2026-08-17 22:05:03.410546: Marginal costs baseline metric (no standing charge): 285.087
2026-08-17 22:05:03.711259: Marginal energy costs matrix computed: min=7.33 max=32.62
2026-08-17 22:05:03.792080: Rate array import [{'start': 1325, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1325, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:05:03.792827: - Your estimated bill for today is £1.85 and tomorrow is £1.67
2026-08-17 22:05:03.792881: - Import rates are very expensive (33.8p) for the next 1 and a half hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:05:03.792905: - The battery is currently at 36% and is in eco mode for the next 1 and a half hours.
2026-08-17 22:05:03.792924: - For the next 48 hours there will be no solar generation.
2026-08-17 22:05:03.792941: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:05:03.792960: - Your next charge slot will be in 1 and a half hours where import rates will be cheap (8.0p).
2026-08-17 22:05:03.793005:
2026-08-17 22:05:03.848043: Plan calculation took 1.19 seconds
2026-08-17 22:05:03.851648: No high rate period found
2026-08-17 22:05:03.915751: Import threshold used for optimisation was 8.0p
2026-08-17 22:05:03.972761: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:05:03.981079: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-17 22:05:03.981222: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:05:03.981339: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:05:03.981615: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:05:03.981715: No export window planned
2026-08-17 22:05:03.981867: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:05:03.981908: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:05:03.982042: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:05:03.982221: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:05:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:05:03.982285: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:05:03.982357: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:05:03.982450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982494: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982553: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982584: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982730: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982900: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:05:03.982945: Inverter 0 count register writes 0
2026-08-17 22:05:04.000890: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 22:05:04.007157: Total inverter register writes now 861
2026-08-17 22:05:04.043763: Info: Completed run status Demand
2026-08-17 22:05:04.049737: Info: record_status Demand
2026-08-17 22:05:04.057791: Saved current settings to /config/predbat_config.json
2026-08-17 22:05:04.058093: Compare, best tariff: current metric 104.68p
2026-08-17 22:05:34.166189: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:05:34.166524: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:05:34.166590: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:05:34.166784: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:05:34.166836: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:05:34.166872: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:05:34.166893: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:07:34.408855: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:07:34.409118: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:07:34.409166: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:07:34.409339: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:07:34.409382: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:07:34.409409: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:07:34.409450: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:09:34.625966: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:09:34.626207: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:09:34.626242: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:09:34.626407: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:09:34.626454: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:09:34.626476: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:09:34.626494: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:10:00.746779: --------------- PredBat - update at 2026-08-17 22:10:00+01:00 with clock skew 0 minutes, minutes now 1330
2026-08-17 22:10:00.747534: Saved current settings to /config/predbat_config.json
2026-08-17 22:10:00.747677: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-17 22:10:00.747752: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:10:00.747880: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:10:00.766069: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:10:00.766289: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:10:00.766563: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:10:00.767129: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:10:00.767309: Predbat mode is set to Control charge & discharge
2026-08-17 22:10:00.957475: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:10:00.957624: Using load_power data to fill gaps in load_today data
2026-08-17 22:10:01.791424: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:10:01.791635: Zero load period starting at 2026-08-17T10:54:00+0100 (676 minutes) for 189 minutes with base value 212.025
2026-08-17 22:10:01.792599: Processing 721 30-minute periods for power integration
2026-08-17 22:10:01.994406: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:10:01.994764: Car charging hold False, threshold 6.0kWh
2026-08-17 22:10:01.994821: Current data so far today: load 12.15kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:10:02.018591: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:10:02.018732: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:10:02.019631: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:10:02.019715: Standing charge is set to 46.63p
2026-08-17 22:10:02.114124: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.114335: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.114492: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.114658: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.114799: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.114937: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.115074: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.115208: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.115339: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:10:02.116282: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:10:02.116385: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:10:02.120818: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:10:02.121392: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:10:02.163037: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:10:02.163137: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:10:02.164566: High export rate found rates in range 99p to -99p
2026-08-17 22:10:02.196204: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:10:02.196316: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:10:02.206459: Battery level now 5.8kWh, -1hr ago 6.72kWh, at midnight 10.49kWh, battery value change in the last hour -6.32p, change today -32.22p, rate_forward 6.87p
2026-08-17 22:10:02.206817: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.95kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:10:02.264170: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:10:02.264308: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:10:02.347746: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:10:02.378735: Today's load divergence 97.55%, in-day adjustment 95.43%, damping 0.95x, yesterday 68.37% today 97.67% blend 7.64%
2026-08-17 22:10:02.378825: Today's predicted so far 13.75kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 13.75kWh forecast extra.
2026-08-17 22:10:02.378851: Today's actual load so far 13.38kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 22:10:02.411088: Inverter 0: Type SK Sunsynk
2026-08-17 22:10:02.411181: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:10:02.411402: Reserve min: 7%, battery_min: 7%
2026-08-17 22:10:02.411505: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:10:02.411832: Inverter 0 SoC: 5.8kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 623W, current battery voltage 51.2V, grid power -55W, load power 580W, PV Power 0W
2026-08-17 22:10:02.412051: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:10:02.412165: Inverter 0 scheduled charge enable is False
2026-08-17 22:10:02.412216: Inverter 0 charge windows currently []
2026-08-17 22:10:02.412270: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:10:02.412427: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:10:02.412469: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:10:02.412518: Inverter 0 scheduled discharge enable is False
2026-08-17 22:10:02.412716: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:10:02.412769: Inverter 0 discharge windows currently []
2026-08-17 22:10:02.412812: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:10:02.412847: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:10:02.412890: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:10:02.473709: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:10:02.473806: Plan was last updated on 2026-08-17 22:00:00+01:00 and is now 10.0 minutes old
2026-08-17 22:10:02.474015: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:10:02.474057: Best export window [ ]
2026-08-17 22:10:02.474897: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:10:02.478079: Load divergence over 8.0 hours mean 458.21W, min 294.6W, max 1039.2W, std dev 156.99W, divergence 17.13%
2026-08-17 22:10:02.496685: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:10:02.496809: LoadML is_calculating False
2026-08-17 22:10:02.496868: Creating pool of 12 processes to match your CPU count
2026-08-17 22:10:02.612216: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 616.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.92kWh, PV 0.0kWh
2026-08-17 22:10:02.743097: Battery has 4.67 hours left - now at 5.8kWh
2026-08-17 22:10:02.786771: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 637.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.76kWh, PV 0.0kWh
2026-08-17 22:10:02.869821: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 346.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.76kWh, PV 0.0kWh
2026-08-17 22:10:02.953377: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 335.14p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.92kWh, PV 0.0kWh
2026-08-17 22:10:02.953466: Saving plan best values to HA entities
2026-08-17 22:10:03.115695: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:10:03.120272: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 22:10:03.125142: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.92kWh, house 0.0kWh, export 0.0kWh, metric 335.14p, metric10 346.33p
2026-08-17 22:10:03.195632: Marginal costs baseline metric (no standing charge): 288.505
2026-08-17 22:10:03.410218: Marginal energy costs matrix computed: min=6.67 max=32.6
2026-08-17 22:10:03.476381: Rate array import [{'start': 1330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1330, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:10:03.477021: - Your estimated bill for today is £1.85 and tomorrow is £1.66
2026-08-17 22:10:03.477064: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:10:03.477087: - The battery is currently at 36% and is in eco mode for the next 1 and a quarter hours.
2026-08-17 22:10:03.477106: - For the next 48 hours there will be no solar generation.
2026-08-17 22:10:03.477125: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:10:03.477142: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 22:10:03.477159:
2026-08-17 22:10:03.527763: Plan calculation took 1.05 seconds
2026-08-17 22:10:03.531638: No high rate period found
2026-08-17 22:10:03.590896: Import threshold used for optimisation was 8.0p
2026-08-17 22:10:03.640388: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:10:03.646042: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-17 22:10:03.646172: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:10:03.646269: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:10:03.646508: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:10:03.646614: No export window planned
2026-08-17 22:10:03.646731: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:10:03.646766: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:10:03.646896: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:10:03.647064: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:10:03.647124: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:10:03.647188: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:10:03.647269: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647308: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647336: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647360: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647390: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647441: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647661: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:03.647704: Inverter 0 count register writes 0
2026-08-17 22:10:03.661384: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 22:10:03.661560: Recompute is saving previous plan...
2026-08-17 22:10:03.662257: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 22:10:03.662312: Best export window [ ]
2026-08-17 22:10:03.663019: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:10:03.665634: Load divergence over 8.0 hours mean 458.21W, min 294.6W, max 1039.2W, std dev 156.99W, divergence 17.13%
2026-08-17 22:10:03.680921: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:10:03.681019: LoadML is_calculating False
2026-08-17 22:10:03.681091: Creating pool of 12 processes to match your CPU count
2026-08-17 22:10:03.764201: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 22:10:03.765031: Optimise levels pass started at 2026-08-17 22:10:03
2026-08-17 22:10:03.765081: Optimise all windows, total charge 24 export 1
2026-08-17 22:10:04.131253: >> Region optimisation pass width 960 gives best_metric 407.52p, best_cost 426.9p, best_cycle 47.44kWh, best_import 33.22kWh
2026-08-17 22:10:04.262770: >> Region optimisation pass width 480 gives best_metric 407.52p, best_cost 426.9p, best_cycle 47.44kWh, best_import 33.22kWh
2026-08-17 22:10:04.503571: >> Region optimisation pass width 240 gives best_metric 407.52p, best_cost 426.9p, best_cycle 47.44kWh, best_import 33.22kWh
2026-08-17 22:10:05.293512: >> Region optimisation pass width 120 gives best_metric 406.87p, best_cost 420.41p, best_cycle 48.29kWh, best_import 32.41kWh
2026-08-17 22:10:05.293749: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 22:10:05.293810: Optimise levels pass ended at 2026-08-17 22:10:05, duration 1.5 seconds tried 73 combinations
2026-08-17 22:10:05.293868: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 406.87p, best_keep 0kWh, best_cycle 48.29kWh, best_carbon 0kg, best_import 32.41kWh
2026-08-17 22:10:05.316739: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 22:10:07.598755: Tweak plan optimisation started metric 272.59p, cost 284.48p
2026-08-17 22:10:07.881166: Tweak optimisation finished metric 272.59p, cost 284.48p, metric_keep 0kWh, cycle 25.0kWh, carbon 0kg, import 15.42kWh, changed 8 window(s)
2026-08-17 22:10:07.896333: Swap charge optimisation started metric 272.59p, cost 284.48p, min_improvement_swap 0.1p
2026-08-17 22:10:08.725061: Swap charge optimisation finished metric 272.59p, cost 284.48p
2026-08-17 22:10:08.834020: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:10:08.834476: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:10:08.834788: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:10:08.835037: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:10:08.873058: Previous plan best metric is 271.78 (cost 282.2) and new plan best metric is 272.59 (cost 284.48)
2026-08-17 22:10:08.873270: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 22:10:08.873475: Plan valid is now true after recompute was False
2026-08-17 22:10:08.903765: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.72kWh, PV 0.0kWh
2026-08-17 22:10:09.018187: Battery has 4.67 hours left - now at 5.8kWh
2026-08-17 22:10:09.060992: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.55kWh, PV 0.0kWh
2026-08-17 22:10:09.126800: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 339.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.55kWh, PV 0.0kWh
2026-08-17 22:10:09.195879: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 326.85p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.72kWh, PV 0.0kWh
2026-08-17 22:10:09.196005: Saving plan best values to HA entities
2026-08-17 22:10:09.335848: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:10:09.340588: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 22:10:09.345009: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.88kWh, house 0.0kWh, export 0.0kWh, metric 326.85p, metric10 339.08p
2026-08-17 22:10:09.411762: Marginal costs baseline metric (no standing charge): 280.2207
2026-08-17 22:10:09.633952: Marginal energy costs matrix computed: min=6.67 max=32.6
2026-08-17 22:10:09.710027: Rate array import [{'start': 1330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1330, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:10:09.710898: - Your estimated bill for today is £1.85 and tomorrow is £1.66
2026-08-17 22:10:09.710954: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:10:09.710989: - The battery is currently at 36% and is in eco mode for the next 1 and a quarter hours.
2026-08-17 22:10:09.711034: - For the next 48 hours there will be no solar generation.
2026-08-17 22:10:09.711057: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:10:09.711080: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 22:10:09.711122:
2026-08-17 22:10:09.767539: Plan calculation took 6.11 seconds
2026-08-17 22:10:09.767836: Inverter 0: Type SK Sunsynk
2026-08-17 22:10:09.767879: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:10:09.768138: Reserve min: 7%, battery_min: 7%
2026-08-17 22:10:09.768221: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:10:09.768560: Inverter 0 SoC: 5.8kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 623W, current battery voltage 51.2V, grid power -55W, load power 580W, PV Power 0W
2026-08-17 22:10:09.768784: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:10:09.768882: Inverter 0 scheduled charge enable is False
2026-08-17 22:10:09.768918: Inverter 0 charge windows currently []
2026-08-17 22:10:09.768948: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:10:09.769054: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:10:09.769093: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:10:09.769131: Inverter 0 scheduled discharge enable is False
2026-08-17 22:10:09.769259: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:10:09.769296: Inverter 0 discharge windows currently []
2026-08-17 22:10:09.769319: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:10:09.769341: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:10:09.769358: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:10:09.818358: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-17 22:10:09.818501: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:10:09.818588: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:10:09.818792: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:10:09.818872: No export window planned
2026-08-17 22:10:09.818974: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:10:09.819009: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:10:09.819161: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:10:09.819314: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:10:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:10:09.819366: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:10:09.819430: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:10:09.819513: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819591: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819649: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819679: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819704: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819735: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.819972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.820024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:10:09.820052: Inverter 0 count register writes 0
2026-08-17 22:10:09.840332: Total inverter register writes now 861
2026-08-17 22:10:09.869498: Info: Completed run status Demand
2026-08-17 22:10:09.875593: Info: record_status Demand
2026-08-17 22:10:09.881985: Saved current settings to /config/predbat_config.json
2026-08-17 22:10:09.882244: Compare, best tariff: current metric 104.68p
2026-08-17 22:10:48.990389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:10:48.990642: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:10:48.990685: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:10:48.990814: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:10:48.990851: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:10:48.990873: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:10:48.990890: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:12:49.207528: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:12:49.207776: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:12:49.207809: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:12:49.207967: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:12:49.208031: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:12:49.208054: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:12:49.208072: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:14:49.406849: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:14:49.407073: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:14:49.407134: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:14:49.407270: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:14:49.407308: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:14:49.407328: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:14:49.407346: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:15:00.487296: --------------- PredBat - update at 2026-08-17 22:15:00+01:00 with clock skew 0 minutes, minutes now 1335
2026-08-17 22:15:00.488032: Saved current settings to /config/predbat_config.json
2026-08-17 22:15:00.488151: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-17 22:15:00.488234: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:15:00.488352: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:15:00.505418: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:15:00.505601: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:15:00.505781: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:15:00.506253: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:15:00.506432: Predbat mode is set to Control charge & discharge
2026-08-17 22:15:00.684328: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:15:00.684485: Using load_power data to fill gaps in load_today data
2026-08-17 22:15:01.432560: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:15:01.432747: Zero load period starting at 2026-08-17T10:54:00+0100 (681 minutes) for 189 minutes with base value 212.0
2026-08-17 22:15:01.433308: Processing 721 30-minute periods for power integration
2026-08-17 22:15:01.601859: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:15:01.601999: Car charging hold False, threshold 6.0kWh
2026-08-17 22:15:01.602064: Current data so far today: load 12.2kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:15:01.619006: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:15:01.619127: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:15:01.619961: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:15:01.620064: Standing charge is set to 46.63p
2026-08-17 22:15:01.701127: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.701373: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.701583: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.701775: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.701948: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.702149: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.702325: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.702492: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.702673: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:15:01.703713: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:15:01.703817: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:15:01.709238: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:15:01.709645: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:15:01.754693: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:15:01.754807: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:15:01.756246: High export rate found rates in range 99p to -99p
2026-08-17 22:15:01.786013: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:15:01.786155: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:15:01.796721: Battery level now 5.8kWh, -1hr ago 6.65kWh, at midnight 10.49kWh, battery value change in the last hour -5.83p, change today -32.22p, rate_forward 6.87p
2026-08-17 22:15:01.797019: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:15:01.852592: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:15:01.852769: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:15:01.955399: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:15:01.995090: Today's load divergence 97.71%, in-day adjustment 95.68%, damping 0.95x, yesterday 68.37% today 97.82% blend 7.29%
2026-08-17 22:15:01.995188: Today's predicted so far 13.78kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 13.78kWh forecast extra.
2026-08-17 22:15:01.995221: Today's actual load so far 13.43kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 22:15:02.030150: Inverter 0: Type SK Sunsynk
2026-08-17 22:15:02.030243: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:15:02.030457: Reserve min: 7%, battery_min: 7%
2026-08-17 22:15:02.030569: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:15:02.030826: Inverter 0 SoC: 5.74kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 407W, current battery voltage 51.2V, grid power -55W, load power 468W, PV Power 0W
2026-08-17 22:15:02.030978: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:15:02.031064: Inverter 0 scheduled charge enable is False
2026-08-17 22:15:02.031099: Inverter 0 charge windows currently []
2026-08-17 22:15:02.031126: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:15:02.031233: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:15:02.031268: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:15:02.031304: Inverter 0 scheduled discharge enable is False
2026-08-17 22:15:02.031423: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:15:02.031491: Inverter 0 discharge windows currently []
2026-08-17 22:15:02.031533: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:15:02.031589: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:15:02.031620: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:15:02.090779: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:15:02.090877: Plan was last updated on 2026-08-17 22:10:00+01:00 and is now 5.0 minutes old
2026-08-17 22:15:02.091075: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:15:02.091115: Best export window [ ]
2026-08-17 22:15:02.091941: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:15:02.094390: Load divergence over 8.0 hours mean 456.65W, min 302.4W, max 1005.0W, std dev 164.67W, divergence 18.03%
2026-08-17 22:15:02.109481: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:15:02.109571: LoadML is_calculating False
2026-08-17 22:15:02.109621: Creating pool of 12 processes to match your CPU count
2026-08-17 22:15:02.223623: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 616.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 29.81kWh, PV 0.0kWh
2026-08-17 22:15:02.341477: Battery has 4.58 hours left - now at 5.74kWh
2026-08-17 22:15:02.379311: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 637.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.65kWh, PV 0.0kWh
2026-08-17 22:15:02.448859: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 342.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.65kWh, PV 0.0kWh
2026-08-17 22:15:02.527177: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 330.91p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.81kWh, PV 0.0kWh
2026-08-17 22:15:02.527262: Saving plan best values to HA entities
2026-08-17 22:15:02.681750: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:15:02.686723: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:15:02.691432: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.39kWh, house 0.0kWh, export 0.0kWh, metric 330.91p, metric10 342.96p
2026-08-17 22:15:02.760178: Marginal costs baseline metric (no standing charge): 284.2748
2026-08-17 22:15:02.972370: Marginal energy costs matrix computed: min=6.0 max=32.65
2026-08-17 22:15:03.032587: Rate array import [{'start': 1335, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1335, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:15:03.033125: - Your estimated bill for today is £1.85 and tomorrow is £1.66
2026-08-17 22:15:03.033160: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:15:03.033178: - The battery is currently at 36% and is in eco mode for the next 1 and a quarter hours.
2026-08-17 22:15:03.033193: - For the next 48 hours there will be no solar generation.
2026-08-17 22:15:03.033207: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:15:03.033229: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 22:15:03.033259:
2026-08-17 22:15:03.076354: Plan calculation took 0.99 seconds
2026-08-17 22:15:03.080652: No high rate period found
2026-08-17 22:15:03.126744: Import threshold used for optimisation was 8.0p
2026-08-17 22:15:03.169655: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:15:03.174406: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-17 22:15:03.174556: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:15:03.174656: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:15:03.174870: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:15:03.174944: No export window planned
2026-08-17 22:15:03.175050: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:15:03.175096: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:15:03.175283: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:15:03.175505: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:15:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:15:03.175596: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:15:03.175687: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:15:03.175807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.175861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.175934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.175999: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176044: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:15:03.176527: Inverter 0 count register writes 0
2026-08-17 22:15:03.190885: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 22:15:03.195511: Total inverter register writes now 861
2026-08-17 22:15:03.223829: Info: Completed run status Demand
2026-08-17 22:15:03.228719: Info: record_status Demand
2026-08-17 22:15:03.234443: Saved current settings to /config/predbat_config.json
2026-08-17 22:15:03.234716: Compare, best tariff: current metric 104.68p
2026-08-17 22:15:34.329625: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:15:34.329854: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:15:34.329910: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:15:34.330058: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:15:34.330101: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:15:34.330123: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:15:34.330146: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:17:34.543411: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:17:34.543755: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:17:34.543813: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:17:34.544078: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:17:34.544159: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:17:34.544192: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:17:34.544217: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:19:48.834558: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:19:48.834800: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:19:48.834843: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:19:48.834975: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:19:48.835012: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:19:48.835041: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:19:48.835069: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:20:00.925214: --------------- PredBat - update at 2026-08-17 22:20:00+01:00 with clock skew 0 minutes, minutes now 1340
2026-08-17 22:20:00.926014: Saved current settings to /config/predbat_config.json
2026-08-17 22:20:00.926153: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-17 22:20:00.926301: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:20:00.926429: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:20:00.944756: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:20:00.944881: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:20:00.945067: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:20:00.945554: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:20:00.945671: Predbat mode is set to Control charge & discharge
2026-08-17 22:20:01.138522: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:20:01.138637: Using load_power data to fill gaps in load_today data
2026-08-17 22:20:01.973360: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:20:01.973558: Zero load period starting at 2026-08-17T10:54:00+0100 (686 minutes) for 189 minutes with base value 211.975
2026-08-17 22:20:01.974291: Processing 721 30-minute periods for power integration
2026-08-17 22:20:02.169323: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:20:02.169443: Car charging hold False, threshold 6.0kWh
2026-08-17 22:20:02.169486: Current data so far today: load 12.25kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:20:02.186300: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:20:02.186408: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:20:02.187211: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:20:02.187285: Standing charge is set to 46.63p
2026-08-17 22:20:02.276041: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.276307: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.276501: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.276686: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.276880: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.277057: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.277232: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.277399: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.277562: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:20:02.278621: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:20:02.278734: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:20:02.284358: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:20:02.284724: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:20:02.329988: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:20:02.330130: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:20:02.331581: High export rate found rates in range 99p to -99p
2026-08-17 22:20:02.361320: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:20:02.361448: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:20:02.374881: Battery level now 5.74kWh, -1hr ago 6.65kWh, at midnight 10.49kWh, battery value change in the last hour -6.27p, change today -32.66p, rate_forward 6.87p
2026-08-17 22:20:02.375245: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:20:02.433587: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:20:02.433770: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:20:02.519199: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:20:02.549790: Today's load divergence 97.62%, in-day adjustment 95.7%, damping 0.95x, yesterday 68.37% today 97.74% blend 6.94%
2026-08-17 22:20:02.549870: Today's predicted so far 13.83kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 13.83kWh forecast extra.
2026-08-17 22:20:02.549896: Today's actual load so far 13.46kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 22:20:02.583786: Inverter 0: Type SK Sunsynk
2026-08-17 22:20:02.583931: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:20:02.584212: Reserve min: 7%, battery_min: 7%
2026-08-17 22:20:02.584333: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:20:02.584662: Inverter 0 SoC: 5.74kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power 582W, current battery voltage 51.2V, grid power -58W, load power 645W, PV Power 0W
2026-08-17 22:20:02.584888: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:20:02.584985: Inverter 0 scheduled charge enable is False
2026-08-17 22:20:02.585014: Inverter 0 charge windows currently []
2026-08-17 22:20:02.585041: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:20:02.585222: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:20:02.585288: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:20:02.585350: Inverter 0 scheduled discharge enable is False
2026-08-17 22:20:02.585553: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:20:02.585597: Inverter 0 discharge windows currently []
2026-08-17 22:20:02.585621: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:20:02.585639: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:20:02.585656: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:20:02.647699: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:20:02.647800: Plan was last updated on 2026-08-17 22:10:00+01:00 and is now 10.0 minutes old
2026-08-17 22:20:02.648124: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:20:02.648177: Best export window [ ]
2026-08-17 22:20:02.649036: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:20:02.652008: Load divergence over 8.0 hours mean 455.11W, min 309.6W, max 977.4W, std dev 155.16W, divergence 17.05%
2026-08-17 22:20:02.670228: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:20:02.670345: LoadML is_calculating False
2026-08-17 22:20:02.670398: Creating pool of 12 processes to match your CPU count
2026-08-17 22:20:02.787784: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 616.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.88kWh, PV 0.0kWh
2026-08-17 22:20:02.907392: Battery has 4.67 hours left - now at 5.74kWh
2026-08-17 22:20:02.950812: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 637.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.72kWh, PV 0.0kWh
2026-08-17 22:20:03.032193: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 345.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.72kWh, PV 0.0kWh
2026-08-17 22:20:03.115336: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 334.4p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.88kWh, PV 0.0kWh
2026-08-17 22:20:03.115422: Saving plan best values to HA entities
2026-08-17 22:20:03.265597: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:20:03.271092: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 22:20:03.277142: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.83kWh, house 0.0kWh, export 0.0kWh, metric 334.4p, metric10 345.61p
2026-08-17 22:20:03.374065: Marginal costs baseline metric (no standing charge): 287.7637
2026-08-17 22:20:03.634963: Marginal energy costs matrix computed: min=7.46 max=32.61
2026-08-17 22:20:03.703324: Rate array import [{'start': 1340, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1340, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:20:03.704022: - Your estimated bill for today is £1.86 and tomorrow is £1.65
2026-08-17 22:20:03.704078: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:20:03.704101: - The battery is currently at 36% and is in eco mode for the next 1 and a quarter hours.
2026-08-17 22:20:03.704121: - For the next 48 hours there will be no solar generation.
2026-08-17 22:20:03.704138: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:20:03.704155: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 22:20:03.704177:
2026-08-17 22:20:03.751650: Plan calculation took 1.10 seconds
2026-08-17 22:20:03.755878: No high rate period found
2026-08-17 22:20:03.815337: Import threshold used for optimisation was 8.0p
2026-08-17 22:20:03.869310: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:20:03.875260: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-17 22:20:03.875398: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:20:03.875492: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:20:03.875808: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:20:03.875943: No export window planned
2026-08-17 22:20:03.876076: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:20:03.876108: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:20:03.876236: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:20:03.876383: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:20:03.876433: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:20:03.876492: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:20:03.876560: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876592: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876615: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876639: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876661: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876680: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876805: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876846: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:03.876931: Inverter 0 count register writes 0
2026-08-17 22:20:03.889873: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 22:20:03.890005: Recompute is saving previous plan...
2026-08-17 22:20:03.890727: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 22:20:03.890784: Best export window [ ]
2026-08-17 22:20:03.891422: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:20:03.894030: Load divergence over 8.0 hours mean 455.11W, min 309.6W, max 977.4W, std dev 155.16W, divergence 17.05%
2026-08-17 22:20:03.908400: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:20:03.908485: LoadML is_calculating False
2026-08-17 22:20:03.908536: Creating pool of 12 processes to match your CPU count
2026-08-17 22:20:03.983622: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 22:20:03.984448: Optimise levels pass started at 2026-08-17 22:20:03
2026-08-17 22:20:03.984500: Optimise all windows, total charge 24 export 1
2026-08-17 22:20:04.305105: >> Region optimisation pass width 960 gives best_metric 407.85p, best_cost 426.2p, best_cycle 47.37kWh, best_import 33.13kWh
2026-08-17 22:20:04.440992: >> Region optimisation pass width 480 gives best_metric 407.85p, best_cost 426.2p, best_cycle 47.37kWh, best_import 33.13kWh
2026-08-17 22:20:04.717284: >> Region optimisation pass width 240 gives best_metric 407.85p, best_cost 426.2p, best_cycle 47.37kWh, best_import 33.13kWh
2026-08-17 22:20:05.484040: >> Region optimisation pass width 120 gives best_metric 407.18p, best_cost 419.74p, best_cycle 48.21kWh, best_import 32.32kWh
2026-08-17 22:20:05.484374: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 22:20:05.484448: Optimise levels pass ended at 2026-08-17 22:20:05, duration 1.5 seconds tried 73 combinations
2026-08-17 22:20:05.484509: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 407.18p, best_keep 0kWh, best_cycle 48.21kWh, best_carbon 0kg, best_import 32.32kWh
2026-08-17 22:20:05.502881: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 22:20:07.794482: Tweak plan optimisation started metric 271.85p, cost 283.69p
2026-08-17 22:20:08.082452: Tweak optimisation finished metric 271.85p, cost 283.69p, metric_keep 0kWh, cycle 24.78kWh, carbon 0kg, import 15.32kWh, changed 8 window(s)
2026-08-17 22:20:08.099474: Swap charge optimisation started metric 271.85p, cost 283.69p, min_improvement_swap 0.1p
2026-08-17 22:20:08.920187: Swap charge optimisation finished metric 271.85p, cost 283.69p
2026-08-17 22:20:09.029247: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:20:09.029614: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:20:09.029883: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:20:09.030081: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 94%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:20:09.066787: Previous plan best metric is 271.05 (cost 281.43) and new plan best metric is 271.85 (cost 283.69)
2026-08-17 22:20:09.067002: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 22:20:09.067152: Plan valid is now true after recompute was False
2026-08-17 22:20:09.098040: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.68kWh, PV 0.0kWh
2026-08-17 22:20:09.201331: Battery has 4.67 hours left - now at 5.74kWh
2026-08-17 22:20:09.244791: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.51kWh, PV 0.0kWh
2026-08-17 22:20:09.317152: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 338.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.51kWh, PV 0.0kWh
2026-08-17 22:20:09.404871: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 326.11p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.68kWh, PV 0.0kWh
2026-08-17 22:20:09.404966: Saving plan best values to HA entities
2026-08-17 22:20:09.562036: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:20:09.568017: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 22:20:09.573624: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.79kWh, house 0.0kWh, export 0.0kWh, metric 326.11p, metric10 338.35p
2026-08-17 22:20:09.648959: Marginal costs baseline metric (no standing charge): 279.4714
2026-08-17 22:20:09.909383: Marginal energy costs matrix computed: min=7.46 max=32.61
2026-08-17 22:20:09.968915: Rate array import [{'start': 1340, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1340, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:20:09.969576: - Your estimated bill for today is £1.86 and tomorrow is £1.65
2026-08-17 22:20:09.969625: - Import rates are very expensive (33.8p) for the next 1 and a quarter hours and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:20:09.969648: - The battery is currently at 36% and is in eco mode for the next 1 and a quarter hours.
2026-08-17 22:20:09.969666: - For the next 48 hours there will be no solar generation.
2026-08-17 22:20:09.969704: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:20:09.969724: - Your next charge slot will be in 1 and a quarter hours where import rates will be cheap (8.0p).
2026-08-17 22:20:09.969742:
2026-08-17 22:20:10.021622: Plan calculation took 6.13 seconds
2026-08-17 22:20:10.021898: Inverter 0: Type SK Sunsynk
2026-08-17 22:20:10.021934: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:20:10.022114: Reserve min: 7%, battery_min: 7%
2026-08-17 22:20:10.022175: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:20:10.022442: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 557W, current battery voltage 51.2V, grid power -55W, load power 618W, PV Power 0W
2026-08-17 22:20:10.022627: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:20:10.022725: Inverter 0 scheduled charge enable is False
2026-08-17 22:20:10.022762: Inverter 0 charge windows currently []
2026-08-17 22:20:10.022822: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:20:10.022962: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:20:10.023014: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:20:10.023070: Inverter 0 scheduled discharge enable is False
2026-08-17 22:20:10.023229: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:20:10.023274: Inverter 0 discharge windows currently []
2026-08-17 22:20:10.023304: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:20:10.023337: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:20:10.023355: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:20:10.074591: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 35%, target 100%
2026-08-17 22:20:10.074753: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:20:10.074821: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:20:10.075052: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:20:10.075144: No export window planned
2026-08-17 22:20:10.075249: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:20:10.075285: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:20:10.075420: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:20:10.075576: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:20:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:20:10.075626: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:20:10.075704: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:20:10.075803: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.075838: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.075885: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.075988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076048: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076081: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076114: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076212: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076238: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076287: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076314: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:20:10.076363: Inverter 0 count register writes 0
2026-08-17 22:20:10.097642: Total inverter register writes now 861
2026-08-17 22:20:10.133900: Info: Completed run status Demand
2026-08-17 22:20:10.140397: Info: record_status Demand
2026-08-17 22:20:10.146484: Saved current settings to /config/predbat_config.json
2026-08-17 22:20:10.146769: Compare, best tariff: current metric 104.68p
2026-08-17 22:20:49.249290: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:20:49.249543: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:20:49.249674: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:20:49.249864: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:20:49.249898: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:20:49.249916: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:20:49.249932: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:21:20.354259: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 22:21:21.344049: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:21:21.344256: Zero load period starting at 2026-08-17T10:54:00+0100 (686 minutes) for 189 minutes with base value 408.0
2026-08-17 22:21:21.345074: Processing 1345 30-minute periods for power integration
2026-08-17 22:21:21.436908: ML Component: Car charging hold False, car energy reported load False
2026-08-17 22:21:21.518989: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:21:21.599708: ML Temperature data points: 49061
2026-08-17 22:21:21.819182: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 22:21:21.853112: ML Component: Data fetch completed, load data age 59.0 days, 17092 data points
2026-08-17 22:21:21.853228: ML Component: No training needed, model age is 0.68 hours
2026-08-17 22:21:21.853301: ML Component: Generating predictions load data age 59.0 days, 17092 data points
2026-08-17 22:21:21.964278: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0454 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 22:21:22.397249: ML Component: Generated 576 predictions (total 30.80 kWh over 48h)
2026-08-17 22:21:22.431625: ML Component: Prediction cycle completed
2026-08-17 22:21:22.539843: ML Component: Saved 17092 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 22:22:49.452861: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:22:49.453128: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:22:49.453183: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:22:49.453326: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:22:49.453379: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:22:49.453403: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:22:49.453422: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:25:00.686374: --------------- PredBat - update at 2026-08-17 22:25:00+01:00 with clock skew 0 minutes, minutes now 1345
2026-08-17 22:25:00.687408: Saved current settings to /config/predbat_config.json
2026-08-17 22:25:00.687554: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-17 22:25:00.687639: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:25:00.687759: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:25:00.704721: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:25:00.704884: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:25:00.705094: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:25:00.705660: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:25:00.705790: Predbat mode is set to Control charge & discharge
2026-08-17 22:25:00.895993: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:25:00.896133: Using load_power data to fill gaps in load_today data
2026-08-17 22:25:01.668818: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:25:01.669195: Zero load period starting at 2026-08-17T10:54:00+0100 (691 minutes) for 189 minutes with base value 211.95
2026-08-17 22:25:01.669881: Processing 721 30-minute periods for power integration
2026-08-17 22:25:01.861948: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:25:01.862070: Car charging hold False, threshold 6.0kWh
2026-08-17 22:25:01.862114: Current data so far today: load 12.3kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:25:01.878593: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:25:01.878682: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:25:01.879392: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:25:01.879462: Standing charge is set to 46.63p
2026-08-17 22:25:01.960218: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.960463: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.960707: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.960893: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.961077: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.961299: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.961482: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.961658: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.961832: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:25:01.962777: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:25:01.962885: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:25:01.967689: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:25:01.968029: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:25:02.008751: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:25:02.008882: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:25:02.010365: High export rate found rates in range 99p to -99p
2026-08-17 22:25:02.041369: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:25:02.041498: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:25:02.054508: Battery level now 5.74kWh, -1hr ago 6.45kWh, at midnight 10.49kWh, battery value change in the last hour -4.89p, change today -32.66p, rate_forward 6.87p
2026-08-17 22:25:02.054891: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.9kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:25:02.117526: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:25:02.117673: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:25:02.215713: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:25:02.251894: Today's load divergence 97.59%, in-day adjustment 95.78%, damping 0.95x, yesterday 68.37% today 97.71% blend 6.6%
2026-08-17 22:25:02.252023: Today's predicted so far 13.89kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 13.89kWh forecast extra.
2026-08-17 22:25:02.252057: Today's actual load so far 13.52kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 22:25:02.285576: Inverter 0: Type SK Sunsynk
2026-08-17 22:25:02.285654: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:25:02.285823: Reserve min: 7%, battery_min: 7%
2026-08-17 22:25:02.285893: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:25:02.286174: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 496W, current battery voltage 51.2V, grid power -54W, load power 552W, PV Power 0W
2026-08-17 22:25:02.286324: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:25:02.286407: Inverter 0 scheduled charge enable is False
2026-08-17 22:25:02.286466: Inverter 0 charge windows currently []
2026-08-17 22:25:02.286524: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:25:02.286739: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:25:02.286785: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:25:02.286825: Inverter 0 scheduled discharge enable is False
2026-08-17 22:25:02.286961: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:25:02.286997: Inverter 0 discharge windows currently []
2026-08-17 22:25:02.287019: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:25:02.287039: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:25:02.287057: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:25:02.345711: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:25:02.345813: Plan was last updated on 2026-08-17 22:20:00+01:00 and is now 5.0 minutes old
2026-08-17 22:25:02.346014: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:25:02.346056: Best export window [ ]
2026-08-17 22:25:02.346867: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:25:02.349972: Load divergence over 8.0 hours mean 453.41W, min 316.8W, max 1032.6W, std dev 166.86W, divergence 18.4%
2026-08-17 22:25:02.365825: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:25:02.365899: LoadML is_calculating False
2026-08-17 22:25:02.365950: Creating pool of 12 processes to match your CPU count
2026-08-17 22:25:02.463510: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 615.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 29.75kWh, PV 0.0kWh
2026-08-17 22:25:02.573130: Battery has 4.5 hours left - now at 5.6kWh
2026-08-17 22:25:02.610940: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 636.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:35:00, load 30.59kWh, PV 0.0kWh
2026-08-17 22:25:02.693251: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 342.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.59kWh, PV 0.0kWh
2026-08-17 22:25:02.768715: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 330.67p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.75kWh, PV 0.0kWh
2026-08-17 22:25:02.768818: Saving plan best values to HA entities
2026-08-17 22:25:02.915414: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:25:02.920128: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:25:02.924632: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.36kWh, house 0kWh, export 0.0kWh, metric 330.67p, metric10 342.7p
2026-08-17 22:25:02.998744: Marginal costs baseline metric (no standing charge): 284.0366
2026-08-17 22:25:03.239935: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 22:25:03.306669: Rate array import [{'start': 1345, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1345, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:25:03.307418: - Your estimated bill for today is £1.86 and tomorrow is £1.66
2026-08-17 22:25:03.307466: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:25:03.307489: - The battery is currently at 35% and is in eco mode for the next 1 hour.
2026-08-17 22:25:03.307511: - For the next 48 hours there will be no solar generation.
2026-08-17 22:25:03.307550: - You will reach a minimum of 9% battery in 25 hours.
2026-08-17 22:25:03.307585: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-17 22:25:03.307623:
2026-08-17 22:25:03.354754: Plan calculation took 1.01 seconds
2026-08-17 22:25:03.358598: No high rate period found
2026-08-17 22:25:03.399720: Import threshold used for optimisation was 8.0p
2026-08-17 22:25:03.448014: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:25:03.453424: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 35%, target 100%
2026-08-17 22:25:03.453544: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:25:03.453669: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:25:03.453925: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:25:03.454024: No export window planned
2026-08-17 22:25:03.454165: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:25:03.454203: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:25:03.454343: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:25:03.454525: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:25:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:25:03.454592: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:25:03.454682: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:25:03.454781: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.454822: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.454850: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.454881: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.454906: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.454957: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.454984: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455086: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455253: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:25:03.455279: Inverter 0 count register writes 0
2026-08-17 22:25:03.470744: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 22:25:03.475728: Total inverter register writes now 861
2026-08-17 22:25:03.504533: Info: Completed run status Demand
2026-08-17 22:25:03.509973: Info: record_status Demand
2026-08-17 22:25:03.516267: Saved current settings to /config/predbat_config.json
2026-08-17 22:25:03.516576: Compare, best tariff: current metric 104.68p
2026-08-17 22:25:34.617532: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:25:34.617775: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:25:34.617823: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:25:34.618073: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:25:34.618133: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:25:34.618165: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:25:34.618194: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:27:48.850216: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:27:48.850506: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:27:48.850554: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:27:48.850685: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:27:48.850733: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:27:48.850778: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:27:48.850818: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:29:49.057402: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:29:49.057624: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:29:49.057658: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:29:49.057787: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:29:49.057895: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:29:49.057940: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:29:49.057963: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:30:00.147200: --------------- PredBat - update at 2026-08-17 22:30:00+01:00 with clock skew 0 minutes, minutes now 1350
2026-08-17 22:30:00.148112: Saved current settings to /config/predbat_config.json
2026-08-17 22:30:00.148249: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-17 22:30:00.148377: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:30:00.148475: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:30:00.165739: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:30:00.165880: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:30:00.166050: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:30:00.166539: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:30:00.166658: Predbat mode is set to Control charge & discharge
2026-08-17 22:30:00.364385: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:30:00.364714: Using load_power data to fill gaps in load_today data
2026-08-17 22:30:01.123790: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:30:01.123969: Zero load period starting at 2026-08-17T10:54:00+0100 (696 minutes) for 189 minutes with base value 211.925
2026-08-17 22:30:01.124521: Processing 721 30-minute periods for power integration
2026-08-17 22:30:01.276919: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:30:01.277030: Car charging hold False, threshold 6.0kWh
2026-08-17 22:30:01.277068: Current data so far today: load 12.35kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:30:01.290560: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:30:01.290643: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:30:01.291232: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:30:01.291292: Standing charge is set to 46.63p
2026-08-17 22:30:01.378646: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.378931: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.379120: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.379305: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.379480: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.379661: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.379879: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.380089: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.380287: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:30:01.381350: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:30:01.381460: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:30:01.386927: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:30:01.387316: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:30:01.430630: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:30:01.431033: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:30:01.432477: High export rate found rates in range 99p to -99p
2026-08-17 22:30:01.463527: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:30:01.463650: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:30:01.476160: Battery level now 5.6kWh, -1hr ago 6.45kWh, at midnight 10.49kWh, battery value change in the last hour -5.83p, change today -33.59p, rate_forward 6.87p
2026-08-17 22:30:01.476520: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.85kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:30:01.543387: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:30:01.543540: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:30:01.647237: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:30:01.685188: Today's load divergence 97.1%, in-day adjustment 95.44%, damping 0.95x, yesterday 68.37% today 97.24% blend 6.25%
2026-08-17 22:30:01.685316: Today's predicted so far 14.03kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 14.03kWh forecast extra.
2026-08-17 22:30:01.685371: Today's actual load so far 13.59kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 22:30:01.724689: Inverter 0: Type SK Sunsynk
2026-08-17 22:30:01.724805: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:30:01.725129: Reserve min: 7%, battery_min: 7%
2026-08-17 22:30:01.725238: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:30:01.725656: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 520W, current battery voltage 51.2V, grid power -57W, load power 580W, PV Power 0W
2026-08-17 22:30:01.725881: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:30:01.725996: Inverter 0 scheduled charge enable is False
2026-08-17 22:30:01.726038: Inverter 0 charge windows currently []
2026-08-17 22:30:01.726076: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:30:01.726228: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:30:01.726275: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:30:01.726327: Inverter 0 scheduled discharge enable is False
2026-08-17 22:30:01.726507: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:30:01.726556: Inverter 0 discharge windows currently []
2026-08-17 22:30:01.726589: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:30:01.726617: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:30:01.726648: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:30:01.796126: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:30:01.796251: Plan was last updated on 2026-08-17 22:20:00+01:00 and is now 10.0 minutes old
2026-08-17 22:30:01.796459: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:30:01.796500: Best export window [ ]
2026-08-17 22:30:01.797297: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:30:01.800680: Load divergence over 8.0 hours mean 454.92W, min 328.8W, max 1063.8W, std dev 157.18W, divergence 17.28%
2026-08-17 22:30:01.819579: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:30:01.819701: LoadML is_calculating False
2026-08-17 22:30:01.819809: Creating pool of 12 processes to match your CPU count
2026-08-17 22:30:01.932655: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 615.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.82kWh, PV 0.0kWh
2026-08-17 22:30:02.060380: Battery has 4.5 hours left - now at 5.6kWh
2026-08-17 22:30:02.109009: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 636.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.66kWh, PV 0.0kWh
2026-08-17 22:30:02.207278: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 345.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.66kWh, PV 0.0kWh
2026-08-17 22:30:02.288262: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 334.09p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.82kWh, PV 0.0kWh
2026-08-17 22:30:02.288346: Saving plan best values to HA entities
2026-08-17 22:30:02.474984: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:30:02.480423: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:30:02.485006: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.79kWh, house 0.0kWh, export 0.0kWh, metric 334.09p, metric10 345.43p
2026-08-17 22:30:02.555401: Marginal costs baseline metric (no standing charge): 287.4572
2026-08-17 22:30:02.790253: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 22:30:02.873979: Rate array import [{'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1350, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:30:02.874855: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 22:30:02.874919: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:30:02.874947: - The battery is currently at 35% and is in eco mode for the next 1 hour.
2026-08-17 22:30:02.874966: - For the next 48 hours there will be no solar generation.
2026-08-17 22:30:02.874990: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:30:02.875035: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-17 22:30:02.875066:
2026-08-17 22:30:02.934142: Plan calculation took 1.14 seconds
2026-08-17 22:30:02.938346: No high rate period found
2026-08-17 22:30:02.992332: Import threshold used for optimisation was 8.0p
2026-08-17 22:30:03.044464: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:30:03.051396: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 35%, target 100%
2026-08-17 22:30:03.051583: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:30:03.051730: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:30:03.052163: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:30:03.052304: No export window planned
2026-08-17 22:30:03.052495: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:30:03.052541: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:30:03.052723: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:30:03.052922: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:30:03.052987: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:30:03.053058: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:30:03.053143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053211: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053236: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053267: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053292: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053322: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053469: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:03.053592: Inverter 0 count register writes 0
2026-08-17 22:30:03.068933: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 22:30:03.069111: Recompute is saving previous plan...
2026-08-17 22:30:03.070028: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 22:30:03.070080: Best export window [ ]
2026-08-17 22:30:03.070878: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:30:03.074035: Load divergence over 8.0 hours mean 454.92W, min 328.8W, max 1063.8W, std dev 157.18W, divergence 17.28%
2026-08-17 22:30:03.091978: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:30:03.092111: LoadML is_calculating False
2026-08-17 22:30:03.092199: Creating pool of 12 processes to match your CPU count
2026-08-17 22:30:03.175039: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 22:30:03.175751: Optimise levels pass started at 2026-08-17 22:30:03
2026-08-17 22:30:03.175815: Optimise all windows, total charge 24 export 1
2026-08-17 22:30:03.768804: >> Region optimisation pass width 960 gives best_metric 408.69p, best_cost 426.06p, best_cycle 47.34kWh, best_import 33.11kWh
2026-08-17 22:30:03.894155: >> Region optimisation pass width 480 gives best_metric 408.69p, best_cost 426.06p, best_cycle 47.34kWh, best_import 33.11kWh
2026-08-17 22:30:04.155257: >> Region optimisation pass width 240 gives best_metric 408.69p, best_cost 426.06p, best_cycle 47.34kWh, best_import 33.11kWh
2026-08-17 22:30:04.756150: >> Region optimisation pass width 120 gives best_metric 408.19p, best_cost 419.58p, best_cycle 48.19kWh, best_import 32.31kWh
2026-08-17 22:30:04.756448: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 22:30:04.756520: Optimise levels pass ended at 2026-08-17 22:30:04, duration 1.6 seconds tried 71 combinations
2026-08-17 22:30:04.756582: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 408.19p, best_keep 0kWh, best_cycle 48.19kWh, best_carbon 0kg, best_import 32.31kWh
2026-08-17 22:30:04.773474: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 22:30:07.045843: Tweak plan optimisation started metric 272.82p, cost 284.88p
2026-08-17 22:30:07.350999: Tweak optimisation finished metric 272.82p, cost 284.88p, metric_keep 0kWh, cycle 26.57kWh, carbon 0kg, import 15.47kWh, changed 8 window(s)
2026-08-17 22:30:07.381738: Swap charge optimisation started metric 272.82p, cost 284.88p, min_improvement_swap 0.1p
2026-08-17 22:30:07.932828: Swap charge optimisation finished metric 272.82p, cost 284.88p
2026-08-17 22:30:08.022044: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 271.9p -> 271.86p, plan now metric 280.64p, cost 282.24p, cycle 27.26kWh, import 15.14kWh
2026-08-17 22:30:08.031735: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:30:08.032381: Unclipped charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:30:08.032577: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:30:08.032721: Filtered charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 28%, 18-08 00:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:30:08.068225: Previous plan best metric is 270.89 (cost 281.28) and new plan best metric is 272.82 (cost 284.88)
2026-08-17 22:30:08.068431: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 22:30:08.068587: Plan valid is now true after recompute was False
2026-08-17 22:30:08.099330: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.63kWh, PV 0.0kWh
2026-08-17 22:30:08.203841: Battery has 4.5 hours left - now at 5.6kWh
2026-08-17 22:30:08.247811: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:40:00, load 30.46kWh, PV 0.0kWh
2026-08-17 22:30:08.321800: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 338.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.46kWh, PV 0.0kWh
2026-08-17 22:30:08.403638: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 325.91p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.63kWh, PV 0.0kWh
2026-08-17 22:30:08.403722: Saving plan best values to HA entities
2026-08-17 22:30:08.591062: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:30:08.597289: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:30:08.603694: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.77kWh, house 0.0kWh, export 0.0kWh, metric 325.91p, metric10 338.29p
2026-08-17 22:30:08.680577: Marginal costs baseline metric (no standing charge): 279.2746
2026-08-17 22:30:08.933907: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 22:30:09.000375: Rate array import [{'start': 1350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1350, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:30:09.000900: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 22:30:09.000941: - Import rates are very expensive (33.8p) for the next 1 hour and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:30:09.000960: - The battery is currently at 35% and is in eco mode for the next 1 hour.
2026-08-17 22:30:09.000975: - For the next 48 hours there will be no solar generation.
2026-08-17 22:30:09.000989: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:30:09.001002: - Your next charge slot will be in 1 hour where import rates will be cheap (8.0p).
2026-08-17 22:30:09.001016:
2026-08-17 22:30:09.045994: Plan calculation took 5.98 seconds
2026-08-17 22:30:09.046353: Inverter 0: Type SK Sunsynk
2026-08-17 22:30:09.046411: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:30:09.046678: Reserve min: 7%, battery_min: 7%
2026-08-17 22:30:09.046801: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:30:09.047208: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 520W, current battery voltage 51.2V, grid power -57W, load power 580W, PV Power 0W
2026-08-17 22:30:09.047488: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:30:09.047620: Inverter 0 scheduled charge enable is False
2026-08-17 22:30:09.047673: Inverter 0 charge windows currently []
2026-08-17 22:30:09.047724: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:30:09.047884: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:30:09.047957: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:30:09.048003: Inverter 0 scheduled discharge enable is False
2026-08-17 22:30:09.048140: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:30:09.048177: Inverter 0 discharge windows currently []
2026-08-17 22:30:09.048201: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:30:09.048220: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:30:09.048243: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:30:09.104167: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 35%, target 100%
2026-08-17 22:30:09.104312: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:30:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:30:09.104384: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:30:09.104569: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:30:09.104654: No export window planned
2026-08-17 22:30:09.104759: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:30:09.104814: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:30:09.104983: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:30:09.105149: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:30:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:30:09.105200: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:30:09.105256: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:30:09.105346: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105413: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105444: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105473: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105502: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105527: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:30:09.105787: Inverter 0 count register writes 0
2026-08-17 22:30:09.128204: Total inverter register writes now 861
2026-08-17 22:30:09.163940: Info: Completed run status Demand
2026-08-17 22:30:09.174590: Info: record_status Demand
2026-08-17 22:30:09.181836: Saved current settings to /config/predbat_config.json
2026-08-17 22:30:09.182190: Compare, best tariff: current metric 104.68p
2026-08-17 22:30:49.304792: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:30:49.305055: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:30:49.305118: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:30:49.305317: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:30:49.305362: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:30:49.305384: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:30:49.305416: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:32:49.533479: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:32:49.533714: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:32:49.533743: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:32:49.533871: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:32:49.533903: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:32:49.533921: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:32:49.533935: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:35:00.745813: --------------- PredBat - update at 2026-08-17 22:35:00+01:00 with clock skew 0 minutes, minutes now 1355
2026-08-17 22:35:00.746739: Saved current settings to /config/predbat_config.json
2026-08-17 22:35:00.746870: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-17 22:35:00.746956: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:35:00.747049: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:35:00.767690: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:35:00.767803: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:35:00.768007: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:35:00.768475: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:35:00.768614: Predbat mode is set to Control charge & discharge
2026-08-17 22:35:00.946838: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:35:00.946956: Using load_power data to fill gaps in load_today data
2026-08-17 22:35:01.738499: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:35:01.738690: Zero load period starting at 2026-08-17T10:54:00+0100 (701 minutes) for 189 minutes with base value 211.9
2026-08-17 22:35:01.739379: Processing 721 30-minute periods for power integration
2026-08-17 22:35:01.925643: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:35:01.925765: Car charging hold False, threshold 6.0kWh
2026-08-17 22:35:01.925810: Current data so far today: load 12.4kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:35:01.942962: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:35:01.943061: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:35:01.943836: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:35:01.943951: Standing charge is set to 46.63p
2026-08-17 22:35:02.032297: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.032559: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.032748: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.032934: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.033110: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.033288: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.033497: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.033686: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.033874: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:35:02.034976: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:35:02.035079: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:35:02.040544: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:35:02.040926: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:35:02.084410: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:35:02.084516: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:35:02.085918: High export rate found rates in range 99p to -99p
2026-08-17 22:35:02.115219: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:35:02.115330: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:35:02.126128: Battery level now 5.6kWh, -1hr ago 6.3kWh, at midnight 10.49kWh, battery value change in the last hour -4.78p, change today -33.59p, rate_forward 6.87p
2026-08-17 22:35:02.126477: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:35:02.184675: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:35:02.184825: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:35:02.295854: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:35:02.327863: Today's load divergence 96.67%, in-day adjustment 95.15%, damping 0.95x, yesterday 68.37% today 96.83% blend 5.9%
2026-08-17 22:35:02.327983: Today's predicted so far 14.15kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 14.15kWh forecast extra.
2026-08-17 22:35:02.328046: Today's actual load so far 13.64kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 22:35:02.359669: Inverter 0: Type SK Sunsynk
2026-08-17 22:35:02.359737: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:35:02.359875: Reserve min: 7%, battery_min: 7%
2026-08-17 22:35:02.359951: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:35:02.360165: Inverter 0 SoC: 5.6kW 35%, current charge rate 5000W, current discharge rate 5250W, current battery power 595W, current battery voltage 51.2V, grid power -55W, load power 651W, PV Power 0W
2026-08-17 22:35:02.360285: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:35:02.360353: Inverter 0 scheduled charge enable is False
2026-08-17 22:35:02.360376: Inverter 0 charge windows currently []
2026-08-17 22:35:02.360396: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:35:02.360479: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:35:02.360507: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:35:02.360550: Inverter 0 scheduled discharge enable is False
2026-08-17 22:35:02.360658: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:35:02.360688: Inverter 0 discharge windows currently []
2026-08-17 22:35:02.360722: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:35:02.360738: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:35:02.360752: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:35:02.411366: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:35:02.411454: Plan was last updated on 2026-08-17 22:30:00+01:00 and is now 5.0 minutes old
2026-08-17 22:35:02.411676: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:35:02.411728: Best export window [ ]
2026-08-17 22:35:02.412460: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:35:02.414941: Load divergence over 8.0 hours mean 456.31W, min 322.2W, max 1002.6W, std dev 157.23W, divergence 17.23%
2026-08-17 22:35:02.430342: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:35:02.430432: LoadML is_calculating False
2026-08-17 22:35:02.430481: Creating pool of 12 processes to match your CPU count
2026-08-17 22:35:02.532616: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 614.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 29.71kWh, PV 0.0kWh
2026-08-17 22:35:02.639299: Battery has 4.5 hours left - now at 5.6kWh
2026-08-17 22:35:02.682644: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 635.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 30.53kWh, PV 0.0kWh
2026-08-17 22:35:02.753368: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 341.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.53kWh, PV 0.0kWh
2026-08-17 22:35:02.829921: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 329.37p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.71kWh, PV 0.0kWh
2026-08-17 22:35:02.830012: Saving plan best values to HA entities
2026-08-17 22:35:02.989628: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:35:02.995622: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 22:35:03.000233: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.2kWh, house 0.0kWh, export 0.0kWh, metric 329.37p, metric10 341.03p
2026-08-17 22:35:03.070180: Marginal costs baseline metric (no standing charge): 282.7313
2026-08-17 22:35:03.332421: Marginal energy costs matrix computed: min=8.0 max=32.62
2026-08-17 22:35:03.413145: Rate array import [{'start': 1355, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1355, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:35:03.413856: - Your estimated bill for today is £1.85 and tomorrow is £1.64
2026-08-17 22:35:03.413908: - Import rates are very expensive (33.8p) for the next 55 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:35:03.413937: - The battery is currently at 35% and is in eco mode for the next 55 minutes.
2026-08-17 22:35:03.413980: - For the next 48 hours there will be no solar generation.
2026-08-17 22:35:03.414024: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:35:03.414064: - Your next charge slot will be in 55 minutes where import rates will be cheap (8.0p).
2026-08-17 22:35:03.414106:
2026-08-17 22:35:03.457957: Plan calculation took 1.05 seconds
2026-08-17 22:35:03.462222: No high rate period found
2026-08-17 22:35:03.516118: Import threshold used for optimisation was 8.0p
2026-08-17 22:35:03.563938: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:35:03.569687: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 35%, target 100%
2026-08-17 22:35:03.569828: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:35:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:35:03.569935: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:35:03.570185: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:35:03.570282: No export window planned
2026-08-17 22:35:03.570402: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:35:03.570437: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:35:03.570589: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:35:03.570765: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:35:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:35:03.570827: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:35:03.570889: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:35:03.570982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571021: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571057: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571087: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571153: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571183: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571247: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571436: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:35:03.571457: Inverter 0 count register writes 0
2026-08-17 22:35:03.586336: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 22:35:03.591222: Total inverter register writes now 861
2026-08-17 22:35:03.622960: Info: Completed run status Demand
2026-08-17 22:35:03.628522: Info: record_status Demand
2026-08-17 22:35:03.634590: Saved current settings to /config/predbat_config.json
2026-08-17 22:35:03.634892: Compare, best tariff: current metric 104.68p
2026-08-17 22:35:33.733693: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:35:33.733927: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:35:33.733967: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:35:33.734120: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:35:33.734162: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:35:33.734185: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:35:33.734203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:37:33.945936: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:37:33.946234: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:37:33.946281: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:37:33.946461: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:37:33.946543: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:37:33.946574: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:37:33.946593: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:39:34.189064: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:39:34.189330: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:39:34.189411: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:39:34.189620: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:39:34.189669: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:39:34.189692: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:39:34.189711: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:40:00.343782: --------------- PredBat - update at 2026-08-17 22:40:00+01:00 with clock skew 0 minutes, minutes now 1360
2026-08-17 22:40:00.344657: Saved current settings to /config/predbat_config.json
2026-08-17 22:40:00.344784: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-17 22:40:00.344905: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:40:00.344987: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:40:00.369421: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:40:00.369603: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:40:00.369868: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:40:00.370504: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:40:00.370659: Predbat mode is set to Control charge & discharge
2026-08-17 22:40:00.611360: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:40:00.611595: Using load_power data to fill gaps in load_today data
2026-08-17 22:40:01.693843: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:40:01.694203: Zero load period starting at 2026-08-17T10:54:00+0100 (706 minutes) for 189 minutes with base value 211.85
2026-08-17 22:40:01.695318: Processing 721 30-minute periods for power integration
2026-08-17 22:40:01.968017: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:40:01.968195: Car charging hold False, threshold 6.0kWh
2026-08-17 22:40:01.968273: Current data so far today: load 12.45kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:40:01.994647: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:40:01.994781: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:40:01.995994: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:40:01.996103: Standing charge is set to 46.63p
2026-08-17 22:40:02.108646: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.108985: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.109296: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.109621: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.109901: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.110175: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.110463: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.110747: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.111028: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:40:02.113242: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:40:02.113408: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:40:02.120415: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:40:02.120962: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:40:02.174476: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:40:02.174600: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:40:02.176167: High export rate found rates in range 99p to -99p
2026-08-17 22:40:02.212836: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:40:02.212986: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:40:02.226538: Battery level now 5.6kWh, -1hr ago 6.24kWh, at midnight 10.49kWh, battery value change in the last hour -4.4p, change today -33.59p, rate_forward 6.87p
2026-08-17 22:40:02.227064: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:40:02.314812: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:40:02.315078: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:40:02.461839: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:40:02.522258: Today's load divergence 96.63%, in-day adjustment 95.22%, damping 0.95x, yesterday 68.37% today 96.8% blend 5.56%
2026-08-17 22:40:02.522702: Today's predicted so far 14.18kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 14.18kWh forecast extra.
2026-08-17 22:40:02.522754: Today's actual load so far 13.67kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 22:40:02.566935: Inverter 0: Type SK Sunsynk
2026-08-17 22:40:02.567043: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:40:02.567304: Reserve min: 7%, battery_min: 7%
2026-08-17 22:40:02.567437: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:40:02.567834: Inverter 0 SoC: 5.44kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 575W, current battery voltage 51.2V, grid power -54W, load power 632W, PV Power 0W
2026-08-17 22:40:02.568113: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:40:02.568255: Inverter 0 scheduled charge enable is False
2026-08-17 22:40:02.568306: Inverter 0 charge windows currently []
2026-08-17 22:40:02.568372: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:40:02.568550: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:40:02.568610: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:40:02.568662: Inverter 0 scheduled discharge enable is False
2026-08-17 22:40:02.568848: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:40:02.568906: Inverter 0 discharge windows currently []
2026-08-17 22:40:02.568944: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:40:02.568977: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:40:02.569007: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:40:02.667981: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:40:02.668155: Plan was last updated on 2026-08-17 22:30:00+01:00 and is now 10.0 minutes old
2026-08-17 22:40:02.668545: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:40:02.668616: Best export window [ ]
2026-08-17 22:40:02.669976: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:40:02.674777: Load divergence over 8.0 hours mean 456.22W, min 294.6W, max 1039.2W, std dev 158.19W, divergence 17.34%
2026-08-17 22:40:02.700228: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:40:02.700383: LoadML is_calculating False
2026-08-17 22:40:02.700537: Creating pool of 12 processes to match your CPU count
2026-08-17 22:40:02.896730: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 615.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.78kWh, PV 0.0kWh
2026-08-17 22:40:03.090010: Battery has 4.33 hours left - now at 5.44kWh
2026-08-17 22:40:03.162677: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 636.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 30.61kWh, PV 0.0kWh
2026-08-17 22:40:03.287397: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 345.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.61kWh, PV 0.0kWh
2026-08-17 22:40:03.428110: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 334.21p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.78kWh, PV 0.0kWh
2026-08-17 22:40:03.428710: Saving plan best values to HA entities
2026-08-17 22:40:03.641180: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 22:40:03.649103: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:40:03.655895: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.8kWh, house 0.0kWh, export 0.0kWh, metric 334.21p, metric10 345.21p
2026-08-17 22:40:03.776971: Marginal costs baseline metric (no standing charge): 287.5793
2026-08-17 22:40:04.185202: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 22:40:04.297987: Rate array import [{'start': 1360, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1360, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:40:04.299124: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 22:40:04.299210: - Import rates are very expensive (33.8p) for the next 50 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:40:04.299256: - The battery is currently at 34% and is in eco mode for the next 50 minutes.
2026-08-17 22:40:04.299292: - For the next 48 hours there will be no solar generation.
2026-08-17 22:40:04.299323: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:40:04.299368: - Your next charge slot will be in 50 minutes where import rates will be cheap (8.0p).
2026-08-17 22:40:04.299400:
2026-08-17 22:40:04.392392: Plan calculation took 1.72 seconds
2026-08-17 22:40:04.398796: No high rate period found
2026-08-17 22:40:04.469735: Import threshold used for optimisation was 8.0p
2026-08-17 22:40:04.539583: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:40:04.548512: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 34%, target 100%
2026-08-17 22:40:04.548699: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:40:04.548829: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:40:04.549163: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:40:04.549289: No export window planned
2026-08-17 22:40:04.549560: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:40:04.549614: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:40:04.549824: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:40:04.550119: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:40:04.550191: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:40:04.550255: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:40:04.550416: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550500: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550533: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550560: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550946: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.550976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.551007: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:04.551075: Inverter 0 count register writes 0
2026-08-17 22:40:04.573675: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 22:40:04.573835: Recompute is saving previous plan...
2026-08-17 22:40:04.574695: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 22:40:04.574755: Best export window [ ]
2026-08-17 22:40:04.575541: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:40:04.578453: Load divergence over 8.0 hours mean 456.22W, min 294.6W, max 1039.2W, std dev 158.19W, divergence 17.34%
2026-08-17 22:40:04.603858: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:40:04.604043: LoadML is_calculating False
2026-08-17 22:40:04.604129: Creating pool of 12 processes to match your CPU count
2026-08-17 22:40:04.704460: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 22:40:04.705593: Optimise levels pass started at 2026-08-17 22:40:04
2026-08-17 22:40:04.705670: Optimise all windows, total charge 24 export 1
2026-08-17 22:40:05.200428: >> Region optimisation pass width 960 gives best_metric 409.94p, best_cost 425.98p, best_cycle 47.35kWh, best_import 33.1kWh
2026-08-17 22:40:05.367212: >> Region optimisation pass width 480 gives best_metric 409.94p, best_cost 425.98p, best_cycle 47.35kWh, best_import 33.1kWh
2026-08-17 22:40:05.696294: >> Region optimisation pass width 240 gives best_metric 409.94p, best_cost 425.98p, best_cycle 47.35kWh, best_import 33.1kWh
2026-08-17 22:40:06.707468: >> Region optimisation pass width 120 gives best_metric 409.47p, best_cost 421.8p, best_cycle 47.9kWh, best_import 32.58kWh
2026-08-17 22:40:06.707741: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 22:40:06.707860: Optimise levels pass ended at 2026-08-17 22:40:06, duration 2.0 seconds tried 73 combinations
2026-08-17 22:40:06.708075: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 409.47p, best_keep 0kWh, best_cycle 47.9kWh, best_carbon 0kg, best_import 32.58kWh
2026-08-17 22:40:06.725042: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 22:40:10.839457: Tweak plan optimisation started metric 270.82p, cost 281.27p
2026-08-17 22:40:11.312197: Tweak optimisation finished metric 270.82p, cost 281.27p, metric_keep 0kWh, cycle 23.12kWh, carbon 0kg, import 15.02kWh, changed 8 window(s)
2026-08-17 22:40:11.344484: Swap charge optimisation started metric 270.82p, cost 281.27p, min_improvement_swap 0.1p
2026-08-17 22:40:12.080253: Swap charge optimisation finished metric 270.82p, cost 281.27p
2026-08-17 22:40:12.236145: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 269.74p -> 269.51p, plan now metric 272.54p, cost 277.5p, cycle 23.75kWh, import 14.55kWh
2026-08-17 22:40:12.245225: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:40:12.245583: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:40:12.245780: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:40:12.245963: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:40:12.279818: Previous plan best metric is 270.82 (cost 281.27) and new plan best metric is 270.82 (cost 281.27)
2026-08-17 22:40:12.280062: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 22:40:12.280217: Plan valid is now true after recompute was False
2026-08-17 22:40:12.308572: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 29.58kWh, PV 0.0kWh
2026-08-17 22:40:12.475435: Battery has 4.33 hours left - now at 5.44kWh
2026-08-17 22:40:12.545237: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:45:00, load 30.4kWh, PV 0.0kWh
2026-08-17 22:40:12.645074: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 337.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.4kWh, PV 0.0kWh
2026-08-17 22:40:12.756866: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 325.93p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.58kWh, PV 0.0kWh
2026-08-17 22:40:12.757418: Saving plan best values to HA entities
2026-08-17 22:40:12.959131: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 22:40:12.967065: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:40:12.975436: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.77kWh, house 0.0kWh, export 0.0kWh, metric 325.93p, metric10 337.96p
2026-08-17 22:40:13.093979: Marginal costs baseline metric (no standing charge): 279.295
2026-08-17 22:40:13.503847: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 22:40:13.606834: Rate array import [{'start': 1360, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1360, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:40:13.607868: - Your estimated bill for today is £1.85 and tomorrow is £1.65
2026-08-17 22:40:13.607976: - Import rates are very expensive (33.8p) for the next 50 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:40:13.608026: - The battery is currently at 34% and is in eco mode for the next 50 minutes.
2026-08-17 22:40:13.608063: - For the next 48 hours there will be no solar generation.
2026-08-17 22:40:13.608096: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:40:13.608126: - Your next charge slot will be in 50 minutes where import rates will be cheap (8.0p).
2026-08-17 22:40:13.608146:
2026-08-17 22:40:13.689155: Plan calculation took 9.12 seconds
2026-08-17 22:40:13.689471: Inverter 0: Type SK Sunsynk
2026-08-17 22:40:13.689518: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:40:13.689757: Reserve min: 7%, battery_min: 7%
2026-08-17 22:40:13.689846: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:40:13.690270: Inverter 0 SoC: 5.44kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 575W, current battery voltage 51.2V, grid power -54W, load power 632W, PV Power 0W
2026-08-17 22:40:13.690586: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:40:13.690789: Inverter 0 scheduled charge enable is False
2026-08-17 22:40:13.690891: Inverter 0 charge windows currently []
2026-08-17 22:40:13.690956: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:40:13.691273: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:40:13.691358: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:40:13.691433: Inverter 0 scheduled discharge enable is False
2026-08-17 22:40:13.691645: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:40:13.691691: Inverter 0 discharge windows currently []
2026-08-17 22:40:13.691720: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:40:13.691756: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:40:13.691793: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:40:13.776815: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 34%, target 100%
2026-08-17 22:40:13.777039: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:40:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:40:13.777151: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:40:13.777465: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:40:13.777592: No export window planned
2026-08-17 22:40:13.777749: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:40:13.777794: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:40:13.778030: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:40:13.778291: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:40:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:40:13.778394: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:40:13.778482: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:40:13.778597: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.778668: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.778763: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.778854: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.778918: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.778971: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779028: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779625: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:40:13.779669: Inverter 0 count register writes 0
2026-08-17 22:40:13.811153: Total inverter register writes now 861
2026-08-17 22:40:13.855191: Info: Completed run status Demand
2026-08-17 22:40:13.863841: Info: record_status Demand
2026-08-17 22:40:13.873331: Saved current settings to /config/predbat_config.json
2026-08-17 22:40:13.873695: Compare, best tariff: current metric 104.68p
2026-08-17 22:40:49.004826: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:40:49.005219: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:40:49.005295: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:40:49.005548: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:40:49.005643: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:40:49.005710: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:40:49.005773: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:42:49.275790: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:42:49.276136: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:42:49.276188: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:42:49.276348: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:42:49.276388: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:42:49.276410: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:42:49.276429: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:44:49.490563: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:44:49.490787: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:44:49.490825: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:44:49.490959: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:44:49.491042: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:44:49.491062: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:44:49.491076: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:45:00.571512: --------------- PredBat - update at 2026-08-17 22:45:00+01:00 with clock skew 0 minutes, minutes now 1365
2026-08-17 22:45:00.572274: Saved current settings to /config/predbat_config.json
2026-08-17 22:45:00.572400: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-17 22:45:00.572484: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:45:00.572564: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:45:00.587640: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:45:00.587781: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:45:00.588031: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:45:00.588555: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:45:00.588671: Predbat mode is set to Control charge & discharge
2026-08-17 22:45:00.753370: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:45:00.753493: Using load_power data to fill gaps in load_today data
2026-08-17 22:45:01.482100: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:45:01.482279: Zero load period starting at 2026-08-17T10:54:00+0100 (711 minutes) for 189 minutes with base value 211.8
2026-08-17 22:45:01.482831: Processing 721 30-minute periods for power integration
2026-08-17 22:45:01.634653: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:45:01.634760: Car charging hold False, threshold 6.0kWh
2026-08-17 22:45:01.634796: Current data so far today: load 12.5kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:45:01.648550: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:45:01.648623: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:45:01.649301: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:45:01.649365: Standing charge is set to 46.63p
2026-08-17 22:45:01.730707: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.731046: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.731694: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.732253: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.732416: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.732568: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.732737: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.732877: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.733013: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:45:01.733910: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:45:01.733995: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:45:01.738374: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:45:01.738692: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:45:01.774585: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:45:01.774685: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:45:01.775835: High export rate found rates in range 99p to -99p
2026-08-17 22:45:01.800583: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:45:01.800689: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:45:01.812107: Battery level now 5.44kWh, -1hr ago 6.24kWh, at midnight 10.49kWh, battery value change in the last hour -5.5p, change today -34.69p, rate_forward 6.87p
2026-08-17 22:45:01.812495: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:45:01.873913: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:45:01.874121: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:45:01.985529: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:45:02.031947: Today's load divergence 96.64%, in-day adjustment 95.33%, damping 0.95x, yesterday 68.37% today 96.81% blend 5.21%
2026-08-17 22:45:02.032044: Today's predicted so far 14.22kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 14.22kWh forecast extra.
2026-08-17 22:45:02.032077: Today's actual load so far 13.72kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 22:45:02.093381: Inverter 0: Type SK Sunsynk
2026-08-17 22:45:02.093460: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:45:02.093665: Reserve min: 7%, battery_min: 7%
2026-08-17 22:45:02.093748: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:45:02.094054: Inverter 0 SoC: 5.44kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 574W, current battery voltage 51.2V, grid power -53W, load power 627W, PV Power 0W
2026-08-17 22:45:02.094251: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:45:02.094355: Inverter 0 scheduled charge enable is False
2026-08-17 22:45:02.094402: Inverter 0 charge windows currently []
2026-08-17 22:45:02.094459: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:45:02.094629: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:45:02.094671: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:45:02.094718: Inverter 0 scheduled discharge enable is False
2026-08-17 22:45:02.094895: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:45:02.094935: Inverter 0 discharge windows currently []
2026-08-17 22:45:02.094959: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:45:02.095020: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:45:02.095067: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:45:02.149085: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:45:02.149204: Plan was last updated on 2026-08-17 22:40:00+01:00 and is now 5.0 minutes old
2026-08-17 22:45:02.149433: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:45:02.149478: Best export window [ ]
2026-08-17 22:45:02.150223: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:45:02.152723: Load divergence over 8.0 hours mean 456.17W, min 302.4W, max 1005.0W, std dev 164.92W, divergence 18.08%
2026-08-17 22:45:02.168644: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:45:02.168755: LoadML is_calculating False
2026-08-17 22:45:02.168827: Creating pool of 12 processes to match your CPU count
2026-08-17 22:45:02.272317: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 614.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:05:00, load 29.66kWh, PV 0.0kWh
2026-08-17 22:45:02.394957: Battery has 4.33 hours left - now at 5.44kWh
2026-08-17 22:45:02.441583: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 635.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:50:00, load 30.47kWh, PV 0.0kWh
2026-08-17 22:45:02.528820: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 341.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.47kWh, PV 0.0kWh
2026-08-17 22:45:02.608568: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 329.29p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.66kWh, PV 0.0kWh
2026-08-17 22:45:02.608652: Saving plan best values to HA entities
2026-08-17 22:45:02.765760: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:45:02.771707: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:45:02.777289: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.19kWh, house 0.0kWh, export 0.0kWh, metric 329.29p, metric10 341.14p
2026-08-17 22:45:02.851228: Marginal costs baseline metric (no standing charge): 282.6574
2026-08-17 22:45:03.124354: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 22:45:03.195034: Rate array import [{'start': 1365, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1365, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:45:03.195776: - Your estimated bill for today is £1.85 and tomorrow is £1.64
2026-08-17 22:45:03.195836: - Import rates are very expensive (33.8p) for the next 45 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:45:03.195870: - The battery is currently at 34% and is in eco mode for the next 45 minutes.
2026-08-17 22:45:03.195930: - For the next 48 hours there will be no solar generation.
2026-08-17 22:45:03.195956: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:45:03.195974: - Your next charge slot will be in 45 minutes where import rates will be cheap (8.0p).
2026-08-17 22:45:03.195992:
2026-08-17 22:45:03.241302: Plan calculation took 1.09 seconds
2026-08-17 22:45:03.244717: No high rate period found
2026-08-17 22:45:03.289795: Import threshold used for optimisation was 8.0p
2026-08-17 22:45:03.343817: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:45:03.349324: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 34%, target 100%
2026-08-17 22:45:03.349451: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:45:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:45:03.349548: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:45:03.349796: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:45:03.349891: No export window planned
2026-08-17 22:45:03.350018: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:45:03.350052: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:45:03.350200: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:45:03.350381: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:45:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:45:03.350441: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:45:03.350508: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:45:03.350592: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350631: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350671: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350706: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350733: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350760: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350785: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350931: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.350955: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.351001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.351026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:45:03.351047: Inverter 0 count register writes 0
2026-08-17 22:45:03.365515: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 22:45:03.369950: Total inverter register writes now 861
2026-08-17 22:45:03.399877: Info: Completed run status Demand
2026-08-17 22:45:03.407597: Info: record_status Demand
2026-08-17 22:45:03.415072: Saved current settings to /config/predbat_config.json
2026-08-17 22:45:03.415466: Compare, best tariff: current metric 104.68p
2026-08-17 22:45:34.524769: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:45:34.524999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:45:34.525046: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:45:34.525207: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:45:34.525252: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:45:34.525273: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:45:34.525295: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:47:48.751204: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:47:48.751433: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:47:48.751474: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:47:48.751605: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:47:48.751667: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:47:48.751688: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:47:48.751705: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:49:48.965528: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:49:48.965782: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:49:48.965822: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:49:48.965955: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:49:48.966021: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:49:48.966043: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:49:48.966064: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:50:00.047006: --------------- PredBat - update at 2026-08-17 22:50:00+01:00 with clock skew 0 minutes, minutes now 1370
2026-08-17 22:50:00.047673: Saved current settings to /config/predbat_config.json
2026-08-17 22:50:00.047789: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-17 22:50:00.047926: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:50:00.048030: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:50:00.068571: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:50:00.068737: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:50:00.069036: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:50:00.069863: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:50:00.070523: Predbat mode is set to Control charge & discharge
2026-08-17 22:50:00.262315: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:50:00.262434: Using load_power data to fill gaps in load_today data
2026-08-17 22:50:01.030581: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:50:01.030772: Zero load period starting at 2026-08-17T10:54:00+0100 (716 minutes) for 189 minutes with base value 211.775
2026-08-17 22:50:01.031400: Processing 721 30-minute periods for power integration
2026-08-17 22:50:01.211602: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:50:01.211724: Car charging hold False, threshold 6.0kWh
2026-08-17 22:50:01.211768: Current data so far today: load 12.55kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:50:01.228108: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:50:01.228217: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:50:01.228968: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:50:01.229060: Standing charge is set to 46.63p
2026-08-17 22:50:01.309103: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.309461: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.309695: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.309927: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.310177: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.310393: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.310605: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.310800: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.310997: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:50:01.312469: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:50:01.312591: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:50:01.317312: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:50:01.317669: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:50:01.356505: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:50:01.356615: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:50:01.358010: High export rate found rates in range 99p to -99p
2026-08-17 22:50:01.387729: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:50:01.387838: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:50:01.399509: Battery level now 5.44kWh, -1hr ago 6.13kWh, at midnight 10.49kWh, battery value change in the last hour -4.73p, change today -34.69p, rate_forward 6.87p
2026-08-17 22:50:01.399862: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.65kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:50:01.457435: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:50:01.457566: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:50:01.542750: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:50:01.577571: Today's load divergence 96.55%, in-day adjustment 95.34%, damping 0.95x, yesterday 68.37% today 96.72% blend 4.86%
2026-08-17 22:50:01.577666: Today's predicted so far 14.28kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 14.28kWh forecast extra.
2026-08-17 22:50:01.577699: Today's actual load so far 13.76kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 22:50:01.606690: Inverter 0: Type SK Sunsynk
2026-08-17 22:50:01.606771: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:50:01.606942: Reserve min: 7%, battery_min: 7%
2026-08-17 22:50:01.607018: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:50:01.607293: Inverter 0 SoC: 5.44kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 511W, current battery voltage 51.2V, grid power -54W, load power 568W, PV Power 0W
2026-08-17 22:50:01.607442: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:50:01.607525: Inverter 0 scheduled charge enable is False
2026-08-17 22:50:01.607559: Inverter 0 charge windows currently []
2026-08-17 22:50:01.607586: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:50:01.607692: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:50:01.607729: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:50:01.607765: Inverter 0 scheduled discharge enable is False
2026-08-17 22:50:01.607884: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:50:01.607948: Inverter 0 discharge windows currently []
2026-08-17 22:50:01.607977: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:50:01.607996: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:50:01.608013: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:50:01.663569: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:50:01.663694: Plan was last updated on 2026-08-17 22:40:00+01:00 and is now 10.0 minutes old
2026-08-17 22:50:01.663938: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:50:01.663998: Best export window [ ]
2026-08-17 22:50:01.664847: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:50:01.668039: Load divergence over 8.0 hours mean 453.82W, min 309.6W, max 977.4W, std dev 155.66W, divergence 17.15%
2026-08-17 22:50:01.687652: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:50:01.687745: LoadML is_calculating False
2026-08-17 22:50:01.687802: Creating pool of 12 processes to match your CPU count
2026-08-17 22:50:01.807168: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 614.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.72kWh, PV 0.0kWh
2026-08-17 22:50:01.935549: Battery has 4.42 hours left - now at 5.44kWh
2026-08-17 22:50:01.978120: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 635.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.53kWh, PV 0.0kWh
2026-08-17 22:50:02.051933: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 343.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.53kWh, PV 0.0kWh
2026-08-17 22:50:02.122097: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 332.67p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.72kWh, PV 0.0kWh
2026-08-17 22:50:02.122187: Saving plan best values to HA entities
2026-08-17 22:50:02.269708: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:50:02.275042: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:50:02.280210: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.61kWh, house 0.0kWh, export 0.0kWh, metric 332.67p, metric10 343.68p
2026-08-17 22:50:02.354377: Marginal costs baseline metric (no standing charge): 286.0353
2026-08-17 22:50:02.624557: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 22:50:02.688990: Rate array import [{'start': 1370, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1370, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:50:02.689606: - Your estimated bill for today is £1.86 and tomorrow is £1.63
2026-08-17 22:50:02.689651: - Import rates are very expensive (33.8p) for the next 40 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:50:02.689673: - The battery is currently at 34% and is in eco mode for the next 40 minutes.
2026-08-17 22:50:02.689691: - For the next 48 hours there will be no solar generation.
2026-08-17 22:50:02.689709: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:50:02.689732: - Your next charge slot will be in 40 minutes where import rates will be cheap (8.0p).
2026-08-17 22:50:02.689750:
2026-08-17 22:50:02.732220: Plan calculation took 1.07 seconds
2026-08-17 22:50:02.736043: No high rate period found
2026-08-17 22:50:02.779343: Import threshold used for optimisation was 8.0p
2026-08-17 22:50:02.831709: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:50:02.837057: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 34%, target 100%
2026-08-17 22:50:02.837198: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:50:02.837328: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:50:02.837582: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:50:02.837675: No export window planned
2026-08-17 22:50:02.837804: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:50:02.837843: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:50:02.838003: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:50:02.838248: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:50:02.838338: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:50:02.838445: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:50:02.838571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.838630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.838678: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.838725: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.838779: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.838824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.838866: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.838965: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.839024: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.839071: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.839111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.839134: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.839179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.839222: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:02.839248: Inverter 0 count register writes 0
2026-08-17 22:50:02.851954: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 22:50:02.852099: Recompute is saving previous plan...
2026-08-17 22:50:02.852856: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 22:50:02.852914: Best export window [ ]
2026-08-17 22:50:02.853595: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:50:02.856337: Load divergence over 8.0 hours mean 453.82W, min 309.6W, max 977.4W, std dev 155.66W, divergence 17.15%
2026-08-17 22:50:02.870968: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:50:02.871073: LoadML is_calculating False
2026-08-17 22:50:02.871142: Creating pool of 12 processes to match your CPU count
2026-08-17 22:50:02.958288: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 22:50:02.959067: Optimise levels pass started at 2026-08-17 22:50:02
2026-08-17 22:50:02.959128: Optimise all windows, total charge 24 export 1
2026-08-17 22:50:03.320868: >> Region optimisation pass width 960 gives best_metric 409.64p, best_cost 424.47p, best_cycle 47.18kWh, best_import 32.92kWh
2026-08-17 22:50:03.442239: >> Region optimisation pass width 480 gives best_metric 409.64p, best_cost 424.47p, best_cycle 47.18kWh, best_import 32.92kWh
2026-08-17 22:50:03.682561: >> Region optimisation pass width 240 gives best_metric 409.64p, best_cost 424.47p, best_cycle 47.18kWh, best_import 32.92kWh
2026-08-17 22:50:04.508073: >> Region optimisation pass width 120 gives best_metric 409.16p, best_cost 420.29p, best_cycle 47.72kWh, best_import 32.39kWh
2026-08-17 22:50:04.508293: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 22:50:04.508384: Optimise levels pass ended at 2026-08-17 22:50:04, duration 1.5 seconds tried 73 combinations
2026-08-17 22:50:04.508495: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 409.16p, best_keep 0kWh, best_cycle 47.72kWh, best_carbon 0kg, best_import 32.39kWh
2026-08-17 22:50:04.525118: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 22:50:06.890937: Tweak plan optimisation started metric 269.3p, cost 279.7p
2026-08-17 22:50:07.188776: Tweak optimisation finished metric 269.3p, cost 279.7p, metric_keep 0kWh, cycle 22.78kWh, carbon 0kg, import 14.82kWh, changed 8 window(s)
2026-08-17 22:50:07.208656: Swap charge optimisation started metric 269.3p, cost 279.7p, min_improvement_swap 0.1p
2026-08-17 22:50:07.799830: Swap charge optimisation finished metric 269.3p, cost 279.7p
2026-08-17 22:50:07.911689: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 268.2p -> 267.96p, plan now metric 270.99p, cost 275.94p, cycle 23.38kWh, import 14.35kWh
2026-08-17 22:50:07.919344: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:50:07.919662: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:50:07.919864: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:50:07.920070: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 22:50:07.948122: Previous plan best metric is 269.3 (cost 279.7) and new plan best metric is 269.3 (cost 279.7)
2026-08-17 22:50:07.948320: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 22:50:07.948454: Plan valid is now true after recompute was False
2026-08-17 22:50:07.972070: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 612.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.51kWh, PV 0.0kWh
2026-08-17 22:50:08.068666: Battery has 4.42 hours left - now at 5.44kWh
2026-08-17 22:50:08.109044: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 633.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.32kWh, PV 0.0kWh
2026-08-17 22:50:08.183261: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 336.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.32kWh, PV 0.0kWh
2026-08-17 22:50:08.248153: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 324.38p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.51kWh, PV 0.0kWh
2026-08-17 22:50:08.248240: Saving plan best values to HA entities
2026-08-17 22:50:08.379046: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:50:08.384228: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:50:08.389290: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.57kWh, house 0.0kWh, export 0.0kWh, metric 324.38p, metric10 336.42p
2026-08-17 22:50:08.467295: Marginal costs baseline metric (no standing charge): 277.743
2026-08-17 22:50:08.754054: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 22:50:08.816444: Rate array import [{'start': 1370, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1370, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:50:08.817064: - Your estimated bill for today is £1.86 and tomorrow is £1.63
2026-08-17 22:50:08.817107: - Import rates are very expensive (33.8p) for the next 40 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:50:08.817128: - The battery is currently at 34% and is in eco mode for the next 40 minutes.
2026-08-17 22:50:08.817146: - For the next 48 hours there will be no solar generation.
2026-08-17 22:50:08.817164: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:50:08.817198: - Your next charge slot will be in 40 minutes where import rates will be cheap (8.0p).
2026-08-17 22:50:08.817222:
2026-08-17 22:50:08.861758: Plan calculation took 6.01 seconds
2026-08-17 22:50:08.862064: Inverter 0: Type SK Sunsynk
2026-08-17 22:50:08.862108: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:50:08.862342: Reserve min: 7%, battery_min: 7%
2026-08-17 22:50:08.862421: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:50:08.862770: Inverter 0 SoC: 5.4kW 34%, current charge rate 5000W, current discharge rate 5250W, current battery power 515W, current battery voltage 51.2V, grid power -55W, load power 572W, PV Power 0W
2026-08-17 22:50:08.863034: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:50:08.863161: Inverter 0 scheduled charge enable is False
2026-08-17 22:50:08.863226: Inverter 0 charge windows currently []
2026-08-17 22:50:08.863279: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:50:08.863435: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:50:08.863496: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:50:08.863542: Inverter 0 scheduled discharge enable is False
2026-08-17 22:50:08.863702: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:50:08.863750: Inverter 0 discharge windows currently []
2026-08-17 22:50:08.863799: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:50:08.863846: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:50:08.863866: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:50:08.917328: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 34%, target 100%
2026-08-17 22:50:08.917466: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:50:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:50:08.917534: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:50:08.917716: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:50:08.917795: No export window planned
2026-08-17 22:50:08.917900: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:50:08.917936: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:50:08.918065: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:50:08.918238: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:50:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:50:08.918294: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:50:08.918347: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:50:08.918432: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918471: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918524: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918558: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918584: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918608: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918632: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918827: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:50:08.918879: Inverter 0 count register writes 0
2026-08-17 22:50:08.938282: Total inverter register writes now 861
2026-08-17 22:50:08.969828: Info: Completed run status Demand
2026-08-17 22:50:08.975733: Info: record_status Demand
2026-08-17 22:50:08.981587: Saved current settings to /config/predbat_config.json
2026-08-17 22:50:08.981861: Compare, best tariff: current metric 104.68p
2026-08-17 22:50:49.089823: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:50:49.090147: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:50:49.090212: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:50:49.090406: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:50:49.090449: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:50:49.090471: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:50:49.090489: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:51:24.032321: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 22:51:24.927862: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:51:24.928111: Zero load period starting at 2026-08-17T10:54:00+0100 (716 minutes) for 189 minutes with base value 407.5
2026-08-17 22:51:24.928702: Processing 1345 30-minute periods for power integration
2026-08-17 22:51:25.012767: ML Component: Car charging hold False, car energy reported load False
2026-08-17 22:51:25.094977: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:51:25.175845: ML Temperature data points: 49031
2026-08-17 22:51:25.393550: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 22:51:25.425836: ML Component: Data fetch completed, load data age 59.0 days, 17098 data points
2026-08-17 22:51:25.425945: ML Component: No training needed, model age is 1.18 hours
2026-08-17 22:51:25.425999: ML Component: Generating predictions load data age 59.0 days, 17098 data points
2026-08-17 22:51:25.540740: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0464 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 22:51:25.988813: ML Component: Generated 576 predictions (total 30.91 kWh over 48h)
2026-08-17 22:51:26.027158: ML Component: Prediction cycle completed
2026-08-17 22:51:26.139686: ML Component: Saved 17098 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 22:52:49.308364: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:52:49.308583: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:52:49.308645: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:52:49.308778: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:52:49.308812: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:52:49.308830: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:52:49.308844: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:54:49.517465: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:54:49.517671: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:54:49.517708: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:54:49.517926: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:54:49.517964: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:54:49.517990: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:54:49.518005: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:55:00.594731: --------------- PredBat - update at 2026-08-17 22:55:00+01:00 with clock skew 0 minutes, minutes now 1375
2026-08-17 22:55:00.595578: Saved current settings to /config/predbat_config.json
2026-08-17 22:55:00.595715: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-17 22:55:00.595869: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 22:55:00.596011: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 22:55:00.614802: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 22:55:00.614963: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 22:55:00.615148: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 22:55:00.615673: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 22:55:00.615833: Predbat mode is set to Control charge & discharge
2026-08-17 22:55:00.820520: Found 21602 load_today datapoints going back 28 days
2026-08-17 22:55:00.820675: Using load_power data to fill gaps in load_today data
2026-08-17 22:55:01.748927: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 22:55:01.749123: Zero load period starting at 2026-08-17T10:54:00+0100 (721 minutes) for 189 minutes with base value 211.75
2026-08-17 22:55:01.750494: Processing 721 30-minute periods for power integration
2026-08-17 22:55:01.977113: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 22:55:01.977425: Car charging hold False, threshold 6.0kWh
2026-08-17 22:55:01.977517: Current data so far today: load 12.6kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-17 22:55:02.005452: Car 0 using Octopus Intelligent is unplugged
2026-08-17 22:55:02.005584: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 22:55:02.006722: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 22:55:02.006992: Standing charge is set to 46.63p
2026-08-17 22:55:02.117804: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.118313: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.118550: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.118740: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.118934: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.119179: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.119368: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.119535: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.119697: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 22:55:02.120990: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 22:55:02.121141: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 22:55:02.127085: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 22:55:02.127445: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 22:55:02.181877: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 22:55:02.182676: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 22:55:02.184476: High export rate found rates in range 99p to -99p
2026-08-17 22:55:02.223072: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 22:55:02.223240: Car 0 on Octopus Intelligent, no active plan
2026-08-17 22:55:02.241329: Battery level now 5.44kWh, -1hr ago 5.95kWh, at midnight 10.49kWh, battery value change in the last hour -3.52p, change today -34.69p, rate_forward 6.87p
2026-08-17 22:55:02.241825: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 22:55:02.305997: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 161.14p, import 114.51p, export 0.0p, carbon 0.0kg
2026-08-17 22:55:02.306160: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 22:55:02.424680: Using weighted-bucket historical load forecast over 14 days
2026-08-17 22:55:02.477813: Today's load divergence 96.52%, in-day adjustment 95.41%, damping 0.95x, yesterday 68.37% today 96.69% blend 4.51%
2026-08-17 22:55:02.477929: Today's predicted so far 14.34kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 14.34kWh forecast extra.
2026-08-17 22:55:02.477966: Today's actual load so far 13.81kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 22:55:02.517366: Inverter 0: Type SK Sunsynk
2026-08-17 22:55:02.517437: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 22:55:02.517641: Reserve min: 7%, battery_min: 7%
2026-08-17 22:55:02.517723: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 22:55:02.518052: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 459W, current battery voltage 51.2V, grid power -55W, load power 518W, PV Power 0W
2026-08-17 22:55:02.518265: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:55:02.518360: Inverter 0 scheduled charge enable is False
2026-08-17 22:55:02.518388: Inverter 0 charge windows currently []
2026-08-17 22:55:02.518421: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 22:55:02.518537: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:55:02.518572: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:55:02.518608: Inverter 0 scheduled discharge enable is False
2026-08-17 22:55:02.518733: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:55:02.518769: Inverter 0 discharge windows currently []
2026-08-17 22:55:02.518792: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:55:02.518812: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:55:02.518829: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:55:02.580003: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 22:55:02.580101: Plan was last updated on 2026-08-17 22:50:00+01:00 and is now 5.0 minutes old
2026-08-17 22:55:02.580309: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 22:55:02.580341: Best export window [ ]
2026-08-17 22:55:02.581207: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 22:55:02.584524: Load divergence over 8.0 hours mean 450.91W, min 316.8W, max 1032.6W, std dev 163.54W, divergence 18.13%
2026-08-17 22:55:02.604807: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 22:55:02.604929: LoadML is_calculating False
2026-08-17 22:55:02.605000: Creating pool of 12 processes to match your CPU count
2026-08-17 22:55:02.722928: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 614.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:10:00, load 29.59kWh, PV 0.0kWh
2026-08-17 22:55:02.854689: Battery has 4.25 hours left - now at 5.28kWh
2026-08-17 22:55:02.901022: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 635.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 02:55:00, load 30.41kWh, PV 0.0kWh
2026-08-17 22:55:02.985362: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 341.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.41kWh, PV 0.0kWh
2026-08-17 22:55:03.067439: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 329.17p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.59kWh, PV 0.0kWh
2026-08-17 22:55:03.067524: Saving plan best values to HA entities
2026-08-17 22:55:03.271816: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 22:55:03.296146: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 22:55:03.312037: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.17kWh, house 0kWh, export 0.0kWh, metric 329.17p, metric10 341.0p
2026-08-17 22:55:03.410112: Marginal costs baseline metric (no standing charge): 282.54
2026-08-17 22:55:03.684621: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 22:55:03.777467: Rate array import [{'start': 1375, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1375, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 22:55:03.778325: - Your estimated bill for today is £1.86 and tomorrow is £1.64
2026-08-17 22:55:03.778375: - Import rates are very expensive (33.8p) for the next 35 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 22:55:03.778398: - The battery is currently at 33% and is in eco mode for the next 35 minutes.
2026-08-17 22:55:03.778418: - For the next 48 hours there will be no solar generation.
2026-08-17 22:55:03.778436: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 22:55:03.778457: - Your next charge slot will be in 35 minutes where import rates will be cheap (8.0p).
2026-08-17 22:55:03.778475:
2026-08-17 22:55:03.836757: Plan calculation took 1.26 seconds
2026-08-17 22:55:03.841783: No high rate period found
2026-08-17 22:55:03.893648: Import threshold used for optimisation was 8.0p
2026-08-17 22:55:03.946487: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 22:55:03.952171: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 33%, target 100%
2026-08-17 22:55:03.952299: Inverter 0 disabled charge window while waiting for schedule (now 08-17 22:55:00 target set_window_minutes 30 charge start time 08-17 23:30:00) original inverter start time 08-19 00:00:00
2026-08-17 22:55:03.952391: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:55:03.952640: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:55:03.952733: No export window planned
2026-08-17 22:55:03.952862: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 22:55:03.952897: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-17 22:55:03.953049: Adjust demand (idle) time computed is 10:55:00-23:59:00
2026-08-17 22:55:03.953228: Inverter 0 not setting charging SoC as we are not within the window (now 08-17 22:55:00 target set_soc_minutes 30 charge start time 08-19 00:00:00)
2026-08-17 22:55:03.953288: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 22:55:03.953350: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 22:55:03.953435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953497: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953530: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953563: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953588: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 22:55:03.953886: Inverter 0 count register writes 0
2026-08-17 22:55:03.969580: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 22:55:03.976660: Total inverter register writes now 861
2026-08-17 22:55:04.013651: Info: Completed run status Demand
2026-08-17 22:55:04.019727: Info: record_status Demand
2026-08-17 22:55:04.025929: Saved current settings to /config/predbat_config.json
2026-08-17 22:55:04.026229: Compare, best tariff: current metric 104.68p
2026-08-17 22:55:21.183814: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 22:55:21.348349: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 22:55:34.128555: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:55:34.128786: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:55:34.128862: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:55:34.129095: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:55:34.129140: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:55:34.129161: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:55:34.129183: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:57:02.667266: Info: HAHistory: Pruning history data started.
2026-08-17 22:57:02.669671: Info: HAHistory: Pruning history data completed.
2026-08-17 22:57:34.341948: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:57:34.342188: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:57:34.342231: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:57:34.342361: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:57:34.342430: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:57:34.342476: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:57:34.342522: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 22:59:34.552414: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 22:59:34.552671: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 22:59:34.552718: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 22:59:34.552917: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 22:59:34.552960: Note: Inverter does not support discharge freeze - disabled
2026-08-17 22:59:34.552994: Note: Inverter does not support charge freeze - disabled
2026-08-17 22:59:34.553022: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:00:00.662988: --------------- PredBat - update at 2026-08-17 23:00:00+01:00 with clock skew 0 minutes, minutes now 1380
2026-08-17 23:00:00.663766: Saved current settings to /config/predbat_config.json
2026-08-17 23:00:00.663891: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-17 23:00:00.664002: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:00:00.664161: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:00:00.683069: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:00:00.683174: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:00:00.683310: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:00:00.683735: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:00:00.683831: Predbat mode is set to Control charge & discharge
2026-08-17 23:00:00.892007: Found 21602 load_today datapoints going back 27 days
2026-08-17 23:00:00.892141: Using load_power data to fill gaps in load_today data
2026-08-17 23:00:01.738133: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:00:01.738331: Zero load period starting at 2026-08-17T10:54:00+0100 (726 minutes) for 189 minutes with base value 211.725
2026-08-17 23:00:01.739139: Processing 721 30-minute periods for power integration
2026-08-17 23:00:01.933196: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:00:01.933329: Car charging hold False, threshold 6.0kWh
2026-08-17 23:00:01.933412: Current data so far today: load 12.65kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:00:01.950791: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:00:01.950913: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:00:01.951695: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:00:01.951770: Standing charge is set to 46.63p
2026-08-17 23:00:02.040744: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.041078: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.041405: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.041732: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.041925: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.042100: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.042274: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.042461: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.042626: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:00:02.043759: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:00:02.043863: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:00:02.049326: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:00:02.049746: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:00:02.096146: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:00:02.096287: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:00:02.098178: High export rate found rates in range 99p to -99p
2026-08-17 23:00:02.127200: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:00:02.127311: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:00:02.139194: Battery level now 5.28kWh, -1hr ago 5.95kWh, at midnight 10.49kWh, battery value change in the last hour -4.62p, change today -35.79p, rate_forward 6.87p
2026-08-17 23:00:02.139573: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:00:02.195462: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:00:02.195614: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:00:02.297014: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:00:02.343185: Today's load divergence 95.88%, in-day adjustment 94.93%, damping 0.95x, yesterday 68.37% today 96.09% blend 4.17%
2026-08-17 23:00:02.343292: Today's predicted so far 14.5kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 14.5kWh forecast extra.
2026-08-17 23:00:02.343326: Today's actual load so far 13.88kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 23:00:02.372836: Inverter 0: Type SK Sunsynk
2026-08-17 23:00:02.372921: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:00:02.373100: Reserve min: 7%, battery_min: 7%
2026-08-17 23:00:02.373177: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:00:02.373453: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 479W, current battery voltage 51.2V, grid power -55W, load power 534W, PV Power 0W
2026-08-17 23:00:02.373609: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-17 23:00:02.373697: Inverter 0 scheduled charge enable is False
2026-08-17 23:00:02.373752: Inverter 0 charge windows currently []
2026-08-17 23:00:02.373785: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-17 23:00:02.373893: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:00:02.373928: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:00:02.373964: Inverter 0 scheduled discharge enable is False
2026-08-17 23:00:02.374097: Inverter 0 idle time is 08-17 10:55:00-08-17 23:59:00
2026-08-17 23:00:02.374133: Inverter 0 discharge windows currently []
2026-08-17 23:00:02.374156: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:00:02.374175: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:00:02.374192: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:00:02.431733: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:00:02.431852: Plan was last updated on 2026-08-17 22:50:00+01:00 and is now 10.0 minutes old
2026-08-17 23:00:02.432167: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:00:02.432219: Best export window [ ]
2026-08-17 23:00:02.433069: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:00:02.436252: Load divergence over 8.0 hours mean 446.84W, min 328.8W, max 1063.8W, std dev 148.08W, divergence 16.57%
2026-08-17 23:00:02.456086: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:00:02.456209: LoadML is_calculating False
2026-08-17 23:00:02.456272: Creating pool of 12 processes to match your CPU count
2026-08-17 23:00:02.576854: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 617.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.64kWh, PV 0.0kWh
2026-08-17 23:00:02.718729: Battery has 4.25 hours left - now at 5.28kWh
2026-08-17 23:00:02.765990: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 638.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.45kWh, PV 0.0kWh
2026-08-17 23:00:02.849536: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 346.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.45kWh, PV 0.0kWh
2026-08-17 23:00:02.926245: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 335.79p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.64kWh, PV 0.0kWh
2026-08-17 23:00:02.926323: Saving plan best values to HA entities
2026-08-17 23:00:03.097974: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 23:00:03.104872: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:00:03.111297: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.58kWh, house 0.0kWh, export 0.0kWh, metric 335.79p, metric10 346.92p
2026-08-17 23:00:03.183649: Marginal costs baseline metric (no standing charge): 289.1533
2026-08-17 23:00:03.430234: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 23:00:03.501090: Rate array import [{'start': 1380, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1380, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:00:03.501638: - Your estimated bill for today is £1.88 and tomorrow is £1.63
2026-08-17 23:00:03.501677: - Import rates are very expensive (33.8p) for the next 30 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:00:03.501711: - The battery is currently at 33% and is in eco mode for the next 30 minutes.
2026-08-17 23:00:03.501727: - For the next 48 hours there will be no solar generation.
2026-08-17 23:00:03.501742: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:00:03.501756: - Your next charge slot will be in 30 minutes where import rates will be cheap (8.0p).
2026-08-17 23:00:03.501774:
2026-08-17 23:00:03.552787: Plan calculation took 1.12 seconds
2026-08-17 23:00:03.557978: No high rate period found
2026-08-17 23:00:03.612113: Import threshold used for optimisation was 8.0p
2026-08-17 23:00:03.665183: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 23:00:03.671541: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 33%, target 100%
2026-08-17 23:00:03.671678: Inverter 0 configuring charge window now (now 08-17 23:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:00:03.671961: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:00:03.672197: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:00:03.672456: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:00:03.672546: Inverter 0 set new demand (idle) end time to 23:30:00 was 23:59:00
2026-08-17 23:00:08.679040: Inverter 0 write_and_poll_value: Wrote 23:30:00 to idle_end_time, successfully now 23:30:00
2026-08-17 23:00:13.686378: Inverter 0 write_and_poll_value: Wrote 23:30:00 to charge_start_time, successfully now 23:30:00
2026-08-17 23:00:18.694777: Inverter 0 write_and_poll_value: Wrote 05:00:00 to charge_end_time, successfully now 05:00:00
2026-08-17 23:00:18.694913: Inverter 0 Updated start and end charge window to 23:30:00 - 05:00:00 (old 23:59:00 - 23:59:00)
2026-08-17 23:00:23.701705: Inverter 0 Wrote scheduled_charge_enable to True successfully and got on
2026-08-17 23:00:23.701820: Inverter 0 Turning on scheduled charge
2026-08-17 23:00:23.701857: No export window planned
2026-08-17 23:00:23.702049: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:00:23.702087: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:00:23.702285: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:00:23.702493: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:00:23.702558: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:00:23.702618: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:00:23.702708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.702743: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.702802: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.702830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.702861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.702886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.702910: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.702974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.703009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.703035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.703058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.703082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.703111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.703136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:23.703156: Inverter 0 count register writes 0
2026-08-17 23:00:23.719933: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 23:00:23.720098: Recompute is saving previous plan...
2026-08-17 23:00:23.720984: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 0%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0% ]
2026-08-17 23:00:23.721032: Best export window [ ]
2026-08-17 23:00:23.721866: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:00:23.724943: Load divergence over 8.0 hours mean 446.84W, min 328.8W, max 1063.8W, std dev 148.08W, divergence 16.57%
2026-08-17 23:00:23.742338: Calculating data from yesterday for savings calculation
2026-08-17 23:00:23.756819: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-17 23:00:23.813314: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 23:00:23.829817: predict yesterday10 end_record 08-18 00:00:00, final soc 9.59kWh, metric 144.31p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 23:00:23.852011: predict yesterday end_record 08-18 00:00:00, final soc 9.98kWh, metric 147.65p, metric_keep 0kWh, min_soc 7.65kWh @ 08-17 23:25:00, load 11.42kWh, PV 0.0kWh
2026-08-17 23:00:23.894001: Yesterday: Predbat disabled was £1.48 (adjusted £0.79) vs £3.17 (adjusted £2.5), saving £-1.7 (adjusted £-1.71) with import 12.63kWh, export 0.0kWh, battery_cycle 16.73kWh, start_soc 9.96kWh, final_soc 9.98kWh and battery_value 68.57kWh
2026-08-17 23:00:23.969093: predict yesterday end_record 08-18 00:00:00, final soc 0.0kWh, metric 301.5p, metric_keep 280.97kWh, min_soc 0kWh @ 08-17 00:00:00, load 11.42kWh, PV 0.0kWh
2026-08-17 23:00:23.969241: Yesterday: No Battery/PV system cost predicted was £3.02 (adjusted £3.02) vs £3.17 (adjusted £2.5), saving £-0.16 (adjusted £0.51) with import 11.42kWh, export 0kWh and battery_value 0.0kWh
2026-08-17 23:00:23.979288: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:00:23.979410: LoadML is_calculating False
2026-08-17 23:00:23.979474: Creating pool of 12 processes to match your CPU count
2026-08-17 23:00:24.061570: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 23:00:24.062379: Optimise levels pass started at 2026-08-17 23:00:24
2026-08-17 23:00:24.062432: Optimise all windows, total charge 24 export 1
2026-08-17 23:00:24.598330: >> Region optimisation pass width 960 gives best_metric 414.05p, best_cost 427.76p, best_cycle 47.17kWh, best_import 32.9kWh
2026-08-17 23:00:24.758395: >> Region optimisation pass width 480 gives best_metric 414.05p, best_cost 427.76p, best_cycle 47.17kWh, best_import 32.9kWh
2026-08-17 23:00:25.019157: >> Region optimisation pass width 240 gives best_metric 414.05p, best_cost 427.76p, best_cycle 47.17kWh, best_import 32.9kWh
2026-08-17 23:00:25.558775: >> Region optimisation pass width 120 gives best_metric 413.75p, best_cost 423.53p, best_cycle 47.72kWh, best_import 32.38kWh
2026-08-17 23:00:25.559140: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 23:00:25.559226: Optimise levels pass ended at 2026-08-17 23:00:25, duration 1.5 seconds tried 72 combinations
2026-08-17 23:00:25.559315: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 413.75p, best_keep 0kWh, best_cycle 47.72kWh, best_carbon 0kg, best_import 32.38kWh
2026-08-17 23:00:25.578081: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 23:00:27.428273: Tweak plan optimisation started metric 274.5p, cost 286.58p
2026-08-17 23:00:27.648769: Tweak optimisation finished metric 274.5p, cost 286.58p, metric_keep 0kWh, cycle 25.88kWh, carbon 0kg, import 15.26kWh, changed 8 window(s)
2026-08-17 23:00:27.667290: Swap charge optimisation started metric 274.5p, cost 286.58p, min_improvement_swap 0.1p
2026-08-17 23:00:28.179192: Swap charge optimisation finished metric 274.5p, cost 286.58p
2026-08-17 23:00:28.263867: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 273.59p -> 273.37p, plan now metric 275.45p, cost 283.64p, cycle 26.26kWh, import 14.89kWh
2026-08-17 23:00:28.273515: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:00:28.273774: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:00:28.273918: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:00:28.274033: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:00:28.309518: Previous plan best metric is 272.55 (cost 282.98) and new plan best metric is 274.5 (cost 286.58)
2026-08-17 23:00:28.310148: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 23:00:28.310319: Plan valid is now true after recompute was False
2026-08-17 23:00:28.338248: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 616.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:15:00, load 29.45kWh, PV 0.0kWh
2026-08-17 23:00:28.438606: Battery has 4.25 hours left - now at 5.28kWh
2026-08-17 23:00:28.477078: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 636.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 03:00:00, load 30.25kWh, PV 0.0kWh
2026-08-17 23:00:28.536042: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 339.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.25kWh, PV 0.0kWh
2026-08-17 23:00:28.608482: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 327.6p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.45kWh, PV 0.0kWh
2026-08-17 23:00:28.608560: Saving plan best values to HA entities
2026-08-17 23:00:28.736129: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 23:00:28.741151: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:00:28.746542: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.56kWh, house 0.0kWh, export 0.0kWh, metric 327.6p, metric10 339.78p
2026-08-17 23:00:28.820256: Marginal costs baseline metric (no standing charge): 280.9707
2026-08-17 23:00:29.062743: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 23:00:29.119223: Rate array import [{'start': 1380, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1380, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:00:29.119832: - Your estimated bill for today is £1.88 and tomorrow is £1.63
2026-08-17 23:00:29.119875: - Import rates are very expensive (33.8p) for the next 30 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:00:29.119964: - The battery is currently at 33% and is in eco mode for the next 30 minutes.
2026-08-17 23:00:29.120007: - For the next 48 hours there will be no solar generation.
2026-08-17 23:00:29.120028: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:00:29.120046: - Your next charge slot will be in 30 minutes where import rates will be cheap (8.0p).
2026-08-17 23:00:29.120072:
2026-08-17 23:00:29.167550: Plan calculation took 5.45 seconds
2026-08-17 23:00:29.167847: Inverter 0: Type SK Sunsynk
2026-08-17 23:00:29.167916: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:00:29.168147: Reserve min: 7%, battery_min: 7%
2026-08-17 23:00:29.168246: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:00:29.168600: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 716W, current battery voltage 51.2V, grid power -55W, load power 786W, PV Power 0W
2026-08-17 23:00:29.168836: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:00:29.168969: Inverter 0 scheduled charge enable is True
2026-08-17 23:00:29.169202: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:00:29.169414: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:00:29.169569: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:00:29.169617: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:00:29.169673: Inverter 0 scheduled discharge enable is False
2026-08-17 23:00:29.169836: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:00:29.169873: Inverter 0 discharge windows currently []
2026-08-17 23:00:29.169893: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:00:29.169927: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:00:29.169957: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:00:29.230725: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 33%, target 100%
2026-08-17 23:00:29.230875: Inverter 0 configuring charge window now (now 08-17 23:00:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:00:29.231001: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:00:29.231149: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:00:29.231328: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:00:29.231424: No export window planned
2026-08-17 23:00:29.231543: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:00:29.231578: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:00:29.231713: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:00:29.231838: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:00:29.231888: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:00:29.232008: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:00:29.232108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232181: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232234: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232266: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232291: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232321: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232438: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:00:29.232594: Inverter 0 count register writes 0
2026-08-17 23:00:29.251716: Total inverter register writes now 861
2026-08-17 23:00:29.284180: Info: Completed run status Demand
2026-08-17 23:00:29.289926: Info: record_status Demand
2026-08-17 23:00:29.297050: Saved current settings to /config/predbat_config.json
2026-08-17 23:00:29.297339: Compare, best tariff: current metric 104.68p
2026-08-17 23:01:04.411131: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:01:04.411510: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:01:04.411567: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:01:04.411785: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:01:04.411852: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:01:04.411893: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:01:04.411969: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:03:04.621443: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:03:04.621674: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:03:04.621710: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:03:04.621820: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:03:04.621851: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:03:04.621869: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:03:04.621883: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:05:00.820758: --------------- PredBat - update at 2026-08-17 23:05:00+01:00 with clock skew 0 minutes, minutes now 1385
2026-08-17 23:05:00.821431: Saved current settings to /config/predbat_config.json
2026-08-17 23:05:00.821597: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-17 23:05:00.821727: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:05:00.821830: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:05:00.841003: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:05:00.841158: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:05:00.841332: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:05:00.841844: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:05:00.841962: Predbat mode is set to Control charge & discharge
2026-08-17 23:05:01.034658: Found 21602 load_today datapoints going back 27 days
2026-08-17 23:05:01.034809: Using load_power data to fill gaps in load_today data
2026-08-17 23:05:01.947664: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:05:01.947865: Zero load period starting at 2026-08-17T10:54:00+0100 (731 minutes) for 189 minutes with base value 211.7
2026-08-17 23:05:01.948634: Processing 721 30-minute periods for power integration
2026-08-17 23:05:02.136056: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:05:02.136174: Car charging hold False, threshold 6.0kWh
2026-08-17 23:05:02.136218: Current data so far today: load 12.7kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:05:02.153111: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:05:02.153222: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:05:02.154003: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:05:02.154082: Standing charge is set to 46.63p
2026-08-17 23:05:02.243259: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.243551: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.243806: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.244093: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.244330: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.244556: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.244819: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.245040: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.245256: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:05:02.246467: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:05:02.246627: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:05:02.252202: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:05:02.252684: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:05:02.296714: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:05:02.296837: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:05:02.298254: High export rate found rates in range 99p to -99p
2026-08-17 23:05:02.327387: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:05:02.327512: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:05:02.339010: Battery level now 5.28kWh, -1hr ago 5.8kWh, at midnight 10.49kWh, battery value change in the last hour -3.57p, change today -35.79p, rate_forward 6.87p
2026-08-17 23:05:02.339409: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:05:02.396053: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:05:02.396206: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:05:02.497949: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:05:02.534536: Today's load divergence 95.35%, in-day adjustment 94.54%, damping 0.95x, yesterday 68.37% today 95.58% blend 3.82%
2026-08-17 23:05:02.534646: Today's predicted so far 14.64kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 14.64kWh forecast extra.
2026-08-17 23:05:02.534679: Today's actual load so far 13.95kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 23:05:02.563828: Inverter 0: Type SK Sunsynk
2026-08-17 23:05:02.563952: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:05:02.564183: Reserve min: 7%, battery_min: 7%
2026-08-17 23:05:02.564273: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:05:02.564574: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 631W, current battery voltage 51.2V, grid power -52W, load power 593W, PV Power 0W
2026-08-17 23:05:02.564777: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:05:02.564887: Inverter 0 scheduled charge enable is True
2026-08-17 23:05:02.564948: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:05:02.565097: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:05:02.565262: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:05:02.565304: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:05:02.565357: Inverter 0 scheduled discharge enable is False
2026-08-17 23:05:02.565527: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:05:02.565569: Inverter 0 discharge windows currently []
2026-08-17 23:05:02.565627: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:05:02.565658: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:05:02.565677: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:05:02.625575: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:05:02.625687: Plan was last updated on 2026-08-17 23:00:00+01:00 and is now 5.0 minutes old
2026-08-17 23:05:02.625885: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:05:02.625924: Best export window [ ]
2026-08-17 23:05:02.626701: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:05:02.630040: Load divergence over 8.0 hours mean 443.78W, min 322.2W, max 1002.6W, std dev 139.78W, divergence 15.75%
2026-08-17 23:05:02.649139: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:05:02.649284: LoadML is_calculating False
2026-08-17 23:05:02.649370: Creating pool of 12 processes to match your CPU count
2026-08-17 23:05:02.771642: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 616.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 29.51kWh, PV 0.0kWh
2026-08-17 23:05:02.890631: Battery has 6.25 hours left - now at 5.28kWh
2026-08-17 23:05:02.935724: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 636.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.31kWh, PV 0.0kWh
2026-08-17 23:05:03.014404: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 342.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.31kWh, PV 0.0kWh
2026-08-17 23:05:03.098832: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 330.92p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.51kWh, PV 0.0kWh
2026-08-17 23:05:03.098922: Saving plan best values to HA entities
2026-08-17 23:05:03.251268: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 23:05:03.257936: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:05:03.263811: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.97kWh, house 0.0kWh, export 0.0kWh, metric 330.92p, metric10 342.36p
2026-08-17 23:05:03.345035: Marginal costs baseline metric (no standing charge): 284.2869
2026-08-17 23:05:03.613722: Marginal energy costs matrix computed: min=8.0 max=32.62
2026-08-17 23:05:03.683412: Rate array import [{'start': 1385, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1385, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:05:03.684043: - Your estimated bill for today is £1.88 and tomorrow is £1.62
2026-08-17 23:05:03.684091: - Import rates are very expensive (33.8p) for the next 25 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:05:03.684114: - The battery is currently at 33% and is in eco mode for the next 25 minutes.
2026-08-17 23:05:03.684132: - For the next 48 hours there will be no solar generation.
2026-08-17 23:05:03.684149: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:05:03.684166: - Your next charge slot will be in 25 minutes where import rates will be cheap (8.0p).
2026-08-17 23:05:03.684190:
2026-08-17 23:05:03.730458: Plan calculation took 1.10 seconds
2026-08-17 23:05:03.734227: No high rate period found
2026-08-17 23:05:03.785914: Import threshold used for optimisation was 8.0p
2026-08-17 23:05:03.852428: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 23:05:03.859940: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 33%, target 100%
2026-08-17 23:05:03.860080: Inverter 0 configuring charge window now (now 08-17 23:05:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:05:03.860253: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:05:03.860517: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:05:03.860884: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:05:03.860991: No export window planned
2026-08-17 23:05:03.861129: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:05:03.861164: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:05:03.861298: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:05:03.861445: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:05:03.861509: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:05:03.861618: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:05:03.861767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.861834: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.861891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.861954: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862008: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862110: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862380: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862431: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:05:03.862494: Inverter 0 count register writes 0
2026-08-17 23:05:03.880632: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 23:05:03.886030: Total inverter register writes now 861
2026-08-17 23:05:03.914157: Info: Completed run status Demand
2026-08-17 23:05:03.920621: Info: record_status Demand
2026-08-17 23:05:03.926571: Saved current settings to /config/predbat_config.json
2026-08-17 23:05:03.926828: Compare, best tariff: current metric 104.68p
2026-08-17 23:05:34.031601: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:05:34.032012: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:05:34.032116: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:05:34.032299: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:05:34.032374: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:05:34.032402: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:05:34.032445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:07:34.241542: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:07:34.241881: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:07:34.241932: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:07:34.242153: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:07:34.242214: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:07:34.242255: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:07:34.242290: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:09:34.459637: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:09:34.459996: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:09:34.460048: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:09:34.460243: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:09:34.460290: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:09:34.460321: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:09:34.460363: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:10:00.570848: --------------- PredBat - update at 2026-08-17 23:10:00+01:00 with clock skew 0 minutes, minutes now 1390
2026-08-17 23:10:00.571554: Saved current settings to /config/predbat_config.json
2026-08-17 23:10:00.571675: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-17 23:10:00.571771: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:10:00.571891: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:10:00.588122: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:10:00.588262: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:10:00.588431: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:10:00.589046: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:10:00.589196: Predbat mode is set to Control charge & discharge
2026-08-17 23:10:00.774574: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:10:00.774708: Using load_power data to fill gaps in load_today data
2026-08-17 23:10:01.542422: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:10:01.542589: Zero load period starting at 2026-08-17T10:54:00+0100 (736 minutes) for 189 minutes with base value 211.675
2026-08-17 23:10:01.543214: Processing 721 30-minute periods for power integration
2026-08-17 23:10:01.690918: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:10:01.691016: Car charging hold False, threshold 6.0kWh
2026-08-17 23:10:01.691051: Current data so far today: load 12.75kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:10:01.704589: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:10:01.704685: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:10:01.705335: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:10:01.705402: Standing charge is set to 46.63p
2026-08-17 23:10:01.788146: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.788352: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.788494: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.788642: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.788806: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.788948: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.789085: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.789216: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.789346: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:10:01.790199: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:10:01.790286: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:10:01.794670: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:10:01.794983: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:10:01.830840: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:10:01.830946: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:10:01.832104: High export rate found rates in range 99p to -99p
2026-08-17 23:10:01.854806: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:10:01.854910: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:10:01.865047: Battery level now 5.28kWh, -1hr ago 5.8kWh, at midnight 10.49kWh, battery value change in the last hour -3.57p, change today -35.79p, rate_forward 6.87p
2026-08-17 23:10:01.865482: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:10:01.923472: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:10:01.923612: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:10:02.006444: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:10:02.036766: Today's load divergence 95.23%, in-day adjustment 94.53%, damping 0.95x, yesterday 68.37% today 95.47% blend 3.47%
2026-08-17 23:10:02.036862: Today's predicted so far 14.68kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 14.68kWh forecast extra.
2026-08-17 23:10:02.036888: Today's actual load so far 13.97kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 23:10:02.065114: Inverter 0: Type SK Sunsynk
2026-08-17 23:10:02.065188: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:10:02.065335: Reserve min: 7%, battery_min: 7%
2026-08-17 23:10:02.065399: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:10:02.065612: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 750W, current battery voltage 51.2V, grid power -54W, load power 821W, PV Power 0W
2026-08-17 23:10:02.065751: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:10:02.065823: Inverter 0 scheduled charge enable is True
2026-08-17 23:10:02.065860: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:10:02.065937: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:10:02.066039: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:10:02.066069: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:10:02.066099: Inverter 0 scheduled discharge enable is False
2026-08-17 23:10:02.066195: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:10:02.066224: Inverter 0 discharge windows currently []
2026-08-17 23:10:02.066243: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:10:02.066261: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:10:02.066276: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:10:02.116511: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:10:02.116598: Plan was last updated on 2026-08-17 23:00:00+01:00 and is now 10.0 minutes old
2026-08-17 23:10:02.116784: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:10:02.116850: Best export window [ ]
2026-08-17 23:10:02.117861: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:10:02.120582: Load divergence over 8.0 hours mean 442.26W, min 294.6W, max 956.4W, std dev 136.82W, divergence 15.47%
2026-08-17 23:10:02.135995: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:10:02.136103: LoadML is_calculating False
2026-08-17 23:10:02.136153: Creating pool of 12 processes to match your CPU count
2026-08-17 23:10:02.235299: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 616.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:25:00, load 29.58kWh, PV 0.0kWh
2026-08-17 23:10:02.352837: Battery has 6.25 hours left - now at 5.28kWh
2026-08-17 23:10:02.391499: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 637.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.38kWh, PV 0.0kWh
2026-08-17 23:10:02.465446: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 345.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.38kWh, PV 0.0kWh
2026-08-17 23:10:02.535078: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 334.3p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.58kWh, PV 0.0kWh
2026-08-17 23:10:02.535169: Saving plan best values to HA entities
2026-08-17 23:10:02.684629: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 23:10:02.689965: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 23:10:02.694606: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.39kWh, house 0.0kWh, export 0.0kWh, metric 334.3p, metric10 345.08p
2026-08-17 23:10:02.763552: Marginal costs baseline metric (no standing charge): 287.6685
2026-08-17 23:10:02.974013: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 23:10:03.035179: Rate array import [{'start': 1390, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1390, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:10:03.035696: - Your estimated bill for today is £1.88 and tomorrow is £1.62
2026-08-17 23:10:03.035745: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:10:03.035765: - The battery is currently at 33% and is in eco mode for the next 20 minutes.
2026-08-17 23:10:03.035781: - For the next 48 hours there will be no solar generation.
2026-08-17 23:10:03.035796: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:10:03.035810: - Your next charge slot will be in 20 minutes where import rates will be cheap (8.0p).
2026-08-17 23:10:03.035824:
2026-08-17 23:10:03.076297: Plan calculation took 0.96 seconds
2026-08-17 23:10:03.080064: No high rate period found
2026-08-17 23:10:03.130139: Import threshold used for optimisation was 8.0p
2026-08-17 23:10:03.185100: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 23:10:03.190220: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 33%, target 100%
2026-08-17 23:10:03.190318: Inverter 0 configuring charge window now (now 08-17 23:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:10:03.190448: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:10:03.190660: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:10:03.190965: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:10:03.191051: No export window planned
2026-08-17 23:10:03.191156: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:10:03.191184: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:10:03.191294: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:10:03.191413: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:10:03.191477: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:10:03.191531: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:10:03.191606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191638: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191665: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191712: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191748: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191771: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191852: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191915: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.191991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:03.192011: Inverter 0 count register writes 0
2026-08-17 23:10:03.205975: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 23:10:03.206132: Recompute is saving previous plan...
2026-08-17 23:10:03.206903: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 23:10:03.206945: Best export window [ ]
2026-08-17 23:10:03.207633: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:10:03.210546: Load divergence over 8.0 hours mean 442.26W, min 294.6W, max 956.4W, std dev 136.82W, divergence 15.47%
2026-08-17 23:10:03.224967: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:10:03.225058: LoadML is_calculating False
2026-08-17 23:10:03.225119: Creating pool of 12 processes to match your CPU count
2026-08-17 23:10:03.301879: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 23:10:03.302671: Optimise levels pass started at 2026-08-17 23:10:03
2026-08-17 23:10:03.302743: Optimise all windows, total charge 24 export 1
2026-08-17 23:10:03.632968: >> Region optimisation pass width 960 gives best_metric 413.89p, best_cost 426.07p, best_cycle 46.98kWh, best_import 32.69kWh
2026-08-17 23:10:03.749375: >> Region optimisation pass width 480 gives best_metric 413.89p, best_cost 426.07p, best_cycle 46.98kWh, best_import 32.69kWh
2026-08-17 23:10:03.990678: >> Region optimisation pass width 240 gives best_metric 413.89p, best_cost 426.07p, best_cycle 46.98kWh, best_import 32.69kWh
2026-08-17 23:10:04.726450: >> Region optimisation pass width 120 gives best_metric 413.6p, best_cost 424.08p, best_cycle 47.24kWh, best_import 32.45kWh
2026-08-17 23:10:04.726657: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 23:10:04.726746: Optimise levels pass ended at 2026-08-17 23:10:04, duration 1.4 seconds tried 67 combinations
2026-08-17 23:10:04.726895: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 413.6p, best_keep 0kWh, best_cycle 47.24kWh, best_carbon 0kg, best_import 32.45kWh
2026-08-17 23:10:04.744939: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 23:10:07.041360: Tweak plan optimisation started metric 270.88p, cost 281.36p
2026-08-17 23:10:07.306207: Tweak optimisation finished metric 270.88p, cost 281.36p, metric_keep 0kWh, cycle 22.21kWh, carbon 0kg, import 14.61kWh, changed 8 window(s)
2026-08-17 23:10:07.324921: Swap charge optimisation started metric 270.88p, cost 281.36p, min_improvement_swap 0.1p
2026-08-17 23:10:07.947521: Swap charge optimisation finished metric 270.88p, cost 281.36p
2026-08-17 23:10:08.064799: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 269.83p -> 269.53p, plan now metric 272.73p, cost 277.22p, cycle 22.75kWh, import 14.09kWh
2026-08-17 23:10:08.072563: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:10:08.072864: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:10:08.073038: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:10:08.073183: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:10:08.102314: Previous plan best metric is 270.88 (cost 281.36) and new plan best metric is 270.88 (cost 281.36)
2026-08-17 23:10:08.102486: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 23:10:08.102601: Plan valid is now true after recompute was False
2026-08-17 23:10:08.127581: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:25:00, load 29.37kWh, PV 0.0kWh
2026-08-17 23:10:08.233351: Battery has 6.25 hours left - now at 5.28kWh
2026-08-17 23:10:08.283746: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.17kWh, PV 0.0kWh
2026-08-17 23:10:08.362904: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 337.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.17kWh, PV 0.0kWh
2026-08-17 23:10:08.427036: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 326.02p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.37kWh, PV 0.0kWh
2026-08-17 23:10:08.427114: Saving plan best values to HA entities
2026-08-17 23:10:08.558729: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 23:10:08.563415: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 23:10:08.568184: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.36kWh, house 0.0kWh, export 0.0kWh, metric 326.02p, metric10 337.83p
2026-08-17 23:10:08.630895: Marginal costs baseline metric (no standing charge): 279.3843
2026-08-17 23:10:08.849488: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 23:10:08.901405: Rate array import [{'start': 1390, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1390, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:10:08.901908: - Your estimated bill for today is £1.88 and tomorrow is £1.62
2026-08-17 23:10:08.901944: - Import rates are very expensive (33.8p) for the next 20 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:10:08.901963: - The battery is currently at 33% and is in eco mode for the next 20 minutes.
2026-08-17 23:10:08.901977: - For the next 48 hours there will be no solar generation.
2026-08-17 23:10:08.901991: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:10:08.902005: - Your next charge slot will be in 20 minutes where import rates will be cheap (8.0p).
2026-08-17 23:10:08.902019:
2026-08-17 23:10:08.943662: Plan calculation took 5.74 seconds
2026-08-17 23:10:08.943987: Inverter 0: Type SK Sunsynk
2026-08-17 23:10:08.944033: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:10:08.944235: Reserve min: 7%, battery_min: 7%
2026-08-17 23:10:08.944300: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:10:08.944579: Inverter 0 SoC: 5.28kW 33%, current charge rate 5000W, current discharge rate 5250W, current battery power 750W, current battery voltage 51.2V, grid power -54W, load power 821W, PV Power 0W
2026-08-17 23:10:08.944785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:10:08.944874: Inverter 0 scheduled charge enable is True
2026-08-17 23:10:08.944914: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:10:08.944995: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:10:08.945094: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:10:08.945126: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:10:08.945157: Inverter 0 scheduled discharge enable is False
2026-08-17 23:10:08.945256: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:10:08.945286: Inverter 0 discharge windows currently []
2026-08-17 23:10:08.945304: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:10:08.945320: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:10:08.945337: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:10:08.993261: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 33%, target 100%
2026-08-17 23:10:08.993370: Inverter 0 configuring charge window now (now 08-17 23:10:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:10:08.993463: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:10:08.993574: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:10:08.993715: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:10:08.993800: No export window planned
2026-08-17 23:10:08.993892: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:10:08.993920: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:10:08.994029: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:10:08.994133: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:10:08.994172: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:10:08.994211: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:10:08.994290: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994323: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994348: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994404: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994841: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:10:08.994904: Inverter 0 count register writes 0
2026-08-17 23:10:09.013882: Total inverter register writes now 861
2026-08-17 23:10:09.049861: Info: Completed run status Demand
2026-08-17 23:10:09.057674: Info: record_status Demand
2026-08-17 23:10:09.066092: Saved current settings to /config/predbat_config.json
2026-08-17 23:10:09.066373: Compare, best tariff: current metric 104.68p
2026-08-17 23:10:49.176129: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:10:49.176378: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:10:49.176420: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:10:49.176550: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:10:49.176588: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:10:49.176609: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:10:49.176634: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:12:49.385100: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:12:49.385373: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:12:49.385410: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:12:49.385557: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:12:49.385604: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:12:49.385632: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:12:49.385660: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:14:49.605168: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:14:49.605499: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:14:49.605552: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:14:49.605734: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:14:49.605786: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:14:49.605887: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:14:49.605942: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:15:00.708649: --------------- PredBat - update at 2026-08-17 23:15:00+01:00 with clock skew 0 minutes, minutes now 1395
2026-08-17 23:15:00.709554: Saved current settings to /config/predbat_config.json
2026-08-17 23:15:00.953839: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:15:00.953983: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:15:00.974270: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:15:00.974408: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:15:00.974615: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:15:00.975406: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:15:00.975536: Predbat mode is set to Control charge & discharge
2026-08-17 23:15:01.167293: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:15:01.167447: Using load_power data to fill gaps in load_today data
2026-08-17 23:15:02.010201: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:15:02.010458: Zero load period starting at 2026-08-17T10:54:00+0100 (741 minutes) for 189 minutes with base value 211.65
2026-08-17 23:15:02.011703: Processing 721 30-minute periods for power integration
2026-08-17 23:15:02.190908: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:15:02.191008: Car charging hold False, threshold 6.0kWh
2026-08-17 23:15:02.191044: Current data so far today: load 12.8kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:15:02.204986: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:15:02.205065: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:15:02.205750: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:15:02.205816: Standing charge is set to 46.63p
2026-08-17 23:15:02.301292: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.301537: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.301722: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.301928: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.302105: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.302272: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.302442: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.302606: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.302927: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:15:02.303974: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:15:02.304291: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:15:02.308808: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:15:02.309117: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:15:02.344463: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:15:02.344560: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:15:02.345726: High export rate found rates in range 99p to -99p
2026-08-17 23:15:02.371411: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:15:02.371519: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:15:02.382290: Battery level now 5.28kWh, -1hr ago 5.74kWh, at midnight 10.49kWh, battery value change in the last hour -3.13p, change today -35.79p, rate_forward 6.87p
2026-08-17 23:15:02.382644: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:15:02.437492: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:15:02.437652: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:15:02.536377: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:15:02.573217: Today's load divergence 95.22%, in-day adjustment 94.61%, damping 0.95x, yesterday 68.37% today 95.46% blend 3.12%
2026-08-17 23:15:02.573304: Today's predicted so far 14.72kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 14.72kWh forecast extra.
2026-08-17 23:15:02.573335: Today's actual load so far 14.01kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 23:15:02.602572: Inverter 0: Type SK Sunsynk
2026-08-17 23:15:02.602647: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:15:02.602813: Reserve min: 7%, battery_min: 7%
2026-08-17 23:15:02.602898: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:15:02.603141: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 600W, current battery voltage 51.2V, grid power -58W, load power 663W, PV Power 0W
2026-08-17 23:15:02.603284: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:15:02.603368: Inverter 0 scheduled charge enable is True
2026-08-17 23:15:02.603411: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:15:02.603496: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:15:02.603616: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:15:02.603650: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:15:02.603685: Inverter 0 scheduled discharge enable is False
2026-08-17 23:15:02.603799: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:15:02.603870: Inverter 0 discharge windows currently []
2026-08-17 23:15:02.603925: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:15:02.603980: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:15:02.604013: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:15:02.659546: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:15:02.659642: Plan was last updated on 2026-08-17 23:10:00+01:00 and is now 5.0 minutes old
2026-08-17 23:15:02.659860: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:15:02.659932: Best export window [ ]
2026-08-17 23:15:02.660722: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:15:02.663870: Load divergence over 8.0 hours mean 441.88W, min 302.4W, max 1005.0W, std dev 148.05W, divergence 16.75%
2026-08-17 23:15:02.682970: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:15:02.683080: LoadML is_calculating False
2026-08-17 23:15:02.683139: Creating pool of 12 processes to match your CPU count
2026-08-17 23:15:02.795955: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 616.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 29.45kWh, PV 0.0kWh
2026-08-17 23:15:02.912994: Battery has 6.08 hours left - now at 5.12kWh
2026-08-17 23:15:02.952571: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 637.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.24kWh, PV 0.0kWh
2026-08-17 23:15:03.030320: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 342.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 30.24kWh, PV 0.0kWh
2026-08-17 23:15:03.098569: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 330.75p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.45kWh, PV 0.0kWh
2026-08-17 23:15:03.098658: Saving plan best values to HA entities
2026-08-17 23:15:03.258869: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:15:03.264150: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:15:03.269265: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.95kWh, house 0.0kWh, export 0.0kWh, metric 330.75p, metric10 342.4p
2026-08-17 23:15:03.341276: Marginal costs baseline metric (no standing charge): 284.1116
2026-08-17 23:15:03.560322: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 23:15:03.618232: Rate array import [{'start': 1395, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1395, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:15:03.618728: - Your estimated bill for today is £1.89 and tomorrow is £1.62
2026-08-17 23:15:03.618764: - Import rates are very expensive (33.8p) for the next 15 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:15:03.618782: - The battery is currently at 32% and is in eco mode for the next 15 minutes.
2026-08-17 23:15:03.618797: - For the next 48 hours there will be no solar generation.
2026-08-17 23:15:03.618811: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:15:03.618836: - Your next charge slot will be in 15 minutes where import rates will be cheap (8.0p).
2026-08-17 23:15:03.618851:
2026-08-17 23:15:03.661033: Plan calculation took 1.00 seconds
2026-08-17 23:15:03.664211: No high rate period found
2026-08-17 23:15:03.707773: Import threshold used for optimisation was 8.0p
2026-08-17 23:15:03.754810: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 23:15:03.760374: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 32%, target 100%
2026-08-17 23:15:03.760489: Inverter 0 configuring charge window now (now 08-17 23:15:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:15:03.760610: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:15:03.760789: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:15:03.761047: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:15:03.761140: No export window planned
2026-08-17 23:15:03.761274: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:15:03.761309: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:15:03.761437: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:15:03.761576: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:15:03.761633: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:15:03.761694: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:15:03.761790: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.761845: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.761879: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.761904: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.761929: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.761954: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.761978: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762076: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:15:03.762223: Inverter 0 count register writes 0
2026-08-17 23:15:03.777007: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 23:15:03.781968: Total inverter register writes now 861
2026-08-17 23:15:03.810216: Info: Completed run status Demand
2026-08-17 23:15:03.815608: Info: record_status Demand
2026-08-17 23:15:03.821158: Saved current settings to /config/predbat_config.json
2026-08-17 23:15:03.821406: Compare, best tariff: current metric 104.68p
2026-08-17 23:15:33.917074: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:15:33.917392: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:15:33.917469: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:15:33.917676: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:15:33.917725: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:15:33.917750: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:15:33.917792: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:17:34.136771: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:17:34.137038: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:17:34.137084: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:17:34.137263: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:17:34.137293: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:17:34.137327: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:17:34.137351: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:19:34.340896: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:19:34.341155: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:19:34.341198: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:19:34.341373: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:19:34.341410: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:19:34.341431: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:19:34.341449: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:20:00.447322: --------------- PredBat - update at 2026-08-17 23:20:00+01:00 with clock skew 0 minutes, minutes now 1400
2026-08-17 23:20:00.448099: Saved current settings to /config/predbat_config.json
2026-08-17 23:20:00.448220: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-17 23:20:00.448292: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:20:00.448382: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:20:00.467355: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:20:00.467485: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:20:00.467644: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:20:00.468187: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:20:00.468310: Predbat mode is set to Control charge & discharge
2026-08-17 23:20:00.672645: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:20:00.673026: Using load_power data to fill gaps in load_today data
2026-08-17 23:20:01.507215: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:20:01.507413: Zero load period starting at 2026-08-17T10:54:00+0100 (746 minutes) for 189 minutes with base value 211.625
2026-08-17 23:20:01.508323: Processing 721 30-minute periods for power integration
2026-08-17 23:20:01.718163: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:20:01.718322: Car charging hold False, threshold 6.0kWh
2026-08-17 23:20:01.718397: Current data so far today: load 12.85kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:20:01.740411: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:20:01.741118: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:20:01.742214: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:20:01.742302: Standing charge is set to 46.63p
2026-08-17 23:20:01.845037: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.845301: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.845499: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.845686: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.846168: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.846352: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.846524: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.846690: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.846858: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:20:01.848105: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:20:01.848243: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:20:01.853823: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:20:01.854302: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:20:01.898305: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:20:01.898429: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:20:01.899656: High export rate found rates in range 99p to -99p
2026-08-17 23:20:01.924407: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:20:01.924533: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:20:01.935526: Battery level now 5.12kWh, -1hr ago 5.74kWh, at midnight 10.49kWh, battery value change in the last hour -4.23p, change today -36.89p, rate_forward 6.87p
2026-08-17 23:20:01.936066: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:20:01.991326: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:20:01.991461: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:20:02.089814: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:20:02.128816: Today's load divergence 95.07%, in-day adjustment 94.57%, damping 0.95x, yesterday 68.37% today 95.32% blend 2.78%
2026-08-17 23:20:02.128953: Today's predicted so far 14.79kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 14.79kWh forecast extra.
2026-08-17 23:20:02.128989: Today's actual load so far 14.05kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 23:20:02.162138: Inverter 0: Type SK Sunsynk
2026-08-17 23:20:02.162226: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:20:02.162404: Reserve min: 7%, battery_min: 7%
2026-08-17 23:20:02.162481: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:20:02.162727: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 764W, current battery voltage 51.2V, grid power -53W, load power 735W, PV Power 0W
2026-08-17 23:20:02.162874: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:20:02.162975: Inverter 0 scheduled charge enable is True
2026-08-17 23:20:02.163015: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:20:02.163096: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:20:02.163214: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:20:02.163248: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:20:02.163284: Inverter 0 scheduled discharge enable is False
2026-08-17 23:20:02.163396: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:20:02.163432: Inverter 0 discharge windows currently []
2026-08-17 23:20:02.163454: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:20:02.163476: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:20:02.163493: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:20:02.225401: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:20:02.225500: Plan was last updated on 2026-08-17 23:10:00+01:00 and is now 10.0 minutes old
2026-08-17 23:20:02.225703: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:20:02.225744: Best export window [ ]
2026-08-17 23:20:02.226484: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:20:02.229753: Load divergence over 8.0 hours mean 433.29W, min 309.6W, max 977.4W, std dev 130.88W, divergence 15.1%
2026-08-17 23:20:02.248614: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:20:02.248730: LoadML is_calculating False
2026-08-17 23:20:02.248793: Creating pool of 12 processes to match your CPU count
2026-08-17 23:20:02.361051: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 616.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 29.51kWh, PV 0.0kWh
2026-08-17 23:20:02.473121: Battery has 6.0 hours left - now at 5.12kWh
2026-08-17 23:20:02.520145: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 636.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.3kWh, PV 0.0kWh
2026-08-17 23:20:02.592860: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 344.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.3kWh, PV 0.0kWh
2026-08-17 23:20:02.667577: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 334.1p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.51kWh, PV 0.0kWh
2026-08-17 23:20:02.667679: Saving plan best values to HA entities
2026-08-17 23:20:02.837423: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 23:20:02.844242: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 23:20:02.850750: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.37kWh, house 0.0kWh, export 0.0kWh, metric 334.1p, metric10 344.88p
2026-08-17 23:20:02.935666: Marginal costs baseline metric (no standing charge): 287.4634
2026-08-17 23:20:03.142886: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 23:20:03.212790: Rate array import [{'start': 1400, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1400, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:20:03.213426: - Your estimated bill for today is £1.89 and tomorrow is £1.62
2026-08-17 23:20:03.213469: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:20:03.213492: - The battery is currently at 32% and is in eco mode for the next 10 minutes.
2026-08-17 23:20:03.213510: - For the next 48 hours there will be no solar generation.
2026-08-17 23:20:03.213527: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:20:03.213546: - Your next charge slot will be in 10 minutes where import rates will be cheap (8.0p).
2026-08-17 23:20:03.213563:
2026-08-17 23:20:03.258026: Plan calculation took 1.03 seconds
2026-08-17 23:20:03.261222: No high rate period found
2026-08-17 23:20:03.319965: Import threshold used for optimisation was 8.0p
2026-08-17 23:20:03.370225: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 23:20:03.375987: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 32%, target 100%
2026-08-17 23:20:03.376106: Inverter 0 configuring charge window now (now 08-17 23:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:20:03.376227: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:20:03.376406: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:20:03.376638: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:20:03.376730: No export window planned
2026-08-17 23:20:03.376863: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:20:03.376913: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:20:03.377051: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:20:03.377188: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:20:03.377266: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:20:03.377336: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:20:03.377425: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377496: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377547: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377577: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377603: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377666: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377801: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:03.377853: Inverter 0 count register writes 0
2026-08-17 23:20:03.393346: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 23:20:03.393536: Recompute is saving previous plan...
2026-08-17 23:20:03.394475: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 23:20:03.394525: Best export window [ ]
2026-08-17 23:20:03.395359: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:20:03.398739: Load divergence over 8.0 hours mean 433.29W, min 309.6W, max 977.4W, std dev 130.88W, divergence 15.1%
2026-08-17 23:20:03.416522: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:20:03.416640: LoadML is_calculating False
2026-08-17 23:20:03.416728: Creating pool of 12 processes to match your CPU count
2026-08-17 23:20:03.503099: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 23:20:03.503941: Optimise levels pass started at 2026-08-17 23:20:03
2026-08-17 23:20:03.504012: Optimise all windows, total charge 24 export 1
2026-08-17 23:20:03.816213: >> Region optimisation pass width 960 gives best_metric 414.96p, best_cost 425.9p, best_cycle 46.97kWh, best_import 32.67kWh
2026-08-17 23:20:03.923079: >> Region optimisation pass width 480 gives best_metric 414.96p, best_cost 425.9p, best_cycle 46.97kWh, best_import 32.67kWh
2026-08-17 23:20:04.169364: >> Region optimisation pass width 240 gives best_metric 414.96p, best_cost 425.9p, best_cycle 46.97kWh, best_import 32.67kWh
2026-08-17 23:20:04.915672: >> Region optimisation pass width 120 gives best_metric 414.8p, best_cost 425.9p, best_cycle 46.97kWh, best_import 32.67kWh
2026-08-17 23:20:04.916094: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 23:20:04.916183: Optimise levels pass ended at 2026-08-17 23:20:04, duration 1.4 seconds tried 62 combinations
2026-08-17 23:20:04.916252: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 414.8p, best_keep 0kWh, best_cycle 46.97kWh, best_carbon 0kg, best_import 32.67kWh
2026-08-17 23:20:04.933436: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 23:20:07.440457: Tweak plan optimisation started metric 270.69p, cost 281.12p
2026-08-17 23:20:07.793427: Tweak optimisation finished metric 270.69p, cost 281.12p, metric_keep 0kWh, cycle 22.02kWh, carbon 0kg, import 14.58kWh, changed 8 window(s)
2026-08-17 23:20:07.813602: Swap charge optimisation started metric 270.69p, cost 281.12p, min_improvement_swap 0.1p
2026-08-17 23:20:08.553532: Swap charge optimisation finished metric 270.69p, cost 281.12p
2026-08-17 23:20:08.709697: Pruned 2 dead plan slot(s) in 12 trial(s), nominal metric 269.63p -> 269.51p, plan now metric 272.7p, cost 277.21p, cycle 22.56kWh, import 14.06kWh
2026-08-17 23:20:08.720204: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:20:08.720534: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:20:08.720743: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:20:08.720933: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:20:08.754038: Previous plan best metric is 270.69 (cost 281.12) and new plan best metric is 270.69 (cost 281.12)
2026-08-17 23:20:08.754219: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 23:20:08.754347: Plan valid is now true after recompute was False
2026-08-17 23:20:08.785612: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 29.3kWh, PV 0.0kWh
2026-08-17 23:20:08.895508: Battery has 6.0 hours left - now at 5.12kWh
2026-08-17 23:20:08.945075: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 635.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.09kWh, PV 0.0kWh
2026-08-17 23:20:09.014084: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 337.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.09kWh, PV 0.0kWh
2026-08-17 23:20:09.093214: predict best end_record 08-18 23:30:00, final soc 1.41kWh, metric 325.81p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.3kWh, PV 0.0kWh
2026-08-17 23:20:09.093298: Saving plan best values to HA entities
2026-08-17 23:20:09.232496: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-17 23:20:09.237034: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-17 23:20:09.242230: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.33kWh, house 0.0kWh, export 0.0kWh, metric 325.81p, metric10 337.62p
2026-08-17 23:20:09.319956: Marginal costs baseline metric (no standing charge): 279.1711
2026-08-17 23:20:09.562277: Marginal energy costs matrix computed: min=8.0 max=32.61
2026-08-17 23:20:09.653024: Rate array import [{'start': 1400, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1400, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:20:09.653613: - Your estimated bill for today is £1.89 and tomorrow is £1.62
2026-08-17 23:20:09.653655: - Import rates are very expensive (33.8p) for the next 10 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:20:09.653678: - The battery is currently at 32% and is in eco mode for the next 10 minutes.
2026-08-17 23:20:09.653697: - For the next 48 hours there will be no solar generation.
2026-08-17 23:20:09.653714: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:20:09.653738: - Your next charge slot will be in 10 minutes where import rates will be cheap (8.0p).
2026-08-17 23:20:09.653756:
2026-08-17 23:20:09.702303: Plan calculation took 6.31 seconds
2026-08-17 23:20:09.702714: Inverter 0: Type SK Sunsynk
2026-08-17 23:20:09.702781: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:20:09.703160: Reserve min: 7%, battery_min: 7%
2026-08-17 23:20:09.703334: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:20:09.703682: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 580W, current battery voltage 51.2V, grid power -49W, load power 646W, PV Power 0W
2026-08-17 23:20:09.703988: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:20:09.704108: Inverter 0 scheduled charge enable is True
2026-08-17 23:20:09.704157: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:20:09.704287: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:20:09.704429: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:20:09.704477: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:20:09.704523: Inverter 0 scheduled discharge enable is False
2026-08-17 23:20:09.704649: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:20:09.704687: Inverter 0 discharge windows currently []
2026-08-17 23:20:09.704709: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:20:09.704728: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:20:09.704745: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:20:09.760495: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 32%, target 100%
2026-08-17 23:20:09.760627: Inverter 0 configuring charge window now (now 08-17 23:20:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:20:09.760738: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:20:09.760871: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:20:09.761087: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:20:09.761170: No export window planned
2026-08-17 23:20:09.761276: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:20:09.761311: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:20:09.761443: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:20:09.761561: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:20:09.761608: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:20:09.761659: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:20:09.761751: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.761791: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.761823: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.761849: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.761880: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.761935: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.761975: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762205: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:20:09.762259: Inverter 0 count register writes 0
2026-08-17 23:20:09.781646: Total inverter register writes now 861
2026-08-17 23:20:09.808374: Info: Completed run status Demand
2026-08-17 23:20:09.814101: Info: record_status Demand
2026-08-17 23:20:09.820822: Saved current settings to /config/predbat_config.json
2026-08-17 23:20:09.821131: Compare, best tariff: current metric 104.68p
2026-08-17 23:20:48.929043: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:20:48.929292: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:20:48.929524: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:20:48.929676: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:20:48.929714: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:20:48.929735: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:20:48.929753: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:21:27.711136: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 23:21:28.676881: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:21:28.677094: Zero load period starting at 2026-08-17T10:54:00+0100 (746 minutes) for 189 minutes with base value 407.05
2026-08-17 23:21:28.677770: Processing 1345 30-minute periods for power integration
2026-08-17 23:21:28.784632: ML Component: Car charging hold False, car energy reported load False
2026-08-17 23:21:28.887344: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:21:28.986167: ML Temperature data points: 49001
2026-08-17 23:21:29.258542: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 23:21:29.295684: ML Component: Data fetch completed, load data age 59.0 days, 17104 data points
2026-08-17 23:21:29.295780: ML Component: No training needed, model age is 1.68 hours
2026-08-17 23:21:29.295828: ML Component: Generating predictions load data age 59.0 days, 17104 data points
2026-08-17 23:21:29.406768: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0563 max_dow {0: 0.08534444450702933, 1: 0.10010624981913716, 2: 0.10805624959506094, 3: 0.10143125034738332, 4: 0.1367750003574416, 5: 0.0960222225220667, 6: 0.10153888879045844}
2026-08-17 23:21:29.770146: ML Component: Generated 576 predictions (total 30.93 kWh over 48h)
2026-08-17 23:21:29.810451: ML Component: Prediction cycle completed
2026-08-17 23:21:29.930805: ML Component: Saved 17104 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-17 23:22:49.298296: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:22:49.298551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:22:49.298620: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:22:49.298761: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:22:49.298799: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:22:49.298828: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:22:49.298863: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:24:49.507856: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:24:49.508166: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:24:49.508229: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:24:49.508382: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:24:49.508420: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:24:49.508461: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:24:49.508479: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:25:00.589358: --------------- PredBat - update at 2026-08-17 23:25:00+01:00 with clock skew 0 minutes, minutes now 1405
2026-08-17 23:25:00.590153: Saved current settings to /config/predbat_config.json
2026-08-17 23:25:00.590299: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-17 23:25:00.590387: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:25:00.590484: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:25:00.611472: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:25:00.611590: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:25:00.611768: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:25:00.612288: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:25:00.612430: Predbat mode is set to Control charge & discharge
2026-08-17 23:25:00.762847: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:25:00.763001: Using load_power data to fill gaps in load_today data
2026-08-17 23:25:01.454912: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:25:01.455067: Zero load period starting at 2026-08-17T10:54:00+0100 (751 minutes) for 189 minutes with base value 211.6
2026-08-17 23:25:01.455663: Processing 721 30-minute periods for power integration
2026-08-17 23:25:01.611162: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:25:01.611282: Car charging hold False, threshold 6.0kWh
2026-08-17 23:25:01.611336: Current data so far today: load 12.9kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:25:01.624709: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:25:01.624796: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:25:01.625560: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:25:01.625639: Standing charge is set to 46.63p
2026-08-17 23:25:01.704817: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.705070: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.705346: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.705567: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.705772: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.705955: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.706137: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.706314: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.706489: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:25:01.707398: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:25:01.707505: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:25:01.712164: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:25:01.712445: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:25:01.748535: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:25:01.748662: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:25:01.750027: High export rate found rates in range 99p to -99p
2026-08-17 23:25:01.775058: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:25:01.775165: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:25:01.785147: Battery level now 5.12kWh, -1hr ago 5.6kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -36.89p, rate_forward 6.87p
2026-08-17 23:25:01.785483: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:25:01.835886: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:25:01.836081: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:25:01.919573: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:25:01.952841: Today's load divergence 94.89%, in-day adjustment 94.49%, damping 0.95x, yesterday 68.37% today 95.14% blend 2.43%
2026-08-17 23:25:01.952940: Today's predicted so far 14.87kWh with 0.0kWh car/iBoost excluded, 4.45kWh import ignored, and 14.87kWh forecast extra.
2026-08-17 23:25:01.952972: Today's actual load so far 14.11kWh with 0.0kWh car/iBoost excluded, and 4.45kWh import ignored.
2026-08-17 23:25:01.980869: Inverter 0: Type SK Sunsynk
2026-08-17 23:25:01.980948: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:25:01.981112: Reserve min: 7%, battery_min: 7%
2026-08-17 23:25:01.981180: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:25:01.981428: Inverter 0 SoC: 5.12kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power 695W, current battery voltage 51.2V, grid power -53W, load power 667W, PV Power 0W
2026-08-17 23:25:01.981663: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:25:01.981757: Inverter 0 scheduled charge enable is True
2026-08-17 23:25:01.981807: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:25:01.981898: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:25:01.982022: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:25:01.982057: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:25:01.982092: Inverter 0 scheduled discharge enable is False
2026-08-17 23:25:01.982208: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:25:01.982244: Inverter 0 discharge windows currently []
2026-08-17 23:25:01.982267: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:25:01.982289: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:25:01.982306: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:25:02.035121: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:25:02.035237: Plan was last updated on 2026-08-17 23:20:00+01:00 and is now 5.0 minutes old
2026-08-17 23:25:02.035409: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:25:02.035443: Best export window [ ]
2026-08-17 23:25:02.036185: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:25:02.038722: Load divergence over 8.0 hours mean 426.37W, min 300.0W, max 1032.6W, std dev 131.84W, divergence 15.46%
2026-08-17 23:25:02.054369: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:25:02.054462: LoadML is_calculating False
2026-08-17 23:25:02.054513: Creating pool of 12 processes to match your CPU count
2026-08-17 23:25:02.154593: predict base end_record 08-18 23:35:00, final soc 1.12kWh, metric 614.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:15:00, load 29.36kWh, PV 0.0kWh
2026-08-17 23:25:02.267193: Battery has 5.83 hours left - now at 5.12kWh
2026-08-17 23:25:02.313447: predict base10 end_record 08-18 23:35:00, final soc 1.12kWh, metric 635.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.14kWh, PV 0.0kWh
2026-08-17 23:25:02.390257: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 340.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.14kWh, PV 0.0kWh
2026-08-17 23:25:02.453409: predict best end_record 08-18 23:35:00, final soc 1.79kWh, metric 328.99p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.36kWh, PV 0.0kWh
2026-08-17 23:25:02.453483: Saving plan best values to HA entities
2026-08-17 23:25:02.593148: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:25:02.598439: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:25:02.603888: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.73kWh, house 0kWh, export 0.0kWh, metric 328.99p, metric10 340.58p
2026-08-17 23:25:02.673670: Marginal costs baseline metric (no standing charge): 282.355
2026-08-17 23:25:02.891712: Marginal energy costs matrix computed: min=8.0 max=32.65
2026-08-17 23:25:02.956133: Rate array import [{'start': 1405, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1405, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:25:02.956631: - Your estimated bill for today is £1.89 and tomorrow is £1.61
2026-08-17 23:25:02.956682: - Import rates are very expensive (33.8p) for the next 5 minutes and then cheap (8.0p) for the next 6 hours.
2026-08-17 23:25:02.956701: - The battery is currently at 32% and is in eco mode for the next 5 minutes.
2026-08-17 23:25:02.956716: - For the next 48 hours there will be no solar generation.
2026-08-17 23:25:02.956731: - You will reach a minimum of 9% battery in 24 hours.
2026-08-17 23:25:02.956750: - Your next charge slot will be in 5 minutes where import rates will be cheap (8.0p).
2026-08-17 23:25:02.956764:
2026-08-17 23:25:02.996764: Plan calculation took 0.96 seconds
2026-08-17 23:25:03.000618: No high rate period found
2026-08-17 23:25:03.045037: Import threshold used for optimisation was 8.0p
2026-08-17 23:25:03.090184: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 23:25:03.095811: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 32%, target 100%
2026-08-17 23:25:03.095961: Inverter 0 configuring charge window now (now 08-17 23:25:00 target set_window_minutes 30 charge start time 08-17 23:30:00
2026-08-17 23:25:03.096069: IOG action latency: 0.0 seconds from slot start
2026-08-17 23:25:03.096219: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:25:03.096409: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:25:03.096505: No export window planned
2026-08-17 23:25:03.096698: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:25:03.096745: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:25:03.096921: Adjust demand (idle) time computed is 10:55:00-23:30:00
2026-08-17 23:25:03.097079: Inverter 0 setting charging SoC to 0% as we are not charging and the inverter doesn't support charge enable time
2026-08-17 23:25:03.097150: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-17 23:25:03.097228: Inverter 0 Current Target SoC is 7%, already at target
2026-08-17 23:25:03.097345: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097390: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097426: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097457: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097486: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097538: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097569: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097741: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097810: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:25:03.097909: Inverter 0 count register writes 0
2026-08-17 23:25:03.111667: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 23:25:03.115964: Total inverter register writes now 861
2026-08-17 23:25:03.142787: Info: Completed run status Demand
2026-08-17 23:25:03.148119: Info: record_status Demand
2026-08-17 23:25:03.153507: Saved current settings to /config/predbat_config.json
2026-08-17 23:25:03.153793: Compare, best tariff: current metric 104.68p
2026-08-17 23:25:34.249565: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:25:34.249923: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:25:34.249980: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:25:34.250203: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:25:34.250252: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:25:34.250302: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:25:34.250337: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:27:34.476376: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:27:34.476661: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:27:34.476736: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:27:34.476933: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:27:34.476980: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:27:34.477033: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:27:34.477053: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:29:48.707295: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:29:48.707631: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:29:48.707714: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:29:48.708007: Inverter 0 idle time is 08-17 10:55:00-08-17 23:30:00
2026-08-17 23:29:48.708086: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:29:48.708126: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:29:48.708161: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:30:00.793158: --------------- PredBat - update at 2026-08-17 23:30:00+01:00 with clock skew 0 minutes, minutes now 1410
2026-08-17 23:30:00.793942: Saved current settings to /config/predbat_config.json
2026-08-17 23:30:00.794081: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-17 23:30:00.794166: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:30:00.794297: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:30:00.813613: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:30:00.813744: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:30:00.813971: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:30:00.814507: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:30:00.814664: Predbat mode is set to Control charge & discharge
2026-08-17 23:30:01.007667: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:30:01.008737: Using load_power data to fill gaps in load_today data
2026-08-17 23:30:01.902789: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:30:01.902989: Zero load period starting at 2026-08-17T10:54:00+0100 (756 minutes) for 189 minutes with base value 211.55
2026-08-17 23:30:01.903721: Processing 721 30-minute periods for power integration
2026-08-17 23:30:02.094246: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:30:02.095491: Car charging hold False, threshold 6.0kWh
2026-08-17 23:30:02.095560: Current data so far today: load 13.1kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:30:02.113816: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:30:02.113960: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:30:02.114861: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:30:02.114957: Standing charge is set to 46.63p
2026-08-17 23:30:02.210945: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.211462: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.211672: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.211880: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.212102: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.212283: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.212456: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.212622: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.212787: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:30:02.213884: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:30:02.213989: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:30:02.219627: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:30:02.220051: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:30:02.263490: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:30:02.263601: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:30:02.265216: High export rate found rates in range 99p to -99p
2026-08-17 23:30:02.294506: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:30:02.294635: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:30:02.306486: Battery level now 5.12kWh, -1hr ago 5.6kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -36.89p, rate_forward 6.87p
2026-08-17 23:30:02.306861: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.75kWh, net cost 0.77p, import 0.77p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:30:02.370606: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:30:02.370770: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:30:02.466416: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:30:02.501605: Today's load divergence 95.19%, in-day adjustment 94.87%, damping 0.95x, yesterday 68.37% today 95.43% blend 2.08%
2026-08-17 23:30:02.501721: Today's predicted so far 15.03kWh with 0.0kWh car/iBoost excluded, 4.33kWh import ignored, and 15.03kWh forecast extra.
2026-08-17 23:30:02.501750: Today's actual load so far 14.32kWh with 0.0kWh car/iBoost excluded, and 4.33kWh import ignored.
2026-08-17 23:30:02.531671: Inverter 0: Type SK Sunsynk
2026-08-17 23:30:02.531756: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:30:02.531976: Reserve min: 7%, battery_min: 7%
2026-08-17 23:30:02.532060: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:30:02.532410: Inverter 0 SoC: 4.99kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power 687W, current battery voltage 51.2V, grid power -60W, load power 758W, PV Power 0W
2026-08-17 23:30:02.532567: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:30:02.532652: Inverter 0 scheduled charge enable is True
2026-08-17 23:30:02.532697: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:30:02.532786: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 7.0%, power 5.0kW
2026-08-17 23:30:02.532931: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:30:02.532970: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:30:02.533007: Inverter 0 scheduled discharge enable is False
2026-08-17 23:30:02.533122: Inverter 0 idle time is 08-18 10:55:00-08-18 23:30:00
2026-08-17 23:30:02.533158: Inverter 0 discharge windows currently []
2026-08-17 23:30:02.533180: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:30:02.533199: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:30:02.533216: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:30:02.591479: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:30:02.591580: Plan was last updated on 2026-08-17 23:20:00+01:00 and is now 10.0 minutes old
2026-08-17 23:30:02.591752: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:30:02.591786: Best export window [ ]
2026-08-17 23:30:02.592517: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:30:02.594980: Load divergence over 8.0 hours mean 418.75W, min 284.4W, max 956.4W, std dev 102.49W, divergence 12.24%
2026-08-17 23:30:02.610647: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:30:02.610748: LoadML is_calculating False
2026-08-17 23:30:02.610805: Creating pool of 12 processes to match your CPU count
2026-08-17 23:30:02.714447: predict base end_record 08-18 23:40:00, final soc 1.12kWh, metric 615.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 29.56kWh, PV 0.0kWh
2026-08-17 23:30:02.840425: Battery has 5.83 hours left - now at 4.99kWh
2026-08-17 23:30:02.893669: predict base10 end_record 08-18 23:40:00, final soc 1.12kWh, metric 636.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.35kWh, PV 0.0kWh
2026-08-17 23:30:02.972059: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 344.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.35kWh, PV 0.0kWh
2026-08-17 23:30:03.050468: predict best end_record 08-18 23:40:00, final soc 2.18kWh, metric 333.38p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.56kWh, PV 0.0kWh
2026-08-17 23:30:03.050553: Saving plan best values to HA entities
2026-08-17 23:30:03.214358: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:30:03.220422: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:30:03.227213: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.28kWh, house 0.0kWh, export 0.0kWh, metric 333.38p, metric10 344.28p
2026-08-17 23:30:03.304802: Marginal costs baseline metric (no standing charge): 286.7421
2026-08-17 23:30:03.577319: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 23:30:03.646919: Rate array import [{'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1410, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:30:03.647343: - Your estimated bill for today is £1.88 and tomorrow is £1.61
2026-08-17 23:30:03.647386: - Import rates are cheap (8.0p) for the next 6 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:30:03.647409: - The battery is currently at 31% and is charging to 75% for the next 1 and a half hours.
2026-08-17 23:30:03.647427: - For the next 48 hours there will be no solar generation.
2026-08-17 23:30:03.647450: - You will reach a minimum of 9% battery in 23 hours.
2026-08-17 23:30:03.647468:
2026-08-17 23:30:03.697978: Plan calculation took 1.11 seconds
2026-08-17 23:30:03.702156: No high rate period found
2026-08-17 23:30:03.748917: Import threshold used for optimisation was 8.0p
2026-08-17 23:30:03.797601: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0]
2026-08-17 23:30:03.803506: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:30:03.803616: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 31%, target 100%
2026-08-17 23:30:03.803788: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:30:03.804029: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:30:03.804280: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:30:03.804371: Inverter 0 set new demand (idle) start time to 05:00:00 was 10:55:00
2026-08-17 23:30:08.810124: Inverter 0 write_and_poll_value: Wrote 05:00:00 to idle_start_time, successfully now 05:00:00
2026-08-17 23:30:08.810286: Inverter 0 set new demand (idle) end time to 23:59:00 was 23:30:00
2026-08-17 23:30:13.818322: Inverter 0 write_and_poll_value: Wrote 23:59:00 to idle_end_time, successfully now 23:59:00
2026-08-17 23:30:13.818479: No export window planned
2026-08-17 23:30:13.818664: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:30:13.818704: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:30:13.818917: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:30:13.819053: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:30:13.819100: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:30:13.819162: Inverter 0 Current charge limit is 7% and new target is 100%
2026-08-17 23:30:18.835593: Inverter 0 write_and_poll_value: Wrote 100 to charge_limit, successfully now 100.0
2026-08-17 23:30:18.835890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:18.836004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:18.836036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:18.836062: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:18.836087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:18.836111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:18.836135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:18.836195: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 23:30:18.884612: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 23:30:18.989005: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 23:30:19.096938: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 23:30:19.102337: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 23:30:19.146013: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-17 23:30:19.190107: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-17 23:30:19.232896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:19.233006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:19.233068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:19.233126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:19.233166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:19.233193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:19.233225: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:19.233247: Inverter 0 count register writes 1
2026-08-17 23:30:19.249293: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 23:30:19.249432: Recompute is saving previous plan...
2026-08-17 23:30:19.250160: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 7%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 7%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 7%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 7%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 7%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 7%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 7%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 7%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 7% ]
2026-08-17 23:30:19.250201: Best export window [ ]
2026-08-17 23:30:19.250908: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:30:19.253448: Load divergence over 8.0 hours mean 418.75W, min 284.4W, max 956.4W, std dev 102.49W, divergence 12.24%
2026-08-17 23:30:19.269548: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:30:19.269668: LoadML is_calculating False
2026-08-17 23:30:19.269746: Creating pool of 12 processes to match your CPU count
2026-08-17 23:30:19.340011: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 23:30:19.340711: Optimise levels pass started at 2026-08-17 23:30:19
2026-08-17 23:30:19.340753: Optimise all windows, total charge 24 export 1
2026-08-17 23:30:19.903246: >> Region optimisation pass width 960 gives best_metric 415.9p, best_cost 425.35p, best_cycle 46.91kWh, best_import 32.6kWh
2026-08-17 23:30:20.033644: >> Region optimisation pass width 480 gives best_metric 415.9p, best_cost 425.35p, best_cycle 46.91kWh, best_import 32.6kWh
2026-08-17 23:30:20.294208: >> Region optimisation pass width 240 gives best_metric 415.9p, best_cost 425.35p, best_cycle 46.91kWh, best_import 32.6kWh
2026-08-17 23:30:20.854387: >> Region optimisation pass width 120 gives best_metric 415.9p, best_cost 425.35p, best_cycle 46.91kWh, best_import 32.6kWh
2026-08-17 23:30:20.854738: Calculated end_record as 08-18 23:30:00 based on best_price 8.0p, next_charge_start 08-17 23:30:00, max_windows 12
2026-08-17 23:30:20.854863: Optimise levels pass ended at 2026-08-17 23:30:20, duration 1.5 seconds tried 59 combinations
2026-08-17 23:30:20.855019: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 415.9p, best_keep 0kWh, best_cycle 46.91kWh, best_carbon 0kg, best_import 32.6kWh
2026-08-17 23:30:20.873004: Starting detailed optimisation end_record 08-18 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 23:30:22.806641: Tweak plan optimisation started metric 272.05p, cost 284.17p
2026-08-17 23:30:23.048559: Tweak optimisation finished metric 272.05p, cost 284.17p, metric_keep 0kWh, cycle 25.04kWh, carbon 0kg, import 14.96kWh, changed 8 window(s)
2026-08-17 23:30:23.066877: Swap charge optimisation started metric 272.05p, cost 284.17p, min_improvement_swap 0.1p
2026-08-17 23:30:23.567720: Swap charge optimisation finished metric 272.05p, cost 284.17p
2026-08-17 23:30:23.652962: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 271.18p -> 270.96p, plan now metric 272.99p, cost 281.23p, cycle 25.42kWh, import 14.59kWh
2026-08-17 23:30:23.661493: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:30:23.661873: Unclipped charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:30:23.662087: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:30:23.662248: Filtered charge windows [ 17-08 23:30:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:30:23.696327: Previous plan best metric is 270.11 (cost 280.57) and new plan best metric is 272.05 (cost 284.17)
2026-08-17 23:30:23.696565: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 23:30:23.696770: Plan valid is now true after recompute was False
2026-08-17 23:30:23.729418: predict base end_record 08-18 23:30:00, final soc 1.12kWh, metric 614.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 29.37kWh, PV 0.0kWh
2026-08-17 23:30:23.833542: Battery has 5.83 hours left - now at 4.99kWh
2026-08-17 23:30:23.876708: predict base10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 634.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 05:20:00, load 30.15kWh, PV 0.0kWh
2026-08-17 23:30:23.943541: predict best10 end_record 08-18 23:30:00, final soc 1.12kWh, metric 337.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.15kWh, PV 0.0kWh
2026-08-17 23:30:24.031194: predict best end_record 08-18 23:30:00, final soc 1.4kWh, metric 325.19p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 29.37kWh, PV 0.0kWh
2026-08-17 23:30:24.031288: Saving plan best values to HA entities
2026-08-17 23:30:24.178730: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:30:24.184036: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:30:24.189199: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.26kWh, house 0.0kWh, export 0.0kWh, metric 325.19p, metric10 337.13p
2026-08-17 23:30:24.264060: Marginal costs baseline metric (no standing charge): 278.5594
2026-08-17 23:30:24.552847: Marginal energy costs matrix computed: min=8.0 max=32.63
2026-08-17 23:30:24.620695: Rate array import [{'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 1410, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:30:24.621395: - Your estimated bill for today is £1.88 and tomorrow is £1.61
2026-08-17 23:30:24.621456: - Import rates are cheap (8.0p) for the next 6 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:30:24.621487: - The battery is currently at 31% and is charging to 75% for the next 1 and a half hours.
2026-08-17 23:30:24.621513: - For the next 48 hours there will be no solar generation.
2026-08-17 23:30:24.621536: - You will reach a minimum of 9% battery in 23 hours.
2026-08-17 23:30:24.621642:
2026-08-17 23:30:24.670886: Plan calculation took 5.42 seconds
2026-08-17 23:30:24.671156: Inverter 0: Type SK Sunsynk
2026-08-17 23:30:24.671192: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:30:24.671372: Reserve min: 7%, battery_min: 7%
2026-08-17 23:30:24.671434: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:30:24.671686: Inverter 0 SoC: 4.96kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power 148W, current battery voltage 51.2V, grid power -561W, load power 710W, PV Power 0W
2026-08-17 23:30:24.671886: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:30:24.672064: Inverter 0 scheduled charge enable is True
2026-08-17 23:30:24.672100: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-17 23:30:24.672194: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:30:24.672298: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:30:24.672331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:30:24.672362: Inverter 0 scheduled discharge enable is False
2026-08-17 23:30:24.672462: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:30:24.672492: Inverter 0 discharge windows currently []
2026-08-17 23:30:24.672510: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:30:24.672528: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:30:24.672542: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:30:24.736358: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:30:24.736488: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 31%, target 100%
2026-08-17 23:30:24.736638: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:30:24.736834: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:30:24.737040: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:30:24.737124: No export window planned
2026-08-17 23:30:24.737215: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:30:24.737238: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:30:24.737343: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:30:24.737440: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:30:24.737483: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:30:24.737542: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:30:24.737765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.737851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.737893: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.737934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.737975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738104: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738164: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738205: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738241: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738276: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738320: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738373: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:30:24.738573: Inverter 0 count register writes 0
2026-08-17 23:30:24.761138: Total inverter register writes now 862
2026-08-17 23:30:24.801124: Info: Completed run status Charging
2026-08-17 23:30:25.108218: Info: record_status Charging target 31%-100.0%
2026-08-17 23:30:25.115988: Saved current settings to /config/predbat_config.json
2026-08-17 23:30:25.116407: Compare, best tariff: current metric 104.68p
2026-08-17 23:31:04.236469: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:31:04.236713: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:31:04.236778: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:31:04.236920: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:31:04.236957: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:31:04.236979: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:31:04.236997: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:33:04.451101: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:33:04.451352: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:33:04.451640: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:33:04.451802: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:33:04.451839: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:33:04.451857: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:33:04.451879: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:35:00.654202: --------------- PredBat - update at 2026-08-17 23:35:00+01:00 with clock skew 0 minutes, minutes now 1415
2026-08-17 23:35:00.654973: Saved current settings to /config/predbat_config.json
2026-08-17 23:35:00.655090: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-17 23:35:00.655155: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:35:00.655281: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:35:00.672803: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:35:00.672916: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:35:00.673094: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:35:00.673624: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:35:00.673739: Predbat mode is set to Control charge & discharge
2026-08-17 23:35:00.855052: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:35:00.855215: Using load_power data to fill gaps in load_today data
2026-08-17 23:35:01.671736: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:35:01.671933: Zero load period starting at 2026-08-17T10:54:00+0100 (761 minutes) for 189 minutes with base value 211.5
2026-08-17 23:35:01.672677: Processing 721 30-minute periods for power integration
2026-08-17 23:35:01.859621: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:35:01.859743: Car charging hold False, threshold 6.0kWh
2026-08-17 23:35:01.859788: Current data so far today: load 13.2kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:35:01.876909: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:35:01.877141: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:35:01.878011: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:35:01.878188: Standing charge is set to 46.63p
2026-08-17 23:35:01.970211: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.970483: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.970964: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.971175: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.971430: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.971684: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.971871: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.972201: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.972388: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:35:01.973448: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:35:01.973549: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:35:01.978973: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:35:01.979390: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:35:02.022652: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:35:02.022770: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:35:02.024213: High export rate found rates in range 99p to -99p
2026-08-17 23:35:02.055320: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:35:02.055458: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:35:02.066380: Battery level now 4.99kWh, -1hr ago 5.6kWh, at midnight 10.49kWh, battery value change in the last hour -4.18p, change today -37.77p, rate_forward 6.87p
2026-08-17 23:35:02.066738: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.8kWh, net cost 0.61p, import 0.61p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:35:02.125558: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 164.52p, import 117.88p, export 0.0p, carbon 0.0kg
2026-08-17 23:35:02.125695: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:35:02.210130: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:35:02.243224: Today's load divergence 95.01%, in-day adjustment 94.79%, damping 0.95x, yesterday 68.37% today 95.26% blend 1.74%
2026-08-17 23:35:02.243301: Today's predicted so far 15.17kWh with 0.0kWh car/iBoost excluded, 4.25kWh import ignored, and 15.17kWh forecast extra.
2026-08-17 23:35:02.243327: Today's actual load so far 14.43kWh with 0.0kWh car/iBoost excluded, and 4.25kWh import ignored.
2026-08-17 23:35:02.273676: Inverter 0: Type SK Sunsynk
2026-08-17 23:35:02.273750: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:35:02.273935: Reserve min: 7%, battery_min: 7%
2026-08-17 23:35:02.274002: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:35:02.274265: Inverter 0 SoC: 4.96kW 31%, current charge rate 5000W, current discharge rate 5250W, current battery power -4477W, current battery voltage 51.2V, grid power -5604W, load power 606W, PV Power 0W
2026-08-17 23:35:02.274438: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:35:02.274525: Inverter 0 scheduled charge enable is True
2026-08-17 23:35:02.274580: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}, {'start': 4290, 'end': 4620, 'average': 0}]
2026-08-17 23:35:02.274691: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:35:02.274824: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:35:02.274858: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:35:02.274892: Inverter 0 scheduled discharge enable is False
2026-08-17 23:35:02.275045: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:35:02.275079: Inverter 0 discharge windows currently []
2026-08-17 23:35:02.275099: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:35:02.275115: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:35:02.275141: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:35:02.335925: Dynamic load last period 1.20kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:35:02.336021: Plan was last updated on 2026-08-17 23:30:00+01:00 and is now 5.0 minutes old
2026-08-17 23:35:02.336215: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:35:02.336256: Best export window [ ]
2026-08-17 23:35:02.337120: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:35:02.340325: Load divergence over 8.0 hours mean 410.77W, min 263.4W, max 830.4W, std dev 85.58W, divergence 10.42%
2026-08-17 23:35:02.360690: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:35:02.360819: LoadML is_calculating False
2026-08-17 23:35:02.360879: Creating pool of 12 processes to match your CPU count
2026-08-17 23:35:02.482822: predict base end_record 08-18 23:35:00, final soc 3.55kWh, metric 343.93p, metric_keep 0kWh, min_soc 3.16kWh @ 08-18 23:25:00, load 29.48kWh, PV 0.0kWh
2026-08-17 23:35:02.605874: Battery has 48.0 hours left - now at 4.96kWh
2026-08-17 23:35:02.651707: predict base10 end_record 08-18 23:35:00, final soc 2.87kWh, metric 345.03p, metric_keep 0kWh, min_soc 2.55kWh @ 08-18 23:25:00, load 30.26kWh, PV 0.0kWh
2026-08-17 23:35:02.724052: predict best10 end_record 08-18 23:35:00, final soc 1.44kWh, metric 340.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.26kWh, PV 0.0kWh
2026-08-17 23:35:02.794154: predict best end_record 08-18 23:35:00, final soc 1.8kWh, metric 328.9p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.48kWh, PV 0.0kWh
2026-08-17 23:35:02.794229: Saving plan best values to HA entities
2026-08-17 23:35:02.952944: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:35:02.958214: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:35:02.964095: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 14.72kWh, house 0.0kWh, export 0.0kWh, metric 328.9p, metric10 340.11p
2026-08-17 23:35:03.036181: Marginal costs baseline metric (no standing charge): 282.2645
2026-08-17 23:35:03.262298: Marginal energy costs matrix computed: min=8.0 max=32.62
2026-08-17 23:35:03.324235: Rate array import [{'start': 1415, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1415, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:35:03.324579: - Your estimated bill for today is £1.84 and tomorrow is £1.65
2026-08-17 23:35:03.324616: - Import rates are cheap (8.0p) for the next 5 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:35:03.324635: - The battery is currently at 31% and is charging to 75% for the next 1 and a half hours.
2026-08-17 23:35:03.324650: - For the next 48 hours there will be no solar generation.
2026-08-17 23:35:03.324664: - You will reach a minimum of 9% battery in 23 hours.
2026-08-17 23:35:03.324681:
2026-08-17 23:35:03.365833: Plan calculation took 1.03 seconds
2026-08-17 23:35:03.369406: No high rate period found
2026-08-17 23:35:03.414237: Import threshold used for optimisation was 8.0p
2026-08-17 23:35:03.463158: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0]
2026-08-17 23:35:03.470908: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:35:03.471007: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 31%, target 100%
2026-08-17 23:35:03.471156: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:35:03.471320: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:35:03.471595: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:35:03.471694: No export window planned
2026-08-17 23:35:03.471848: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:35:03.471882: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:35:03.472045: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:35:03.472179: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:35:03.472219: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:35:03.472294: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:35:03.472438: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472734: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472788: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472819: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472855: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472900: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472923: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.472966: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473046: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:35:03.473315: Inverter 0 count register writes 0
2026-08-17 23:35:03.491873: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 23:35:03.498387: Total inverter register writes now 862
2026-08-17 23:35:03.534755: Info: Completed run status Charging
2026-08-17 23:35:03.540527: Info: record_status Charging target 31%-100.0%
2026-08-17 23:35:03.546828: Saved current settings to /config/predbat_config.json
2026-08-17 23:35:03.547116: Compare, best tariff: current metric 104.68p
2026-08-17 23:35:33.645764: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:35:33.646070: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:35:33.646124: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:35:33.646294: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:35:33.646362: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:35:33.646392: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:35:33.646434: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:37:33.867873: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:37:33.868287: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:37:33.868345: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:37:33.868534: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:37:33.868579: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:37:33.868602: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:37:33.868630: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:39:34.088382: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:39:34.088677: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:39:34.088761: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:39:34.088914: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:39:34.088956: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:39:34.088978: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:39:34.088996: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:40:00.191785: --------------- PredBat - update at 2026-08-17 23:40:00+01:00 with clock skew 0 minutes, minutes now 1420
2026-08-17 23:40:00.192651: Saved current settings to /config/predbat_config.json
2026-08-17 23:40:00.192788: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-17 23:40:00.192878: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:40:00.193015: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:40:00.211201: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:40:00.211372: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:40:00.211598: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:40:00.212225: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:40:00.212452: Predbat mode is set to Control charge & discharge
2026-08-17 23:40:00.420439: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:40:00.420579: Using load_power data to fill gaps in load_today data
2026-08-17 23:40:01.254803: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:40:01.255007: Zero load period starting at 2026-08-17T10:54:00+0100 (766 minutes) for 189 minutes with base value 211.475
2026-08-17 23:40:01.255747: Processing 721 30-minute periods for power integration
2026-08-17 23:40:01.442535: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:40:01.442655: Car charging hold False, threshold 6.0kWh
2026-08-17 23:40:01.442700: Current data so far today: load 13.15kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:40:01.459790: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:40:01.459895: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:40:01.460984: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:40:01.461103: Standing charge is set to 46.63p
2026-08-17 23:40:01.558396: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.558612: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.558792: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.558939: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.559131: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.559272: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.559430: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.559561: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.559765: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:40:01.560680: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:40:01.560769: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:40:01.566565: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:40:01.567195: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:40:01.615308: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:40:01.615427: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:40:01.616985: High export rate found rates in range 99p to -99p
2026-08-17 23:40:01.647093: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:40:01.647205: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:40:01.658258: Battery level now 4.96kWh, -1hr ago 5.44kWh, at midnight 10.49kWh, battery value change in the last hour -3.3p, change today -37.99p, rate_forward 6.87p
2026-08-17 23:40:01.658623: Last hour: net energy 0.31kWh, import 0.31kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 9.43p, import 9.43p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:40:01.716774: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 173.68p, import 127.04p, export 0.0p, carbon 0.0kg
2026-08-17 23:40:01.716911: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:40:01.815172: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:40:01.852580: Today's load divergence 94.09%, in-day adjustment 94.03%, damping 0.95x, yesterday 68.37% today 94.39% blend 1.39%
2026-08-17 23:40:01.852675: Today's predicted so far 15.23kWh with 0.0kWh car/iBoost excluded, 4.2kWh import ignored, and 15.23kWh forecast extra.
2026-08-17 23:40:01.852708: Today's actual load so far 14.37kWh with 0.0kWh car/iBoost excluded, and 4.2kWh import ignored.
2026-08-17 23:40:01.887605: Inverter 0: Type SK Sunsynk
2026-08-17 23:40:01.887683: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:40:01.887860: Reserve min: 7%, battery_min: 7%
2026-08-17 23:40:01.887966: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:40:01.888241: Inverter 0 SoC: 5.08kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power -4486W, current battery voltage 51.2V, grid power -5421W, load power 424W, PV Power 0W
2026-08-17 23:40:01.888391: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:40:01.888476: Inverter 0 scheduled charge enable is True
2026-08-17 23:40:01.888525: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}, {'start': 4290, 'end': 4620, 'average': 0}]
2026-08-17 23:40:01.888608: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:40:01.888729: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:40:01.888758: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:40:01.888793: Inverter 0 scheduled discharge enable is False
2026-08-17 23:40:01.888914: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:40:01.888951: Inverter 0 discharge windows currently []
2026-08-17 23:40:01.888975: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:40:01.888993: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:40:01.889011: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:40:01.947570: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:40:01.947669: Plan was last updated on 2026-08-17 23:30:00+01:00 and is now 10.0 minutes old
2026-08-17 23:40:01.947872: Best charge window [ 17-08 23:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 03:30:00 @ 8.0p 75%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 23:30:00 - 19-08 05:30:00 @ 8.0p 100% ]
2026-08-17 23:40:01.947947: Best export window [ ]
2026-08-17 23:40:01.948798: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:40:01.951953: Load divergence over 8.0 hours mean 406.03W, min 262.2W, max 795.0W, std dev 76.52W, divergence 9.42%
2026-08-17 23:40:01.970936: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:40:01.971064: LoadML is_calculating False
2026-08-17 23:40:01.971135: Creating pool of 12 processes to match your CPU count
2026-08-17 23:40:02.083398: predict base end_record 08-18 23:40:00, final soc 3.94kWh, metric 355.37p, metric_keep 0kWh, min_soc 3.16kWh @ 08-18 23:25:00, load 29.43kWh, PV 0.0kWh
2026-08-17 23:40:02.199638: Battery has 48.0 hours left - now at 5.08kWh
2026-08-17 23:40:02.240969: predict base10 end_record 08-18 23:40:00, final soc 3.2kWh, metric 355.91p, metric_keep 0kWh, min_soc 2.55kWh @ 08-18 23:25:00, load 30.2kWh, PV 0.0kWh
2026-08-17 23:40:02.312585: predict best10 end_record 08-18 23:40:00, final soc 1.77kWh, metric 350.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.2kWh, PV 0.0kWh
2026-08-17 23:40:02.386899: predict best end_record 08-18 23:40:00, final soc 2.19kWh, metric 340.34p, metric_keep 0kWh, min_soc 1.41kWh @ 08-18 23:25:00, load 29.43kWh, PV 0.0kWh
2026-08-17 23:40:02.386996: Saving plan best values to HA entities
2026-08-17 23:40:02.538206: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:40:02.545009: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:40:02.551721: Best charging limit SoC's [16.0, 12.0, 14.25, 16.0]kWh, export []kWh gives import battery 15.0kWh, house 0.0kWh, export 0.0kWh, metric 340.34p, metric10 350.89p
2026-08-17 23:40:02.642020: Marginal costs baseline metric (no standing charge): 293.7066
2026-08-17 23:40:02.908601: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-17 23:40:02.969006: Rate array import [{'start': 1420, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1420, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:40:02.969398: - Your estimated bill for today is £1.89 and tomorrow is £1.67
2026-08-17 23:40:02.969438: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:40:02.969460: - The battery is currently at 32% and is charging to 75% for the next 1 and a quarter hours.
2026-08-17 23:40:02.969478: - For the next 48 hours there will be no solar generation.
2026-08-17 23:40:02.969500: - You will reach a minimum of 9% battery in 23 hours.
2026-08-17 23:40:02.969518:
2026-08-17 23:40:03.011567: Plan calculation took 1.06 seconds
2026-08-17 23:40:03.015262: No high rate period found
2026-08-17 23:40:03.059733: Import threshold used for optimisation was 8.0p
2026-08-17 23:40:03.105572: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0]
2026-08-17 23:40:03.111137: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:40:03.111243: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 32%, target 100%
2026-08-17 23:40:03.111396: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:40:03.111579: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:40:03.111840: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:40:03.111975: No export window planned
2026-08-17 23:40:03.112138: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:40:03.112176: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:40:03.112314: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:40:03.112427: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:40:03.112468: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:40:03.112529: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:40:03.112640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112737: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112771: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112869: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112902: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112933: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112965: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.112995: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113020: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113065: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113132: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113161: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113186: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113211: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113245: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:03.113321: Inverter 0 count register writes 0
2026-08-17 23:40:03.127661: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 23:40:03.127821: Recompute is saving previous plan...
2026-08-17 23:40:03.128745: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-17 23:40:03.128813: Best export window [ ]
2026-08-17 23:40:03.129616: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:40:03.132730: Load divergence over 8.0 hours mean 406.03W, min 262.2W, max 795.0W, std dev 76.52W, divergence 9.42%
2026-08-17 23:40:03.150361: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:40:03.150467: LoadML is_calculating False
2026-08-17 23:40:03.150532: Creating pool of 12 processes to match your CPU count
2026-08-17 23:40:03.234109: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 23:40:03.234804: Optimise levels pass started at 2026-08-17 23:40:03
2026-08-17 23:40:03.234851: Optimise all windows, total charge 24 export 1
2026-08-17 23:40:03.562982: >> Region optimisation pass width 960 gives best_metric 424.42p, best_cost 432.11p, best_cycle 47.03kWh, best_import 32.3kWh
2026-08-17 23:40:03.712672: >> Region optimisation pass width 480 gives best_metric 424.42p, best_cost 432.11p, best_cycle 47.03kWh, best_import 32.3kWh
2026-08-17 23:40:03.963086: >> Region optimisation pass width 240 gives best_metric 424.42p, best_cost 432.11p, best_cycle 47.03kWh, best_import 32.3kWh
2026-08-17 23:40:04.485305: >> Region optimisation pass width 120 gives best_metric 424.42p, best_cost 432.11p, best_cycle 47.03kWh, best_import 32.3kWh
2026-08-17 23:40:04.485664: Calculated end_record as 08-19 00:00:00 based on best_price 8.0p, next_charge_start 08-18 00:00:00, max_windows 13
2026-08-17 23:40:04.485735: Optimise levels pass ended at 2026-08-17 23:40:04, duration 1.3 seconds tried 64 combinations
2026-08-17 23:40:04.485816: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 424.42p, best_keep 0kWh, best_cycle 47.03kWh, best_carbon 0kg, best_import 32.3kWh
2026-08-17 23:40:04.505112: Starting detailed optimisation end_record 08-19 00:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 23:40:06.926595: Tweak plan optimisation started metric 280.72p, cost 287.4p
2026-08-17 23:40:07.210906: Tweak optimisation finished metric 280.72p, cost 287.4p, metric_keep 0kWh, cycle 22.18kWh, carbon 0kg, import 14.21kWh, changed 8 window(s)
2026-08-17 23:40:07.228372: Swap charge optimisation started metric 280.72p, cost 287.4p, min_improvement_swap 0.1p
2026-08-17 23:40:07.975942: Swap charge optimisation finished metric 280.72p, cost 287.4p
2026-08-17 23:40:08.098886: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 279.62p -> 279.62p, plan now metric 281.71p, cost 287.32p, cycle 22.19kWh, import 14.2kWh
2026-08-17 23:40:08.109954: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:40:08.110394: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:40:08.110644: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:40:08.111007: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:40:08.156717: Previous plan best metric is 284.89 (cost 311.47) and new plan best metric is 280.72 (cost 287.4)
2026-08-17 23:40:08.156924: New plan metric is significantly better from previous plan, using new plan
2026-08-17 23:40:08.156971: Plan valid is now true after recompute was False
2026-08-17 23:40:08.194488: predict base end_record 08-19 00:00:00, final soc 5.49kWh, metric 371.17p, metric_keep 0kWh, min_soc 3.16kWh @ 08-18 23:25:00, load 29.73kWh, PV 0.0kWh
2026-08-17 23:40:08.303987: Battery has 48.0 hours left - now at 5.08kWh
2026-08-17 23:40:08.339419: predict base10 end_record 08-19 00:00:00, final soc 4.49kWh, metric 369.59p, metric_keep 0kWh, min_soc 2.55kWh @ 08-18 23:25:00, load 30.52kWh, PV 0.0kWh
2026-08-17 23:40:08.405896: predict best10 end_record 08-19 00:00:00, final soc 1.12kWh, metric 347.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.52kWh, PV 0.0kWh
2026-08-17 23:40:08.474099: predict best end_record 08-19 00:00:00, final soc 1.12kWh, metric 333.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 29.73kWh, PV 0.0kWh
2026-08-17 23:40:08.474178: Saving plan best values to HA entities
2026-08-17 23:40:08.610870: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:40:08.615325: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:40:08.620287: Best charging limit SoC's [16.0, 13.5, 14.25, 16.0, 16.0]kWh, export []kWh gives import battery 13.97kWh, house 0.24kWh, export 0.0kWh, metric 333.95p, metric10 347.91p
2026-08-17 23:40:08.685866: Marginal costs baseline metric (no standing charge): 287.3155
2026-08-17 23:40:08.899649: Marginal energy costs matrix computed: min=8.0 max=32.87
2026-08-17 23:40:08.960676: Rate array import [{'start': 1420, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2880, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1420, 'end': 2880, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:40:08.961178: - Your estimated bill for today is £1.89 and tomorrow is £1.45
2026-08-17 23:40:08.961236: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:40:08.961278: - The battery is currently at 32% and is charging to 85% for the next 1 and three quarters hours.
2026-08-17 23:40:08.961321: - For the next 48 hours there will be no solar generation.
2026-08-17 23:40:08.961361: - You will run out of battery in 24 hours.
2026-08-17 23:40:08.961397:
2026-08-17 23:40:09.009295: Plan calculation took 5.88 seconds
2026-08-17 23:40:09.009631: Inverter 0: Type SK Sunsynk
2026-08-17 23:40:09.009675: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:40:09.009891: Reserve min: 7%, battery_min: 7%
2026-08-17 23:40:09.009966: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:40:09.010311: Inverter 0 SoC: 5.08kW 32%, current charge rate 5000W, current discharge rate 5250W, current battery power -4486W, current battery voltage 51.2V, grid power -5421W, load power 424W, PV Power 0W
2026-08-17 23:40:09.010533: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:40:09.010632: Inverter 0 scheduled charge enable is True
2026-08-17 23:40:09.010684: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}, {'start': 4290, 'end': 4620, 'average': 0}]
2026-08-17 23:40:09.010789: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:40:09.010910: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:40:09.010958: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:40:09.010997: Inverter 0 scheduled discharge enable is False
2026-08-17 23:40:09.011157: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:40:09.011198: Inverter 0 discharge windows currently []
2026-08-17 23:40:09.011221: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:40:09.011243: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:40:09.011260: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:40:09.068574: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:40:09.068690: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 32%, target 100%
2026-08-17 23:40:09.068840: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:40:09.069056: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:40:09.069303: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:40:09.069416: No export window planned
2026-08-17 23:40:09.069583: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:40:09.069625: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:40:09.069805: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:40:09.069976: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:40:09.070042: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:40:09.070117: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:40:09.070276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070326: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070707: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070771: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070834: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070889: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.070947: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071008: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071081: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:40:09.071589: Inverter 0 count register writes 0
2026-08-17 23:40:09.091418: Total inverter register writes now 862
2026-08-17 23:40:09.123227: Info: Completed run status Charging
2026-08-17 23:40:09.129050: Info: record_status Charging target 32%-100.0%
2026-08-17 23:40:09.135357: Saved current settings to /config/predbat_config.json
2026-08-17 23:40:09.135754: Compare, best tariff: current metric 104.68p
2026-08-17 23:40:30.927447: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-17 23:40:31.822652: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:40:31.822822: Zero load period starting at 2026-08-17T10:54:00+0100 (766 minutes) for 189 minutes with base value 406.7
2026-08-17 23:40:31.823446: Processing 1345 30-minute periods for power integration
2026-08-17 23:40:31.905744: ML Component: Car charging hold False, car energy reported load False
2026-08-17 23:40:31.992043: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:40:32.071617: ML Temperature data points: 48981
2026-08-17 23:40:32.287038: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-17 23:40:32.321355: ML Component: Data fetch completed, load data age 59.0 days, 17108 data points
2026-08-17 23:40:32.321450: ML Component: Starting fine-tune training (2h interval), model age is 2.012550604722222 hours
2026-08-17 23:40:32.321471: ML Component: Doing training...
2026-08-17 23:40:32.333599: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-17 23:40:32.333693: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.4 days)
2026-08-17 23:40:32.382603: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-17 23:40:32.382710: ML Predictor: Starting initial training with 30 epochs
2026-08-17 23:40:32.892494: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-17 23:40:37.588871: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-17 23:40:37.637019: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7268 std=4.5888) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1925 std=0.5271)
2026-08-17 23:40:48.823238: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:40:48.823591: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:40:48.823654: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:40:48.824016: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:40:48.824072: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:40:48.824230: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:40:48.824325: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:40:50.186663: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0178 val_mae=0.0068 kWh val_bias=-0.0026 kWh (-2.9%) combined=0.0042 kWh ema_combined=0.0042 kWh
2026-08-17 23:41:07.379326: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0198 val_mae=0.0051 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0030 kWh ema_combined=0.0038 kWh
2026-08-17 23:41:20.563407: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0173 val_mae=0.0052 kWh val_bias=+0.0004 kWh (+0.4%) combined=0.0034 kWh ema_combined=0.0037 kWh
2026-08-17 23:41:33.567892: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0155 val_mae=0.0045 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0027 kWh ema_combined=0.0034 kWh
2026-08-17 23:41:47.750493: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0165 val_mae=0.0068 kWh val_bias=-0.0046 kWh (-5.2%) combined=0.0066 kWh ema_combined=0.0044 kWh
2026-08-17 23:42:00.072805: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0136 val_mae=0.0046 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0027 kWh ema_combined=0.0039 kWh
2026-08-17 23:42:12.769626: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0124 val_mae=0.0043 kWh val_bias=+0.0017 kWh (+1.9%) combined=0.0036 kWh ema_combined=0.0038 kWh
2026-08-17 23:42:25.266142: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0143 val_mae=0.0046 kWh val_bias=+0.0016 kWh (+1.8%) combined=0.0043 kWh ema_combined=0.0040 kWh
2026-08-17 23:42:38.138915: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0134 val_mae=0.0053 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0034 kWh ema_combined=0.0038 kWh
2026-08-17 23:42:49.171586: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:42:49.172120: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:42:49.172247: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:42:49.172502: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:42:49.172609: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:42:49.172726: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:42:49.172812: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:42:52.250713: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0100 val_mae=0.0040 kWh val_bias=+0.0015 kWh (+1.6%) combined=0.0030 kWh ema_combined=0.0035 kWh
2026-08-17 23:43:05.158615: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0100 val_mae=0.0041 kWh val_bias=+0.0009 kWh (+1.0%) combined=0.0031 kWh ema_combined=0.0034 kWh
2026-08-17 23:43:17.992666: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0091 val_mae=0.0036 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0022 kWh ema_combined=0.0030 kWh
2026-08-17 23:43:31.571465: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0085 val_mae=0.0039 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-17 23:43:43.791678: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0080 val_mae=0.0036 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0020 kWh ema_combined=0.0027 kWh
2026-08-17 23:43:57.158888: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0083 val_mae=0.0032 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-17 23:44:10.003681: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0074 val_mae=0.0034 kWh val_bias=+0.0014 kWh (+1.6%) combined=0.0028 kWh ema_combined=0.0026 kWh
2026-08-17 23:44:23.097177: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0076 val_mae=0.0030 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-17 23:44:35.911713: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0074 val_mae=0.0031 kWh val_bias=+0.0010 kWh (+1.1%) combined=0.0026 kWh ema_combined=0.0025 kWh
2026-08-17 23:44:48.747503: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0064 val_mae=0.0027 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0021 kWh
2026-08-17 23:44:49.521222: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:44:49.521523: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:44:49.521575: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:44:49.521742: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:44:49.521789: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:44:49.521832: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:44:49.521860: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:45:00.650308: --------------- PredBat - update at 2026-08-17 23:45:00+01:00 with clock skew 0 minutes, minutes now 1425
2026-08-17 23:45:00.651196: Saved current settings to /config/predbat_config.json
2026-08-17 23:45:00.651333: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-17 23:45:00.651434: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:45:00.651564: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:45:00.679297: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:45:00.679465: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:45:00.687208: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:45:00.688178: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:45:00.688380: Predbat mode is set to Control charge & discharge
2026-08-17 23:45:01.065908: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:45:01.066043: Using load_power data to fill gaps in load_today data
2026-08-17 23:45:02.297944: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:45:02.298159: Zero load period starting at 2026-08-17T10:54:00+0100 (771 minutes) for 189 minutes with base value 211.45
2026-08-17 23:45:02.299349: Processing 721 30-minute periods for power integration
2026-08-17 23:45:02.571202: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:45:02.571395: Car charging hold False, threshold 6.0kWh
2026-08-17 23:45:02.571485: Current data so far today: load 13.2kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:45:02.595263: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:45:02.595396: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:45:02.596553: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:45:02.596655: Standing charge is set to 46.63p
2026-08-17 23:45:02.845765: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.846091: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.846332: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.846563: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.846792: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.847036: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.847255: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.847466: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.847674: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:45:02.849216: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:45:02.849347: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:45:02.857392: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:45:02.857817: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:45:02.943744: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:45:02.943980: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:45:02.945478: High export rate found rates in range 99p to -99p
2026-08-17 23:45:02.971185: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:45:02.971470: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:45:02.984509: Battery level now 5.08kWh, -1hr ago 5.44kWh, at midnight 10.49kWh, battery value change in the last hour -2.47p, change today -37.17p, rate_forward 6.87p
2026-08-17 23:45:02.984836: Last hour: net energy 0.31kWh, import 0.31kWh, export 0.0kWh, car 0kWh, load 0.7kWh, net cost 9.27p, import 9.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:45:03.044753: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 173.68p, import 127.04p, export 0.0p, carbon 0.0kg
2026-08-17 23:45:03.044911: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:45:03.128966: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:45:03.167518: Today's load divergence 94.0%, in-day adjustment 94.03%, damping 0.95x, yesterday 68.37% today 94.3% blend 1.04%
2026-08-17 23:45:03.167770: Today's predicted so far 15.29kWh with 0.0kWh car/iBoost excluded, 4.18kWh import ignored, and 15.29kWh forecast extra.
2026-08-17 23:45:03.167830: Today's actual load so far 14.41kWh with 0.0kWh car/iBoost excluded, and 4.18kWh import ignored.
2026-08-17 23:45:03.219873: Inverter 0: Type SK Sunsynk
2026-08-17 23:45:03.220091: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:45:03.220446: Reserve min: 7%, battery_min: 7%
2026-08-17 23:45:03.220621: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:45:03.221039: Inverter 0 SoC: 5.78kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power -4497W, current battery voltage 51.2V, grid power -5445W, load power 449W, PV Power 0W
2026-08-17 23:45:03.221312: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:45:03.221526: Inverter 0 scheduled charge enable is True
2026-08-17 23:45:03.221649: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}, {'start': 4290, 'end': 4620, 'average': 0}]
2026-08-17 23:45:03.221904: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:45:03.222150: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:45:03.222270: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:45:03.222388: Inverter 0 scheduled discharge enable is False
2026-08-17 23:45:03.222653: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:45:03.222755: Inverter 0 discharge windows currently []
2026-08-17 23:45:03.222877: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:45:03.222964: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:45:03.223074: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:45:03.304856: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:45:03.332296: Plan was last updated on 2026-08-17 23:40:00+01:00 and is now 5.0 minutes old
2026-08-17 23:45:03.332701: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-17 23:45:03.332872: Best export window [ ]
2026-08-17 23:45:03.333989: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:45:03.337850: Load divergence over 8.0 hours mean 400.31W, min 274.2W, max 719.4W, std dev 64.02W, divergence 8.0%
2026-08-17 23:45:03.375757: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:45:03.376033: LoadML is_calculating True
2026-08-17 23:45:03.376157: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 23:45:03.468356: predict base end_record 08-19 00:05:00, final soc 5.87kWh, metric 415.14p, metric_keep 0kWh, min_soc 3.15kWh @ 08-18 23:25:00, load 29.79kWh, PV 0.0kWh
2026-08-17 23:45:03.649065: Battery has 48.0 hours left - now at 5.78kWh
2026-08-17 23:45:03.723842: predict base10 end_record 08-19 00:05:00, final soc 4.8kWh, metric 413.02p, metric_keep 0kWh, min_soc 2.54kWh @ 08-18 23:25:00, load 30.58kWh, PV 0.0kWh
2026-08-17 23:45:03.835190: predict best10 end_record 08-19 00:05:00, final soc 1.44kWh, metric 391.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:10:00, load 30.58kWh, PV 0.0kWh
2026-08-17 23:45:03.988554: predict best end_record 08-19 00:05:00, final soc 1.51kWh, metric 378.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 29.79kWh, PV 0.0kWh
2026-08-17 23:45:03.988769: Saving plan best values to HA entities
2026-08-17 23:45:04.276841: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:45:04.283714: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:45:04.290675: Best charging limit SoC's [16.0, 13.5, 14.25, 16.0, 16.0]kWh, export []kWh gives import battery 13.64kWh, house 0.29kWh, export 0.0kWh, metric 378.36p, metric10 391.72p
2026-08-17 23:45:04.404850: Marginal costs baseline metric (no standing charge): 285.0922
2026-08-17 23:45:04.795472: Marginal energy costs matrix computed: min=8.0 max=32.91
2026-08-17 23:45:04.882189: Rate array import [{'start': 1425, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2885, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1425, 'end': 2885, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:45:04.882924: - Your estimated bill for today is £1.85 and tomorrow is £1.42
2026-08-17 23:45:04.883059: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:45:04.883197: - The battery is currently at 36% and is charging to 85% for the next 1 and three quarters hours.
2026-08-17 23:45:04.883299: - For the next 48 hours there will be no solar generation.
2026-08-17 23:45:04.883431: - You will run out of battery in 23 hours.
2026-08-17 23:45:04.883528:
2026-08-17 23:45:04.923891: Plan calculation took 1.59 seconds
2026-08-17 23:45:04.929448: No high rate period found
2026-08-17 23:45:04.998642: Import threshold used for optimisation was 8.0p
2026-08-17 23:45:05.135678: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0]
2026-08-17 23:45:05.142047: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:45:05.142177: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-17 23:45:05.142313: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:45:05.142480: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:45:05.142691: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:45:05.142785: No export window planned
2026-08-17 23:45:05.142930: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:45:05.142974: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:45:05.143237: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:45:05.143396: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:45:05.143494: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:45:05.143592: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:45:05.143777: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.143855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.143920: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.143976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144297: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144351: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144465: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144553: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144628: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144716: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144792: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.144944: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.145018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.145135: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.145210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.145295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.145368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.145452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:45:05.145496: Inverter 0 count register writes 0
2026-08-17 23:45:05.172999: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 23:45:05.179196: Total inverter register writes now 862
2026-08-17 23:45:05.218525: Info: Completed run status Charging
2026-08-17 23:45:05.225863: Info: record_status Charging target 36%-100.0%
2026-08-17 23:45:05.237036: Saved current settings to /config/predbat_config.json
2026-08-17 23:45:05.237302: Compare, best tariff: current metric 104.68p
2026-08-17 23:45:05.773460: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0066 val_mae=0.0026 kWh val_bias=+0.0006 kWh (+0.7%) combined=0.0018 kWh ema_combined=0.0021 kWh
2026-08-17 23:45:18.393973: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0065 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-17 23:45:30.598560: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0062 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0021 kWh ema_combined=0.0020 kWh
2026-08-17 23:45:43.054452: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0064 val_mae=0.0025 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0013 kWh ema_combined=0.0018 kWh
2026-08-17 23:45:49.378760: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:45:49.379276: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:45:49.379433: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:45:49.379800: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:45:49.379978: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:45:49.380127: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:45:49.380260: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:45:56.432857: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0063 val_mae=0.0026 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-17 23:46:11.276259: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0060 val_mae=0.0026 kWh val_bias=-0.0007 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-17 23:46:24.146562: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0064 val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-17 23:46:36.297068: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0059 val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-17 23:46:49.069815: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0062 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 23:47:02.022561: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-17 23:47:14.692353: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0058 val_mae=0.0027 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-17 23:47:14.693143: ML Predictor: Restored best weights from epoch with val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 23:47:14.693313: ML Predictor: Training complete, final val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 23:47:16.025084: ML Predictor: AR rollout over holdout: ar_mae=0.0025 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-17 23:47:16.030122: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0023 kWh
2026-08-17 23:47:16.100345: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-17 23:47:16.100540: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 23:47:16.653192: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-17 23:47:21.419159: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-17 23:47:21.472681: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7287 std=4.5873) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-17 23:47:21.561825: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 23:47:21.576418: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 23:47:21.604973: ML Predictor: Baseline (pre-finetune) val_mae=0.0038 kWh val_bias=-0.0001 kWh
2026-08-17 23:47:34.171359: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0099 val_mae=0.0047 kWh val_bias=+0.0012 kWh (+1.5%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-17 23:47:46.760134: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0114 val_mae=0.0040 kWh val_bias=-0.0013 kWh (-1.7%) combined=0.0031 kWh ema_combined=0.0029 kWh
2026-08-17 23:47:49.463480: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:47:49.464023: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:47:49.464155: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:47:49.464437: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:47:49.464553: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:47:49.464661: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:47:49.464776: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:47:59.320810: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0117 val_mae=0.0045 kWh val_bias=-0.0018 kWh (-2.2%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-17 23:48:13.613457: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0118 val_mae=0.0039 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0026 kWh ema_combined=0.0028 kWh
2026-08-17 23:48:26.167451: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0133 val_mae=0.0041 kWh val_bias=+0.0013 kWh (+1.7%) combined=0.0036 kWh ema_combined=0.0030 kWh
2026-08-17 23:48:38.831832: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0128 val_mae=0.0033 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-17 23:48:51.725132: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0093 val_mae=0.0034 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-17 23:49:04.353838: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0101 val_mae=0.0033 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-17 23:49:19.706421: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0094 val_mae=0.0044 kWh val_bias=+0.0030 kWh (+3.8%) combined=0.0046 kWh ema_combined=0.0030 kWh
2026-08-17 23:49:34.475937: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0094 val_mae=0.0029 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0020 kWh ema_combined=0.0027 kWh
2026-08-17 23:49:34.476223: ML Predictor: Early stopping at epoch 10
2026-08-17 23:49:34.477189: ML Predictor: Restored best weights from epoch with val_mae=0.0038 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 23:49:34.477513: ML Predictor: Training complete, final val_mae=0.0038 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-17 23:49:35.443101: ML Predictor: AR rollout over holdout: ar_mae=0.0043 kWh ar_bias=+0.0000 kWh (+0.0%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-17 23:49:35.448295: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0038 kWh
2026-08-17 23:49:35.525304: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-17 23:49:35.525526: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 23:49:36.195154: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-17 23:49:41.378863: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-17 23:49:41.436110: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7251 std=4.5850) import_rate(mean=16.7072 std=8.3577) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-17 23:49:41.524832: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 23:49:41.537509: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 23:49:41.560705: ML Predictor: Baseline (pre-finetune) val_mae=0.0046 kWh val_bias=+0.0001 kWh
2026-08-17 23:49:55.300677: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0104 val_mae=0.0037 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-17 23:50:00.318184: --------------- PredBat - update at 2026-08-17 23:50:00+01:00 with clock skew 0 minutes, minutes now 1430
2026-08-17 23:50:00.319693: Saved current settings to /config/predbat_config.json
2026-08-17 23:50:00.320012: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-17 23:50:00.320268: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:50:00.320515: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:50:00.356820: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:50:00.357122: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:50:00.357503: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:50:00.358448: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:50:00.358787: Predbat mode is set to Control charge & discharge
2026-08-17 23:50:00.645221: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:50:00.645694: Using load_power data to fill gaps in load_today data
2026-08-17 23:50:01.843407: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:50:01.843659: Zero load period starting at 2026-08-17T10:54:00+0100 (776 minutes) for 189 minutes with base value 211.425
2026-08-17 23:50:01.844850: Processing 721 30-minute periods for power integration
2026-08-17 23:50:02.013891: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:50:02.014140: Car charging hold False, threshold 6.0kWh
2026-08-17 23:50:02.014336: Current data so far today: load 13.1kWh, import 9.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:50:02.032514: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:50:02.032744: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:50:02.033567: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:50:02.033781: Standing charge is set to 46.63p
2026-08-17 23:50:02.245149: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.245447: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.245700: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.245938: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.246161: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.246379: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.246596: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.246826: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.247038: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:50:02.248995: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:50:02.252068: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:50:02.256590: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:50:02.256914: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:50:02.293197: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:50:02.293379: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:50:02.294588: High export rate found rates in range 99p to -99p
2026-08-17 23:50:02.320122: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:50:02.320403: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:50:02.337713: Battery level now 5.78kWh, -1hr ago 5.44kWh, at midnight 10.49kWh, battery value change in the last hour 2.31p, change today -32.38p, rate_forward 6.87p
2026-08-17 23:50:02.338349: Last hour: net energy 1.2kWh, import 1.2kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 16.32p, import 16.32p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:50:02.440892: Today's energy total net 9.5kWh, import 9.5kWh, export 0.0kWh, cost 180.88p, import 134.24p, export 0.0p, carbon 0.0kg
2026-08-17 23:50:02.441195: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:50:02.583328: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:50:02.614183: Today's load divergence 92.88%, in-day adjustment 93.06%, damping 0.95x, yesterday 68.37% today 93.23% blend 0.69%
2026-08-17 23:50:02.614324: Today's predicted so far 15.36kWh with 0.0kWh car/iBoost excluded, 5.08kWh import ignored, and 15.36kWh forecast extra.
2026-08-17 23:50:02.614364: Today's actual load so far 14.33kWh with 0.0kWh car/iBoost excluded, and 5.08kWh import ignored.
2026-08-17 23:50:02.660264: Inverter 0: Type SK Sunsynk
2026-08-17 23:50:02.660356: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:50:02.660561: Reserve min: 7%, battery_min: 7%
2026-08-17 23:50:02.660665: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:50:02.661017: Inverter 0 SoC: 5.78kW 36%, current charge rate 5000W, current discharge rate 5250W, current battery power -4505W, current battery voltage 51.2V, grid power -5472W, load power 475W, PV Power 0W
2026-08-17 23:50:02.661192: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:50:02.661291: Inverter 0 scheduled charge enable is True
2026-08-17 23:50:02.661351: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}, {'start': 4290, 'end': 4620, 'average': 0}]
2026-08-17 23:50:02.661453: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:50:02.661593: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:50:02.661653: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:50:02.661707: Inverter 0 scheduled discharge enable is False
2026-08-17 23:50:02.661852: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:50:02.661895: Inverter 0 discharge windows currently []
2026-08-17 23:50:02.661922: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:50:02.661953: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:50:02.661975: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:50:02.750463: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:50:02.750587: Plan was last updated on 2026-08-17 23:40:00+01:00 and is now 10.0 minutes old
2026-08-17 23:50:02.750911: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-17 23:50:02.750965: Best export window [ ]
2026-08-17 23:50:02.752282: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:50:02.757541: Load divergence over 8.0 hours mean 397.14W, min 297.6W, max 482.4W, std dev 40.43W, divergence 5.09%
2026-08-17 23:50:02.786766: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:50:02.786881: LoadML is_calculating True
2026-08-17 23:50:02.787032: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 23:50:02.840256: predict base end_record 08-19 00:10:00, final soc 6.26kWh, metric 425.73p, metric_keep 0kWh, min_soc 3.16kWh @ 08-18 23:25:00, load 29.69kWh, PV 0.0kWh
2026-08-17 23:50:03.030309: Battery has 48.0 hours left - now at 5.78kWh
2026-08-17 23:50:03.127716: predict base10 end_record 08-19 00:10:00, final soc 5.14kWh, metric 423.05p, metric_keep 0kWh, min_soc 2.55kWh @ 08-18 23:25:00, load 30.48kWh, PV 0.0kWh
2026-08-17 23:50:03.265727: predict best10 end_record 08-19 00:10:00, final soc 1.77kWh, metric 401.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.48kWh, PV 0.0kWh
2026-08-17 23:50:03.384007: predict best end_record 08-19 00:10:00, final soc 1.9kWh, metric 388.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 29.69kWh, PV 0.0kWh
2026-08-17 23:50:03.384364: Saving plan best values to HA entities
2026-08-17 23:50:03.642014: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:50:03.648464: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:50:03.654980: Best charging limit SoC's [16.0, 13.5, 14.25, 16.0, 16.0]kWh, export []kWh gives import battery 13.99kWh, house 0.3kWh, export 0.0kWh, metric 388.53p, metric10 401.45p
2026-08-17 23:50:03.784281: Marginal costs baseline metric (no standing charge): 295.2668
2026-08-17 23:50:04.321912: Marginal energy costs matrix computed: min=8.0 max=32.88
2026-08-17 23:50:04.476342: Rate array import [{'start': 1430, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2890, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1430, 'end': 2890, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:50:04.476906: - Your estimated bill for today is £1.89 and tomorrow is £1.45
2026-08-17 23:50:04.476959: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:50:04.476988: - The battery is currently at 36% and is charging to 85% for the next 1 and three quarters hours.
2026-08-17 23:50:04.491973: - For the next 48 hours there will be no solar generation.
2026-08-17 23:50:04.492070: - You will run out of battery in 23 hours.
2026-08-17 23:50:04.492099:
2026-08-17 23:50:04.544594: Plan calculation took 1.79 seconds
2026-08-17 23:50:04.550070: No high rate period found
2026-08-17 23:50:04.634687: Import threshold used for optimisation was 8.0p
2026-08-17 23:50:04.704781: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0]
2026-08-17 23:50:04.713371: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:50:04.713646: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 36%, target 100%
2026-08-17 23:50:04.713879: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:50:04.714149: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:50:04.714457: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:50:04.714658: No export window planned
2026-08-17 23:50:04.714885: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:50:04.715016: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:50:04.715289: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:50:04.715499: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:50:04.715653: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:50:04.715806: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:50:04.716045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.716193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.716324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.716478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.716606: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.716758: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.716887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717033: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717162: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717290: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717415: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717540: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717685: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717815: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.717989: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.718122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.718248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.718375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.718500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.718623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.718774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:04.718891: Inverter 0 count register writes 0
2026-08-17 23:50:04.742339: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-17 23:50:04.742695: Recompute is saving previous plan...
2026-08-17 23:50:04.744129: Best charge window [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-17 23:50:04.744312: Best export window [ ]
2026-08-17 23:50:04.745776: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:50:04.750559: Load divergence over 8.0 hours mean 397.14W, min 297.6W, max 482.4W, std dev 40.43W, divergence 5.09%
2026-08-17 23:50:04.778994: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:50:04.779242: LoadML is_calculating True
2026-08-17 23:50:04.779370: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 23:50:04.793476: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-17 23:50:04.794276: Optimise levels pass started at 2026-08-17 23:50:04
2026-08-17 23:50:04.794421: Optimise all windows, total charge 24 export 1
2026-08-17 23:50:07.189142: >> Region optimisation pass width 960 gives best_metric 425.5p, best_cost 431.8p, best_cycle 46.51kWh, best_import 31.37kWh
2026-08-17 23:50:07.438412: >> Region optimisation pass width 480 gives best_metric 425.5p, best_cost 431.8p, best_cycle 46.51kWh, best_import 31.37kWh
2026-08-17 23:50:08.057177: >> Region optimisation pass width 240 gives best_metric 425.5p, best_cost 431.8p, best_cycle 46.51kWh, best_import 31.37kWh
2026-08-17 23:50:09.284119: >> Region optimisation pass width 120 gives best_metric 425.5p, best_cost 431.8p, best_cycle 46.51kWh, best_import 31.37kWh
2026-08-17 23:50:09.284324: Calculated end_record as 08-19 00:00:00 based on best_price 8.0p, next_charge_start 08-18 00:00:00, max_windows 13
2026-08-17 23:50:09.284705: Optimise levels pass ended at 2026-08-17 23:50:09, duration 4.5 seconds tried 64 combinations
2026-08-17 23:50:09.284825: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 425.5p, best_keep 0kWh, best_cycle 46.51kWh, best_carbon 0kg, best_import 31.37kWh
2026-08-17 23:50:09.323383: Starting detailed optimisation end_record 08-19 00:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-17 23:50:21.695161: Tweak plan optimisation started metric 280.91p, cost 287.5p
2026-08-17 23:50:23.625664: Tweak optimisation finished metric 280.91p, cost 287.5p, metric_keep 0kWh, cycle 21.47kWh, carbon 0kg, import 13.33kWh, changed 8 window(s)
2026-08-17 23:50:23.643854: Swap charge optimisation started metric 280.91p, cost 287.5p, min_improvement_swap 0.1p
2026-08-17 23:50:25.016451: Swap charge optimisation finished metric 280.91p, cost 287.5p
2026-08-17 23:50:25.169546: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 279.81p -> 279.81p, plan now metric 281.9p, cost 287.5p, cycle 21.47kWh, import 13.33kWh
2026-08-17 23:50:25.181241: Raw charge windows [ 17-08 23:30:00 - 18-08 00:00:00 @ 8.0p 100%, 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 89%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 89%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 89%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:50:25.181683: Unclipped charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:50:25.181950: Unfiltered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:50:25.182505: Filtered charge windows [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-17 23:50:25.230254: Previous plan best metric is 280.91 (cost 287.5) and new plan best metric is 280.91 (cost 287.5)
2026-08-17 23:50:25.244204: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-17 23:50:25.244423: Plan valid is now true after recompute was False
2026-08-17 23:50:25.307568: predict base end_record 08-19 00:00:00, final soc 5.49kWh, metric 371.34p, metric_keep 0kWh, min_soc 3.16kWh @ 08-18 23:25:00, load 29.55kWh, PV 0.0kWh
2026-08-17 23:50:25.514451: Battery has 48.0 hours left - now at 5.78kWh
2026-08-17 23:50:25.623454: predict base10 end_record 08-19 00:00:00, final soc 4.49kWh, metric 369.71p, metric_keep 0kWh, min_soc 2.55kWh @ 08-18 23:25:00, load 30.34kWh, PV 0.0kWh
2026-08-17 23:50:25.799518: predict best10 end_record 08-19 00:00:00, final soc 1.12kWh, metric 348.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.34kWh, PV 0.0kWh
2026-08-17 23:50:25.909809: predict best end_record 08-19 00:00:00, final soc 1.12kWh, metric 334.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 29.55kWh, PV 0.0kWh
2026-08-17 23:50:25.910047: Saving plan best values to HA entities
2026-08-17 23:50:26.080968: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:50:26.088237: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:50:26.095440: Best charging limit SoC's [16.0, 13.5, 14.25, 16.0, 16.0]kWh, export []kWh gives import battery 13.02kWh, house 0.3kWh, export 0.0kWh, metric 334.14p, metric10 348.11p
2026-08-17 23:50:26.242409: Marginal costs baseline metric (no standing charge): 287.5041
2026-08-17 23:50:26.595179: Marginal energy costs matrix computed: min=8.0 max=32.88
2026-08-17 23:50:26.719805: Rate array import [{'start': 1430, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2880, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1430, 'end': 2880, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:50:26.732414: - Your estimated bill for today is £1.89 and tomorrow is £1.45
2026-08-17 23:50:26.732481: - Import rates are cheap (8.0p) for the next 5 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:50:26.732524: - The battery is currently at 36% and is charging to 85% for the next 1 and three quarters hours.
2026-08-17 23:50:26.732546: - For the next 48 hours there will be no solar generation.
2026-08-17 23:50:26.732566: - You will run out of battery in 23 hours.
2026-08-17 23:50:26.732586:
2026-08-17 23:50:26.783057: Plan calculation took 22.04 seconds
2026-08-17 23:50:26.783328: Inverter 0: Type SK Sunsynk
2026-08-17 23:50:26.783374: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:50:26.783655: Reserve min: 7%, battery_min: 7%
2026-08-17 23:50:26.783928: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:50:26.784270: Inverter 0 SoC: 6.12kW 38%, current charge rate 5000W, current discharge rate 5250W, current battery power -4505W, current battery voltage 51.2V, grid power -5483W, load power 487W, PV Power 0W
2026-08-17 23:50:26.784525: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:50:26.784697: Inverter 0 scheduled charge enable is True
2026-08-17 23:50:26.784795: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}, {'start': 4290, 'end': 4620, 'average': 0}]
2026-08-17 23:50:26.785146: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:50:26.785777: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:50:26.785894: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:50:26.785986: Inverter 0 scheduled discharge enable is False
2026-08-17 23:50:26.786202: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:50:26.786391: Inverter 0 discharge windows currently []
2026-08-17 23:50:26.786458: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:50:26.786507: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:50:26.786689: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:50:26.856138: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:50:26.856299: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 38%, target 100%
2026-08-17 23:50:26.856479: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:50:26.856710: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:50:26.856975: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:50:26.857093: No export window planned
2026-08-17 23:50:26.857300: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:50:26.857346: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:50:26.857566: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:50:26.857740: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:50:26.857821: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:50:26.857917: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:50:26.858077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858157: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858501: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858660: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858738: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858777: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858842: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858884: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.858980: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859015: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.859854: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:50:26.860009: Inverter 0 count register writes 0
2026-08-17 23:50:26.888185: Total inverter register writes now 862
2026-08-17 23:50:26.937991: Info: Completed run status Charging
2026-08-17 23:50:26.945781: Info: record_status Charging target 38%-100.0%
2026-08-17 23:50:26.955517: Saved current settings to /config/predbat_config.json
2026-08-17 23:50:26.955858: Compare, best tariff: current metric 104.68p
2026-08-17 23:50:27.533763: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0110 val_mae=0.0043 kWh val_bias=-0.0014 kWh (-2.5%) combined=0.0028 kWh ema_combined=0.0024 kWh
2026-08-17 23:50:40.939572: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0116 val_mae=0.0039 kWh val_bias=+0.0008 kWh (+1.5%) combined=0.0025 kWh ema_combined=0.0024 kWh
2026-08-17 23:50:54.626798: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0124 val_mae=0.0040 kWh val_bias=+0.0021 kWh (+3.7%) combined=0.0037 kWh ema_combined=0.0028 kWh
2026-08-17 23:51:04.097147: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:51:04.097400: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:51:04.097442: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:51:04.097593: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:51:04.097673: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:51:04.097705: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:51:04.097724: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:51:07.876820: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0127 val_mae=0.0039 kWh val_bias=+0.0009 kWh (+1.6%) combined=0.0034 kWh ema_combined=0.0030 kWh
2026-08-17 23:51:23.248469: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0116 val_mae=0.0043 kWh val_bias=-0.0008 kWh (-1.4%) combined=0.0037 kWh ema_combined=0.0032 kWh
2026-08-17 23:51:40.695362: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0118 val_mae=0.0032 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0022 kWh ema_combined=0.0029 kWh
2026-08-17 23:51:54.026357: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0105 val_mae=0.0032 kWh val_bias=+0.0004 kWh (+0.6%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-17 23:52:07.566825: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0085 val_mae=0.0029 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-17 23:52:22.567334: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0073 val_mae=0.0027 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0018 kWh ema_combined=0.0023 kWh
2026-08-17 23:52:35.426221: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0076 val_mae=0.0030 kWh val_bias=+0.0009 kWh (+1.7%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-17 23:52:48.474991: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0077 val_mae=0.0030 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-17 23:52:59.046557: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0083 val_mae=0.0029 kWh val_bias=-0.0015 kWh (-2.7%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-17 23:53:04.433508: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:53:04.433832: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:53:04.433885: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:53:04.434050: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:53:04.434098: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:53:04.434125: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:53:04.434230: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:53:12.162041: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0076 val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-17 23:53:26.401126: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0073 val_mae=0.0023 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-17 23:53:40.245516: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0071 val_mae=0.0023 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-17 23:53:52.589850: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-17 23:54:07.020751: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0061 val_mae=0.0022 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 23:54:20.836314: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0063 val_mae=0.0023 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-17 23:54:35.871125: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0059 val_mae=0.0022 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-17 23:54:48.862165: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=+0.0005 kWh (+0.8%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-17 23:55:00.454447: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0060 val_mae=0.0021 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-17 23:55:00.791693: --------------- PredBat - update at 2026-08-17 23:55:00+01:00 with clock skew 0 minutes, minutes now 1435
2026-08-17 23:55:00.792620: Saved current settings to /config/predbat_config.json
2026-08-17 23:55:00.792759: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-17 23:55:00.792853: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-17 23:55:00.792943: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-17 23:55:00.821677: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-17 23:55:00.821870: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-17 23:55:00.822118: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-17 23:55:00.822818: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-17 23:55:00.823007: Predbat mode is set to Control charge & discharge
2026-08-17 23:55:01.212507: Found 21602 load_today datapoints going back 28 days
2026-08-17 23:55:01.212771: Using load_power data to fill gaps in load_today data
2026-08-17 23:55:02.643264: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-17 23:55:02.643495: Zero load period starting at 2026-08-17T10:54:00+0100 (781 minutes) for 189 minutes with base value 211.4
2026-08-17 23:55:02.644697: Processing 721 30-minute periods for power integration
2026-08-17 23:55:02.936480: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-17 23:55:02.937358: Car charging hold False, threshold 6.0kWh
2026-08-17 23:55:02.937437: Current data so far today: load 13.1kWh, import 9.5kWh, export 0.0kWh, PV 0kWh
2026-08-17 23:55:02.963464: Car 0 using Octopus Intelligent is unplugged
2026-08-17 23:55:02.963607: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-17 23:55:02.964635: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-17 23:55:02.964782: Standing charge is set to 46.63p
2026-08-17 23:55:03.101998: Octopus: Intelligent slot at 08-16 12:30:00-08-16 13:00:00, assumed price 8.0, amount 2.73, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.102303: Octopus: Intelligent slot at 08-16 14:00:00-08-16 14:30:00, assumed price 8.0, amount 3.4, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.102532: Octopus: Intelligent slot at 08-16 15:00:00-08-16 15:30:00, assumed price 8.0, amount 3.3, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.102746: Octopus: Intelligent slot at 08-16 15:30:00-08-16 16:00:00, assumed price 8.0, amount 3.49, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.102992: Octopus: Intelligent slot at 08-16 16:30:00-08-16 17:00:00, assumed price 8.0, amount 3.41, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.103171: Octopus: Intelligent slot at 08-16 17:30:00-08-16 18:00:00, assumed price 8.0, amount 0.0, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.103340: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.103623: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.103795: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-17 23:55:03.104876: Octopus: Intelligent slots for day -1: 9 of 12 max
2026-08-17 23:55:03.104990: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-17 23:55:03.110978: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-17 23:55:03.111274: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-17 23:55:03.156678: Export rates: min 0p, max 0p, average 0.0p
2026-08-17 23:55:03.157128: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-17 23:55:03.158675: High export rate found rates in range 99p to -99p
2026-08-17 23:55:03.190740: Low Import rate found rates in range 8.0p to 8.0p
2026-08-17 23:55:03.190869: Car 0 on Octopus Intelligent, no active plan
2026-08-17 23:55:03.205114: Battery level now 5.78kWh, -1hr ago 5.28kWh, at midnight 10.49kWh, battery value change in the last hour 3.41p, change today -32.38p, rate_forward 6.87p
2026-08-17 23:55:03.205504: Last hour: net energy 1.2kWh, import 1.2kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 16.17p, import 16.17p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-17 23:55:03.447141: Today's energy total net 9.5kWh, import 9.5kWh, export 0.0kWh, cost 180.88p, import 134.24p, export 0.0p, carbon 0.0kg
2026-08-17 23:55:03.447337: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-17 23:55:03.580425: Using weighted-bucket historical load forecast over 14 days
2026-08-17 23:55:03.615132: Today's load divergence 92.38%, in-day adjustment 92.68%, damping 0.95x, yesterday 68.37% today 92.76% blend 0.35%
2026-08-17 23:55:03.616244: Today's predicted so far 15.44kWh with 0.0kWh car/iBoost excluded, 5.34kWh import ignored, and 15.44kWh forecast extra.
2026-08-17 23:55:03.620047: Today's actual load so far 14.34kWh with 0.0kWh car/iBoost excluded, and 5.34kWh import ignored.
2026-08-17 23:55:03.666126: Inverter 0: Type SK Sunsynk
2026-08-17 23:55:03.666220: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-17 23:55:03.666450: Reserve min: 7%, battery_min: 7%
2026-08-17 23:55:03.668415: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-17 23:55:03.668810: Inverter 0 SoC: 6.48kW 41%, current charge rate 5000W, current discharge rate 5250W, current battery power -4513W, current battery voltage 51.2V, grid power -5498W, load power 509W, PV Power 0W
2026-08-17 23:55:03.669011: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:55:03.669127: Inverter 0 scheduled charge enable is True
2026-08-17 23:55:03.669198: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}, {'start': 4290, 'end': 4620, 'average': 0}]
2026-08-17 23:55:03.669331: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-17 23:55:03.669515: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:55:03.669566: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:55:03.669620: Inverter 0 scheduled discharge enable is False
2026-08-17 23:55:03.669805: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:55:03.669855: Inverter 0 discharge windows currently []
2026-08-17 23:55:03.669890: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:55:03.669950: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:55:03.671534: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:55:03.765536: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-17 23:55:03.765658: Plan was last updated on 2026-08-17 23:50:00+01:00 and is now 5.0 minutes old
2026-08-17 23:55:03.766086: Best charge window [ 17-08 23:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 89%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-17 23:55:03.766145: Best export window [ ]
2026-08-17 23:55:03.767401: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-17 23:55:03.772437: Load divergence over 8.0 hours mean 393.94W, min 300.0W, max 514.8W, std dev 40.77W, divergence 5.18%
2026-08-17 23:55:03.805978: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-17 23:55:03.806104: LoadML is_calculating True
2026-08-17 23:55:03.806136: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-17 23:55:03.890930: predict base end_record 08-19 00:05:00, final soc 5.87kWh, metric 415.2p, metric_keep 0kWh, min_soc 3.15kWh @ 08-18 23:25:00, load 29.56kWh, PV 0.0kWh
2026-08-17 23:55:04.098224: Battery has 48.0 hours left - now at 6.48kWh
2026-08-17 23:55:04.168125: predict base10 end_record 08-19 00:05:00, final soc 4.8kWh, metric 413.02p, metric_keep 0kWh, min_soc 2.54kWh @ 08-18 23:25:00, load 30.34kWh, PV 0.0kWh
2026-08-17 23:55:04.281123: predict best10 end_record 08-19 00:05:00, final soc 1.44kWh, metric 391.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 30.34kWh, PV 0.0kWh
2026-08-17 23:55:04.454499: predict best end_record 08-19 00:05:00, final soc 1.51kWh, metric 378.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 29.56kWh, PV 0.0kWh
2026-08-17 23:55:04.454607: Saving plan best values to HA entities
2026-08-17 23:55:04.847948: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-17 23:55:04.863476: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-17 23:55:04.872788: Best charging limit SoC's [16.0, 13.5, 14.25, 16.0, 16.0]kWh, export []kWh gives import battery 12.69kWh, house 0.33kWh, export 0.0kWh, metric 378.33p, metric10 391.75p
2026-08-17 23:55:04.978073: Marginal costs baseline metric (no standing charge): 285.0595
2026-08-17 23:55:05.453755: Marginal energy costs matrix computed: min=8.0 max=32.91
2026-08-17 23:55:05.546439: Rate array import [{'start': 1435, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2885, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 1435, 'end': 2885, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-17 23:55:05.546992: - Your estimated bill for today is £1.85 and tomorrow is £1.43
2026-08-17 23:55:05.547048: - Import rates are cheap (8.0p) for the next 5 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-17 23:55:05.547082: - The battery is currently at 41% and is charging to 85% for the next 1 and a half hours.
2026-08-17 23:55:05.547121: - For the next 48 hours there will be no solar generation.
2026-08-17 23:55:05.547157: - You will run out of battery in 23 hours.
2026-08-17 23:55:05.547188:
2026-08-17 23:55:05.583734: Plan calculation took 1.82 seconds
2026-08-17 23:55:05.588438: No high rate period found
2026-08-17 23:55:05.648194: Import threshold used for optimisation was 8.0p
2026-08-17 23:55:05.710698: Low import rate windows [0: 08-17 23:30:00 - 08-18 00:00:00 @ 8.0, 1: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 2: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 3: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 4: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 5: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 6: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 7: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 8: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 9: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 10: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 11: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 12: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 13: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 14: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 15: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 16: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 17: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 18: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 19: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 20: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 21: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 22: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 23: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 24: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0]
2026-08-17 23:55:05.717067: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-17 23:30:00
2026-08-17 23:55:05.717165: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 41%, target 100%
2026-08-17 23:55:05.717270: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-17 23:55:05.717412: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:55:05.717607: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:55:05.717688: No export window planned
2026-08-17 23:55:05.717791: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-17 23:55:05.717827: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-17 23:55:05.717963: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-17 23:55:05.718058: Inverter 0 setting charging SoC to 100% as per target
2026-08-17 23:55:05.718101: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-17 23:55:05.718150: Inverter 0 Current Target SoC is 100%, already at target
2026-08-17 23:55:05.718246: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718420: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718577: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718631: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718743: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718833: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.718893: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.719000: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.719043: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.719292: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.719334: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.720402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.720508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.720560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.720627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.720764: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-17 23:55:05.720984: Inverter 0 count register writes 0
2026-08-17 23:55:05.757893: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-17 23:55:05.762966: Total inverter register writes now 862
2026-08-17 23:55:05.824765: Info: Completed run status Charging
2026-08-17 23:55:05.832019: Info: record_status Charging target 41%-100.0%
2026-08-17 23:55:05.854412: Saved current settings to /config/predbat_config.json
2026-08-17 23:55:05.854646: Compare, best tariff: current metric 104.68p
2026-08-17 23:55:16.673438: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0056 val_mae=0.0020 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-17 23:55:25.273872: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-17 23:55:25.425574: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-17 23:55:33.227585: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0058 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-17 23:55:45.249307: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0019 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 23:55:49.053966: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:55:49.054680: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:55:49.054974: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:55:49.055403: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:55:49.055647: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:55:49.055872: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:55:49.056093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:55:58.907247: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0020 kWh val_bias=+0.0006 kWh (+1.0%) combined=0.0015 kWh ema_combined=0.0013 kWh
2026-08-17 23:56:11.658317: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0051 val_mae=0.0020 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-17 23:56:24.854072: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0055 val_mae=0.0019 kWh val_bias=+0.0005 kWh (+0.9%) combined=0.0015 kWh ema_combined=0.0014 kWh
2026-08-17 23:56:39.322250: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-17 23:56:53.410095: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-17 23:56:53.415984: ML Predictor: Restored best weights from epoch with val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-17 23:56:53.416206: ML Predictor: Training complete, final val_mae=0.0019 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-17 23:56:54.356630: ML Predictor: AR rollout over holdout: ar_mae=0.0020 kWh ar_bias=-0.0002 kWh (-0.3%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-17 23:56:54.361264: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0019 kWh
2026-08-17 23:56:54.437118: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-17 23:56:54.437319: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 23:56:55.051100: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-17 23:57:00.088818: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-17 23:57:00.140632: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7161 std=4.5826) import_rate(mean=16.6934 std=8.3727) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-17 23:57:00.223666: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 23:57:00.240395: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 23:57:00.269397: ML Predictor: Baseline (pre-finetune) val_mae=0.0036 kWh val_bias=-0.0002 kWh
2026-08-17 23:57:13.969526: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0099 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-17 23:57:18.576415: Info: HAHistory: Pruning history data started.
2026-08-17 23:57:18.579452: Info: HAHistory: Pruning history data completed.
2026-08-17 23:57:27.713714: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0124 val_mae=0.0036 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0024 kWh ema_combined=0.0019 kWh
2026-08-17 23:57:43.787151: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0129 val_mae=0.0037 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0028 kWh ema_combined=0.0022 kWh
2026-08-17 23:57:49.104848: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-17 23:57:49.105173: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-17 23:57:49.105226: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-17 23:57:49.105392: Inverter 0 idle time is 08-17 05:00:00-08-17 23:59:00
2026-08-17 23:57:49.105457: Note: Inverter does not support discharge freeze - disabled
2026-08-17 23:57:49.105487: Note: Inverter does not support charge freeze - disabled
2026-08-17 23:57:49.105596: Note: Inverter does not support reserve - disabling reserve functions
2026-08-17 23:57:57.071679: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0131 val_mae=0.0036 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0027 kWh ema_combined=0.0023 kWh
2026-08-17 23:58:10.939572: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0172 val_mae=0.0037 kWh val_bias=+0.0007 kWh (+1.6%) combined=0.0031 kWh ema_combined=0.0026 kWh
2026-08-17 23:58:24.625473: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0105 val_mae=0.0038 kWh val_bias=+0.0018 kWh (+4.1%) combined=0.0033 kWh ema_combined=0.0028 kWh
2026-08-17 23:58:37.901397: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0108 val_mae=0.0033 kWh val_bias=-0.0009 kWh (-2.0%) combined=0.0021 kWh ema_combined=0.0026 kWh
2026-08-17 23:58:53.233577: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0104 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0022 kWh
2026-08-17 23:59:06.311841: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0096 val_mae=0.0029 kWh val_bias=-0.0014 kWh (-3.4%) combined=0.0027 kWh ema_combined=0.0024 kWh
2026-08-17 23:59:18.601337: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0082 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-17 23:59:33.186134: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0068 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-17 23:59:33.186389: ML Predictor: Early stopping at epoch 11
2026-08-17 23:59:33.187313: ML Predictor: Restored best weights from epoch with val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 23:59:33.187636: ML Predictor: Training complete, final val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.2%)
2026-08-17 23:59:34.151369: ML Predictor: AR rollout over holdout: ar_mae=0.0040 kWh ar_bias=-0.0000 kWh (-0.0%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-17 23:59:34.156051: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0034 kWh
2026-08-17 23:59:34.156266: ML Predictor: Curriculum final pass 5/5: full dataset (59.4 days)
2026-08-17 23:59:34.156365: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-17 23:59:34.750425: ML Predictor: Creating dataset with 1425 hours of training data, 48 hours validation
2026-08-17 23:59:39.823400: ML Predictor: Created 16819 training samples, 576 validation samples
2026-08-17 23:59:39.877898: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7066 std=4.5794) import_rate(mean=16.6879 std=8.3930) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1945 std=0.5281)
2026-08-17 23:59:39.956840: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-17 23:59:39.970393: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-17 23:59:39.994752: ML Predictor: Baseline (pre-finetune) val_mae=0.0052 kWh val_bias=-0.0002 kWh
2026-08-17 23:59:55.387524: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0106 val_mae=0.0036 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 00:00:00.856297: --------------- PredBat - update at 2026-08-18 00:00:00+01:00 with clock skew 0 minutes, minutes now 0
2026-08-18 00:00:00.863682: Saved current settings to /config/predbat_config.json
2026-08-18 00:00:00.864005: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 00:00:00.865384: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:00:00.865567: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:00:00.921639: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:00:00.921937: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:00:00.922296: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:00:00.923076: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:00:00.923337: Predbat mode is set to Control charge & discharge
2026-08-18 00:00:01.326298: Found 21602 load_today datapoints going back 27 days
2026-08-18 00:00:01.326604: Using load_power data to fill gaps in load_today data
2026-08-18 00:00:02.848011: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:00:02.848332: Zero load period starting at 2026-08-17T10:54:00+0100 (786 minutes) for 189 minutes with base value 211.4
2026-08-18 00:00:02.849227: Processing 721 30-minute periods for power integration
2026-08-18 00:00:03.247942: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:00:03.249119: Car charging hold False, threshold 6.0kWh
2026-08-18 00:00:03.249178: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:00:03.270204: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:00:03.270373: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:00:03.271063: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:00:03.271136: Standing charge is set to 46.63p
2026-08-18 00:00:03.397357: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:00:03.397801: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:00:03.398143: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:00:03.400613: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:00:03.400826: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:00:03.408156: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:00:03.408734: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:00:03.482238: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:00:03.482366: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:00:03.484253: High export rate found rates in range 99p to -99p
2026-08-18 00:00:03.520338: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:00:03.520664: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:00:03.538140: Battery level now 6.48kWh, -1hr ago 5.28kWh, at midnight 6.48kWh, battery value change in the last hour 8.25p, change today 0.0p, rate_forward 6.87p
2026-08-18 00:00:03.538801: Last hour: net energy 2.06kWh, import 2.06kWh, export 0.0kWh, car 0kWh, load 0.58kWh, net cost 22.1p, import 22.1p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:00:03.672550: Today's energy total net 0kWh, import 0kWh, export 0kWh, cost 0p, import 0p, export 0p, carbon 0.0kg
2026-08-18 00:00:03.672687: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:00:03.830086: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:00:03.856924: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:00:03.857024: Today's predicted so far 0kWh with 0kWh car/iBoost excluded, 0kWh import ignored, and 0kWh forecast extra.
2026-08-18 00:00:03.857052: Today's actual load so far 0kWh with 0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-18 00:00:03.913438: Inverter 0: Type SK Sunsynk
2026-08-18 00:00:03.913535: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:00:04.621140: Find battery size has 15 days of data, max days 15
2026-08-18 00:00:04.621378: Charge start 20970 soc 22.0 end 20950 soc 29.05
2026-08-18 00:00:04.621426: Charging clipped start at 20960 with SoC 24%, end at 20950 with SoC 29%; SoC change 5%
2026-08-18 00:00:04.621487: Charge start 20910 soc 31.0 end 20742 soc 100.0
2026-08-18 00:00:04.621532: Charging clipped start at 20900 with SoC 33%, end at 20770 with SoC 90%; SoC change 57%
2026-08-18 00:00:04.621594: Power added over 131 samples is 9.9kWh
2026-08-18 00:00:04.621633: Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 57% SoC over 131 minutes
2026-08-18 00:00:04.622125: Charge start 18000 soc 15.0 end 17821 soc 89.65
2026-08-18 00:00:04.622244: Charging clipped start at 17990 with SoC 17%, end at 17825 with SoC 89%; SoC change 72%
2026-08-18 00:00:04.622327: Power added over 166 samples is 12.5kWh
2026-08-18 00:00:04.622358: Battery size sample accepted raw 17.43kWh adjusted 16.23kWh from 72% SoC over 166 minutes
2026-08-18 00:00:04.622392: Charge start 17790 soc 92.0 end 17763 soc 100.0
2026-08-18 00:00:04.622609: Charge start 16703 soc 68.0 end 16702 soc 68.0
2026-08-18 00:00:04.622657: Charge start 16680 soc 69.0 end 16604 soc 99.5
2026-08-18 00:00:04.622695: Charging clipped start at 16670 with SoC 71%, end at 16630 with SoC 88%; SoC change 17%
2026-08-18 00:00:04.622730: Power added over 41 samples is 3.1kWh
2026-08-18 00:00:04.622757: Battery size sample accepted raw 18.13kWh adjusted 16.89kWh from 17% SoC over 41 minutes
2026-08-18 00:00:04.623025: Charge start 15030 soc 42.0 end 15006 soc 49.25
2026-08-18 00:00:04.623058: Charging clipped start at 15020 with SoC 44%, end at 15010 with SoC 49%; SoC change 5%
2026-08-18 00:00:04.623092: Charge start 14940 soc 52.0 end 14938 soc 52.0
2026-08-18 00:00:04.623125: Charge start 14910 soc 53.0 end 14881 soc 62.05
2026-08-18 00:00:04.623153: Charging clipped start at 14900 with SoC 55%, end at 14885 with SoC 62%; SoC change 7%
2026-08-18 00:00:04.623360: Charge start 13724 soc 9.0 end 13715 soc 11.15
2026-08-18 00:00:04.623397: Charge start 13698 soc 9.35 end 13689 soc 10.65
2026-08-18 00:00:04.623457: Charge start 13680 soc 11.8 end 13467 soc 100.0
2026-08-18 00:00:04.623490: Charging clipped start at 13680 with SoC 11%, end at 13495 with SoC 90%; SoC change 79%
2026-08-18 00:00:04.623544: Power added over 186 samples is 14.1kWh
2026-08-18 00:00:04.623571: Battery size sample accepted raw 17.84kWh adjusted 16.61kWh from 79% SoC over 186 minutes
2026-08-18 00:00:04.623871: Charge start 12330 soc 13.0 end 12241 soc 49.25
2026-08-18 00:00:04.623945: Charging clipped start at 12325 with SoC 14%, end at 12245 with SoC 49%; SoC change 35%
2026-08-18 00:00:04.623992: Power added over 81 samples is 6.1kWh
2026-08-18 00:00:04.624020: Battery size sample accepted raw 17.47kWh adjusted 16.27kWh from 35% SoC over 81 minutes
2026-08-18 00:00:04.624240: Charge start 12210 soc 53.0 end 12197 soc 55.75
2026-08-18 00:00:04.624306: Charge start 12180 soc 59.0 end 12158 soc 65.842
2026-08-18 00:00:04.624337: Charging clipped start at 12170 with SoC 61%, end at 12160 with SoC 65%; SoC change 4%
2026-08-18 00:00:04.624381: Charge start 12150 soc 69.0 end 12074 soc 99.65
2026-08-18 00:00:04.624419: Charging clipped start at 12150 with SoC 69%, end at 12100 with SoC 89%; SoC change 20%
2026-08-18 00:00:04.624453: Power added over 51 samples is 3.9kWh
2026-08-18 00:00:04.624481: Battery size sample accepted raw 19.33kWh adjusted 18.0kWh from 20% SoC over 51 minutes
2026-08-18 00:00:04.624701: Charge start 10920 soc 25.1 end 10906 soc 28.421
2026-08-18 00:00:04.624735: Charging clipped start at 10920 with SoC 25%, end at 10910 with SoC 28%; SoC change 3%
2026-08-18 00:00:04.624774: Charge start 10830 soc 31.0 end 10815 soc 35.75
2026-08-18 00:00:04.624815: Charging clipped start at 10820 with SoC 33%, end at 10815 with SoC 35%; SoC change 2%
2026-08-18 00:00:04.624883: Charge start 10740 soc 37.95 end 10642 soc 77.8
2026-08-18 00:00:04.624910: Charging clipped start at 10740 with SoC 37%, end at 10645 with SoC 77%; SoC change 40%
2026-08-18 00:00:04.625116: Power added over 96 samples is 7.3kWh
2026-08-18 00:00:04.625154: Battery size sample accepted raw 18.13kWh adjusted 16.88kWh from 40% SoC over 96 minutes
2026-08-18 00:00:04.625402: Charge start 9300 soc 10.85 end 9147 soc 74.55
2026-08-18 00:00:04.625433: Charging clipped start at 9300 with SoC 10%, end at 9150 with SoC 74%; SoC change 64%
2026-08-18 00:00:04.625480: Power added over 151 samples is 11.4kWh
2026-08-18 00:00:04.625506: Battery size sample accepted raw 17.86kWh adjusted 16.63kWh from 64% SoC over 151 minutes
2026-08-18 00:00:04.625754: Charge start 8150 soc 9.0 end 8141 soc 9.25
2026-08-18 00:00:04.625811: Charge start 8051 soc 9.0 end 8042 soc 9.75
2026-08-18 00:00:04.625859: Charge start 7980 soc 13.0 end 7910 soc 41.95
2026-08-18 00:00:04.625956: Charging clipped start at 7970 with SoC 15%, end at 7910 with SoC 41%; SoC change 26%
2026-08-18 00:00:04.625994: Power added over 61 samples is 4.6kWh
2026-08-18 00:00:04.626023: Battery size sample accepted raw 17.73kWh adjusted 16.51kWh from 26% SoC over 61 minutes
2026-08-18 00:00:04.626067: Charge start 7890 soc 44.0 end 7748 soc 100.0
2026-08-18 00:00:04.626105: Charging clipped start at 7880 with SoC 46%, end at 7780 with SoC 90%; SoC change 44%
2026-08-18 00:00:04.626147: Power added over 101 samples is 7.7kWh
2026-08-18 00:00:04.626169: Battery size sample accepted raw 17.44kWh adjusted 16.24kWh from 44% SoC over 101 minutes
2026-08-18 00:00:04.626285: Charge start 7170 soc 45.65 end 7167 soc 45.65
2026-08-18 00:00:04.626328: Charge start 7080 soc 42.0 end 7076 soc 42.0
2026-08-18 00:00:04.626449: Charge start 6495 soc 19.0 end 6483 soc 22.05
2026-08-18 00:00:04.626499: Charge start 6390 soc 22.0 end 6372 soc 27.55
2026-08-18 00:00:04.626525: Charging clipped start at 6385 with SoC 23%, end at 6375 with SoC 27%; SoC change 4%
2026-08-18 00:00:04.626567: Charge start 6360 soc 31.0 end 6267 soc 68.55
2026-08-18 00:00:04.626609: Charging clipped start at 6350 with SoC 33%, end at 6270 with SoC 68%; SoC change 35%
2026-08-18 00:00:04.626648: Power added over 81 samples is 6.2kWh
2026-08-18 00:00:04.626675: Battery size sample accepted raw 17.58kWh adjusted 16.37kWh from 35% SoC over 81 minutes
2026-08-18 00:00:04.626784: Charge start 5726 soc 9.8 end 5717 soc 9.65
2026-08-18 00:00:04.626819: Charge start 5692 soc 9.45 end 5684 soc 10.3
2026-08-18 00:00:04.626851: Charge start 5656 soc 9.65 end 5647 soc 9.8
2026-08-18 00:00:04.626885: Charge start 5620 soc 9.0 end 5611 soc 9.3
2026-08-18 00:00:04.626913: Charge start 5609 soc 11.55 end 5590 soc 19.9
2026-08-18 00:00:04.626940: Charging clipped start at 5605 with SoC 13%, end at 5590 with SoC 19%; SoC change 6%
2026-08-18 00:00:04.627138: Charge start 5210 soc 8.9 end 5202 soc 9.6
2026-08-18 00:00:04.627238: Charge start 5167 soc 9.05 end 5158 soc 10.05
2026-08-18 00:00:04.627288: Charge start 5122 soc 9.0 end 5114 soc 10.3
2026-08-18 00:00:04.627333: Charge start 5084 soc 9.05 end 5075 soc 11.05
2026-08-18 00:00:04.627374: Charge start 5032 soc 9.0 end 5024 soc 10.211
2026-08-18 00:00:04.627408: Charge start 5014 soc 12.1 end 5013 soc 12.1
2026-08-18 00:00:04.627454: Charge start 4980 soc 13.0 end 4861 soc 61.65
2026-08-18 00:00:04.627486: Charging clipped start at 4970 with SoC 15%, end at 4865 with SoC 61%; SoC change 46%
2026-08-18 00:00:04.627527: Power added over 106 samples is 8.0kWh
2026-08-18 00:00:04.627554: Battery size sample accepted raw 17.48kWh adjusted 16.27kWh from 46% SoC over 106 minutes
2026-08-18 00:00:04.627604: Charge start 4830 soc 63.0 end 4802 soc 72.85
2026-08-18 00:00:04.627637: Charging clipped start at 4825 with SoC 64%, end at 4805 with SoC 72%; SoC change 8%
2026-08-18 00:00:04.627736: Charge start 4312 soc 9.5 end 4304 soc 10.25
2026-08-18 00:00:04.627773: Charge start 4273 soc 9.0 end 4264 soc 10.7
2026-08-18 00:00:04.627821: Charge start 4229 soc 9.0 end 4220 soc 10.9
2026-08-18 00:00:04.627871: Charge start 4171 soc 10.3 end 4162 soc 9.7
2026-08-18 00:00:04.627998: Charge start 4082 soc 9.0 end 4073 soc 10.1
2026-08-18 00:00:04.628157: Charge start 4026 soc 9.0 end 4017 soc 9.7
2026-08-18 00:00:04.628207: Charge start 3926 soc 9.0 end 3918 soc 10.0
2026-08-18 00:00:04.629051: Charge start 3791 soc 9.0 end 3782 soc 9.75
2026-08-18 00:00:04.629104: Charge start 3684 soc 9.0 end 3675 soc 11.1
2026-08-18 00:00:04.629143: Charge start 3630 soc 13.0 end 3606 soc 20.15
2026-08-18 00:00:04.629172: Charging clipped start at 3620 with SoC 15%, end at 3610 with SoC 20%; SoC change 5%
2026-08-18 00:00:04.629211: Charge start 3570 soc 22.7 end 3566 soc 22.7
2026-08-18 00:00:04.629271: Charge start 3540 soc 25.0 end 3361 soc 99.45
2026-08-18 00:00:04.629306: Charging clipped start at 3530 with SoC 27%, end at 3385 with SoC 90%; SoC change 63%
2026-08-18 00:00:04.629351: Power added over 146 samples is 11.1kWh
2026-08-18 00:00:04.629396: Battery size sample accepted raw 17.55kWh adjusted 16.34kWh from 63% SoC over 146 minutes
2026-08-18 00:00:04.629654: Charge start 2220 soc 44.0 end 2161 soc 66.5
2026-08-18 00:00:04.629713: Charging clipped start at 2210 with SoC 46%, end at 2165 with SoC 66%; SoC change 20%
2026-08-18 00:00:04.629769: Power added over 46 samples is 3.5kWh
2026-08-18 00:00:04.629803: Battery size sample accepted raw 17.29kWh adjusted 16.1kWh from 20% SoC over 46 minutes
2026-08-18 00:00:04.629828: Charge start 2130 soc 68.8 end 2117 soc 71.45
2026-08-18 00:00:04.629853: Charging clipped start at 2130 with SoC 68%, end at 2120 with SoC 71%; SoC change 3%
2026-08-18 00:00:04.629974: Charge start 1470 soc 54.0 end 1440 soc 65.55
2026-08-18 00:00:04.630004: Charging clipped start at 1460 with SoC 56%, end at 1440 with SoC 65%; SoC change 9%
2026-08-18 00:00:04.630059: Charge start 1230 soc 66.0 end 1201 soc 75.35
2026-08-18 00:00:04.630089: Charging clipped start at 1220 with SoC 68%, end at 1205 with SoC 75%; SoC change 7%
2026-08-18 00:00:04.630117: Charge start 1139 soc 78.0 end 1135 soc 78.95
2026-08-18 00:00:04.630362: Estimated battery size is 16.39kWh from 11 selected samples, 14 accepted samples, 13 rejected samples, median 16.34kWh (assumed charging loss factor 0.9, rejects {'soc_change_too_small': 13})
2026-08-18 00:00:04.642824: Inverter 0 battery size tracking: found_size 16.39 kWh, history {'2026-08-18': 16.39, '2026-08-17': 16.39, '2026-08-16': 16.39, '2026-08-15': 16.39, '2026-08-14': 16.42, '2026-08-13': 16.48, '2026-08-12': 16.49}, trimmed_mean 16.41 kWh, degradation -2.59%, configured battery_scaling 100% (configured degradation 0%)
2026-08-18 00:00:04.651758: Reserve min: 7%, battery_min: 7%
2026-08-18 00:00:04.651959: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:00:04.652337: Inverter 0 SoC: 6.84kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power -4516W, current battery voltage 51.2V, grid power -5458W, load power 486W, PV Power 0W
2026-08-18 00:00:04.652691: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:00:04.652791: Inverter 0 scheduled charge enable is True
2026-08-18 00:00:04.652838: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}]
2026-08-18 00:00:04.652912: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:00:04.653018: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:00:04.653050: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:00:04.653081: Inverter 0 scheduled discharge enable is False
2026-08-18 00:00:04.653276: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:00:04.653316: Inverter 0 discharge windows currently []
2026-08-18 00:00:04.653337: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:00:04.653395: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:00:04.653442: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:00:04.800329: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:00:04.800633: Plan was last updated on 2026-08-17 23:50:00+01:00 and is now 10.0 minutes old
2026-08-18 00:00:04.800805: Force recompute due to start of day
2026-08-18 00:00:04.800949: Recompute, previous plan is invalid...
2026-08-18 00:00:04.802772: Best charge window [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-18 00:00:04.803001: Best export window [ ]
2026-08-18 00:00:04.807488: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:00:04.848388: Load divergence over 8.0 hours mean 396.96W, min 284.4W, max 482.4W, std dev 45.04W, divergence 5.67%
2026-08-18 00:00:04.899731: Calculating data from yesterday for savings calculation
2026-08-18 00:00:04.936059: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1440, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 00:00:05.101345: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 147.74p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.48kWh, PV 0.0kWh
2026-08-18 00:00:05.124343: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 144.4p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.48kWh, PV 0.0kWh
2026-08-18 00:00:05.158607: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 147.74p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.48kWh, PV 0.0kWh
2026-08-18 00:00:05.191492: Yesterday: Predbat disabled was £1.48 (adjusted £1.02) vs £1.81 (adjusted £1.36), saving £-0.33 (adjusted £-0.35) with import 12.64kWh, export 0.0kWh, battery_cycle 19.9kWh, start_soc 9.96kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 00:00:05.341643: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 442.15p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.48kWh, PV 0.0kWh
2026-08-18 00:00:05.356344: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.48kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 00:00:05.379428: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:00:05.379707: LoadML is_calculating True
2026-08-18 00:00:05.379842: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 00:00:05.416395: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:00:05.417072: Optimise levels pass started at 2026-08-18 00:00:05
2026-08-18 00:00:05.417216: Optimise all windows, total charge 24 export 1
2026-08-18 00:00:07.762381: >> Region optimisation pass width 960 gives best_metric 226.59p, best_cost 233.59p, best_cycle 44.18kWh, best_import 29.2kWh
2026-08-18 00:00:08.091716: >> Region optimisation pass width 480 gives best_metric 226.59p, best_cost 233.59p, best_cycle 44.18kWh, best_import 29.2kWh
2026-08-18 00:00:08.808371: >> Region optimisation pass width 240 gives best_metric 226.59p, best_cost 233.59p, best_cycle 44.18kWh, best_import 29.2kWh
2026-08-18 00:00:09.986436: >> Region optimisation pass width 120 gives best_metric 226.59p, best_cost 233.59p, best_cycle 44.18kWh, best_import 29.2kWh
2026-08-18 00:00:09.986876: Calculated end_record as 08-19 00:00:00 based on best_price 8.0p, next_charge_start 08-18 00:00:00, max_windows 12
2026-08-18 00:00:09.987025: Optimise levels pass ended at 2026-08-18 00:00:09, duration 4.6 seconds tried 46 combinations
2026-08-18 00:00:09.987226: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 226.59p, best_keep 0kWh, best_cycle 44.18kWh, best_carbon 0kg, best_import 29.2kWh
2026-08-18 00:00:10.030543: Starting detailed optimisation end_record 08-19 00:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 00:00:20.259007: Tweak plan optimisation started metric 80.94p, cost 88.21p
2026-08-18 00:00:21.731037: Tweak optimisation finished metric 80.94p, cost 88.21p, metric_keep 0kWh, cycle 20.81kWh, carbon 0kg, import 11.03kWh, changed 8 window(s)
2026-08-18 00:00:21.768230: Swap charge optimisation started metric 80.94p, cost 88.21p, min_improvement_swap 0.1p
2026-08-18 00:00:22.989877: Swap charge optimisation finished metric 80.94p, cost 88.21p
2026-08-18 00:00:23.108776: Pruned 2 dead plan slot(s) in 8 trial(s), nominal metric 80.08p -> 79.94p, plan now metric 82.9p, cost 87.63p, cycle 20.69kWh, import 10.95kWh
2026-08-18 00:00:23.119079: Raw charge windows [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 88%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 0%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:00:23.119518: Unclipped charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:00:23.119849: Unfiltered charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:00:23.120204: Filtered charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:00:23.120348: Plan valid is now true after recompute was False
2026-08-18 00:00:23.150724: predict base end_record 08-19 00:00:00, final soc 3.51kWh, metric 153.87p, metric_keep 0kWh, min_soc 3.51kWh @ 08-18 23:55:00, load 15.2kWh, PV 0.0kWh
2026-08-18 00:00:23.354450: Battery has 48.0 hours left - now at 6.84kWh
2026-08-18 00:00:23.415869: predict base10 end_record 08-19 00:00:00, final soc 2.91kWh, metric 155.23p, metric_keep 0kWh, min_soc 2.91kWh @ 08-18 23:55:00, load 15.92kWh, PV 0.0kWh
2026-08-18 00:00:23.608012: predict best10 end_record 08-19 00:00:00, final soc 1.12kWh, metric 154.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 15.92kWh, PV 0.0kWh
2026-08-18 00:00:23.755492: predict best end_record 08-19 00:00:00, final soc 1.12kWh, metric 134.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 15.2kWh, PV 0.0kWh
2026-08-18 00:00:23.768014: Saving plan best values to HA entities
2026-08-18 00:00:24.054695: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:00:24.062645: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:00:24.070894: Best charging limit SoC's [16.0, 14.0, 14.0, 16.0, 16.0]kWh, export []kWh gives import battery 10.51kWh, house 0.44kWh, export 0.0kWh, metric 134.27p, metric10 154.03p
2026-08-18 00:00:24.157682: Marginal costs baseline metric (no standing charge): 87.6335
2026-08-18 00:00:24.470861: Marginal energy costs matrix computed: min=8.0 max=33.66
2026-08-18 00:00:24.587186: Rate array import [{'start': 0, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1440, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 0, 'end': 1440, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:00:24.593067: - Your estimated bill for today is £1.34
2026-08-18 00:00:24.593121: - Import rates are cheap (8.0p) for the next 5 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:00:24.593145: - The battery is currently at 43% and is charging to 86% for the next 1 and a half hours.
2026-08-18 00:00:24.593164: - For the next 48 hours there will be no solar generation.
2026-08-18 00:00:24.593189: - You will run out of battery in 23 hours.
2026-08-18 00:00:24.593207:
2026-08-18 00:00:24.636552: Plan calculation took 19.84 seconds
2026-08-18 00:00:24.673447: Saved plan to storage
2026-08-18 00:00:24.677944: No high rate period found
2026-08-18 00:00:24.793644: Import threshold used for optimisation was 8.0p
2026-08-18 00:00:24.888631: Low import rate windows [0: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 1: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 2: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 3: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 4: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 5: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 6: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 7: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 8: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 9: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 10: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0]
2026-08-18 00:00:24.896632: Inverter 0: Type SK Sunsynk
2026-08-18 00:00:24.896731: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:00:24.897038: Reserve min: 7%, battery_min: 7%
2026-08-18 00:00:24.897220: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:00:24.897654: Inverter 0 SoC: 6.84kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power -4516W, current battery voltage 51.2V, grid power -5458W, load power 486W, PV Power 0W
2026-08-18 00:00:24.897947: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:00:24.898139: Inverter 0 scheduled charge enable is True
2026-08-18 00:00:24.898245: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}]
2026-08-18 00:00:24.898456: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:00:24.898717: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:00:24.898810: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:00:24.898935: Inverter 0 scheduled discharge enable is False
2026-08-18 00:00:24.899277: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:00:24.899335: Inverter 0 discharge windows currently []
2026-08-18 00:00:24.899404: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:00:24.899535: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:00:24.899580: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:00:25.060645: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:00:25.060789: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 02:30:00+01:00 - current SoC 43%, target 100%
2026-08-18 00:00:25.060927: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:00:25.061100: Adjust idle time, charge 23:30:00-02:30:00 discharge 00:00:00-00:00:00
2026-08-18 00:00:25.061318: Adjust demand (idle) time computed is 02:30:00-23:59:00
2026-08-18 00:00:25.061419: Inverter 0 set new demand (idle) start time to 02:30:00 was 05:00:00
2026-08-18 00:00:28.538941: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0111 val_mae=0.0038 kWh val_bias=+0.0015 kWh (+3.4%) combined=0.0039 kWh ema_combined=0.0025 kWh
2026-08-18 00:00:30.080735: Inverter 0 write_and_poll_value: Wrote 02:30:00 to idle_start_time, successfully now 02:30:00
2026-08-18 00:00:35.091314: Inverter 0 write_and_poll_value: Wrote 02:30:00 to charge_end_time, successfully now 02:30:00
2026-08-18 00:00:35.091462: Inverter 0 Updated start and end charge window to 23:30:00 - 02:30:00 (old 23:30:00 - 05:00:00)
2026-08-18 00:00:35.091507: No export window planned
2026-08-18 00:00:35.091696: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:00:35.091746: Adjust idle time, charge 23:30:00-02:30:00 discharge 00:00:00-00:00:00
2026-08-18 00:00:35.092092: Adjust demand (idle) time computed is 02:30:00-23:59:00
2026-08-18 00:00:35.092286: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:00:35.092404: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:00:35.092568: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:00:35.092815: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.092971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.093190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.093324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.093541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.093696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.093857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.094016: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:00:35.198827: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:00:35.302121: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:00:35.406022: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:00:35.509643: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:00:35.613883: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:00:35.728962: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-18 00:00:35.802241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.807325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.808278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.808673: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.808856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.808923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.809000: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:00:35.809122: Inverter 0 count register writes 0
2026-08-18 00:00:35.857140: Total inverter register writes now 862
2026-08-18 00:00:35.950022: Info: Completed run status Charging
2026-08-18 00:00:35.958068: Info: record_status Charging target 43%-100.0%
2026-08-18 00:00:35.984883: Saved current settings to /config/predbat_config.json
2026-08-18 00:00:36.013436: Starting comparison of tariffs
2026-08-18 00:00:36.026556: Compare tariff current starting SoC: 8.50 kWh
2026-08-18 00:00:36.026640: Compare Tariff: Current Tariff (IOG)
2026-08-18 00:00:36.026810: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:00:36.026901: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:00:36.027056: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:00:36.027631: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:00:36.027774: Predbat mode is set to Control charge & discharge
2026-08-18 00:00:36.497909: Found 21602 load_today datapoints going back 27 days
2026-08-18 00:00:36.498118: Using load_power data to fill gaps in load_today data
2026-08-18 00:00:37.703201: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:00:37.703435: Zero load period starting at 2026-08-17T10:54:00+0100 (786 minutes) for 189 minutes with base value 211.4
2026-08-18 00:00:37.704296: Processing 721 30-minute periods for power integration
2026-08-18 00:00:37.971757: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:00:37.973446: Car charging hold False, threshold 6.0kWh
2026-08-18 00:00:37.973685: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:00:37.994918: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:00:37.995113: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:00:37.996000: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:00:37.996179: Standing charge is set to 46.63p
2026-08-18 00:00:38.280885: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:00:38.281283: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:00:38.281551: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:00:38.282884: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:00:38.285875: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:00:38.292570: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:00:38.303515: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:00:38.395944: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:00:38.412019: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:00:38.413749: High export rate found rates in range 99p to -99p
2026-08-18 00:00:38.445817: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:00:38.446034: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:00:38.474978: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:00:38.553751: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:00:38.598954: Using existing rate import data
2026-08-18 00:00:38.599172: Using existing rate export data
2026-08-18 00:00:38.606045: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:00:38.606420: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:00:38.610673: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:00:38.611281: Rate thresholds (for charge/export) are import 33.25p (0p), export -0.1p (0p)
2026-08-18 00:00:38.620772: Running scenario for tariff: Current Tariff (IOG)
2026-08-18 00:00:38.621281: Recompute is saving previous plan...
2026-08-18 00:00:38.622173: Best charge window [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-18 00:00:38.623140: Best export window [ ]
2026-08-18 00:00:38.623826: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:00:38.626493: Load divergence over 8.0 hours mean 396.96W, min 284.4W, max 482.4W, std dev 45.04W, divergence 5.67%
2026-08-18 00:00:38.643140: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:00:38.643365: LoadML is_calculating True
2026-08-18 00:00:38.643439: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 00:00:38.651408: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:00:38.652056: Optimise levels pass started at 2026-08-18 00:00:38
2026-08-18 00:00:38.652169: Optimise all windows, total charge 24 export 1
2026-08-18 00:00:40.576785: >> Region optimisation pass width 960 gives best_metric 212.33p, best_cost 219.33p, best_cycle 42.47kWh, best_import 27.42kWh
2026-08-18 00:00:40.749297: >> Region optimisation pass width 480 gives best_metric 212.33p, best_cost 219.33p, best_cycle 42.47kWh, best_import 27.42kWh
2026-08-18 00:00:41.218593: >> Region optimisation pass width 240 gives best_metric 212.33p, best_cost 219.33p, best_cycle 42.47kWh, best_import 27.42kWh
2026-08-18 00:00:42.348589: >> Region optimisation pass width 120 gives best_metric 212.33p, best_cost 219.33p, best_cycle 42.47kWh, best_import 27.42kWh
2026-08-18 00:00:42.348842: Calculated end_record as 08-20 00:00:00 based on best_price 8.0p, next_charge_start 08-18 00:00:00, max_windows 24
2026-08-18 00:00:42.348899: Optimise levels pass ended at 2026-08-18 00:00:42, duration 3.7 seconds tried 48 combinations
2026-08-18 00:00:42.348943: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 212.33p, best_keep 0kWh, best_cycle 42.47kWh, best_carbon 0kg, best_import 27.42kWh
2026-08-18 00:00:42.364784: Starting detailed optimisation end_record 08-20 00:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 0]kWh and export limits []kWh
2026-08-18 00:01:01.591724: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0111 val_mae=0.0033 kWh val_bias=+0.0005 kWh (+1.1%) combined=0.0024 kWh ema_combined=0.0025 kWh
2026-08-18 00:01:04.032758: Tweak plan optimisation started metric 212.33p, cost 219.33p
2026-08-18 00:01:06.207989: Tweak optimisation finished metric 212.33p, cost 219.33p, metric_keep 0kWh, cycle 42.47kWh, carbon 0kg, import 27.42kWh, changed 8 window(s)
2026-08-18 00:01:06.230458: Swap charge optimisation started metric 212.33p, cost 219.33p, min_improvement_swap 0.1p
2026-08-18 00:01:08.397810: Swap charge optimisation finished metric 212.33p, cost 219.33p
2026-08-18 00:01:08.653056: Pruned 1 dead plan slot(s) in 23 trial(s), nominal metric 210.44p -> 210.34p, plan now metric 212.85p, cost 218.04p, cycle 42.64kWh, import 27.25kWh
2026-08-18 00:01:08.665748: Raw charge windows [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 7%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 7%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 7%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 7%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 7%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 91%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 91%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 91%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 91%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 91%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 91%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0% ] reserve 1.12
2026-08-18 00:01:08.666217: Unclipped charge windows [ 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91% ] reserve 1.12
2026-08-18 00:01:08.666554: Unfiltered charge windows [ 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91% ] reserve 1.12
2026-08-18 00:01:08.666837: Filtered charge windows [ 18-08 00:00:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 04:00:00 @ 8.0p 7%, 18-08 04:00:00 - 18-08 05:30:00 @ 8.0p 91%, 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 05:00:00 @ 8.0p 91% ] reserve 1.12
2026-08-18 00:01:08.712551: Previous plan best metric is 221.74 (cost 259.18) and new plan best metric is 212.33 (cost 219.33)
2026-08-18 00:01:08.712732: New plan metric is significantly better from previous plan, using new plan
2026-08-18 00:01:08.712765: Plan valid is now true after recompute was False
2026-08-18 00:01:08.756542: Best charging limit SoC's [16.0, 1.12, 14.5, 16.0, 14.5]kWh, export []kWh gives import battery 27.16kWh, house 0.09kWh, export 0.0kWh, metric 218.04p, metric10 234.8p
2026-08-18 00:01:08.756769: Plan calculation took 30.14 seconds
2026-08-18 00:01:08.791388: predict compare end_record 08-19 00:00:00, final soc 5.1kWh, metric 105.75p, metric_keep 0kWh, min_soc 2.77kWh @ 08-18 23:25:00, load 15.2kWh, PV 0.0kWh
2026-08-18 00:01:08.809682: Scenario complete for tariff: Current Tariff (IOG), cost 105.75p, metric 129.87p
2026-08-18 00:01:08.809875: Compare, best tariff: current metric 129.87p
2026-08-18 00:01:09.725723: Compare tariff agile starting SoC: 8.59 kWh
2026-08-18 00:01:09.728072: Compare Tariff: Agile
2026-08-18 00:01:09.728207: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:01:09.728288: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:01:09.728461: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:01:09.743341: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:01:09.743853: Predbat mode is set to Control charge & discharge
2026-08-18 00:01:10.026227: Found 21602 load_today datapoints going back 27 days
2026-08-18 00:01:10.026353: Using load_power data to fill gaps in load_today data
2026-08-18 00:01:11.282517: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:01:11.282849: Zero load period starting at 2026-08-17T10:54:00+0100 (786 minutes) for 189 minutes with base value 211.4
2026-08-18 00:01:11.288488: Processing 721 30-minute periods for power integration
2026-08-18 00:01:11.602964: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:01:11.603316: Car charging hold False, threshold 6.0kWh
2026-08-18 00:01:11.603370: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:01:11.618274: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:01:11.618613: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:01:11.619964: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:01:11.620166: Standing charge is set to 46.63p
2026-08-18 00:01:11.777702: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:01:11.778037: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:01:11.778401: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:01:11.780045: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:01:11.780442: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:01:11.788254: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:01:11.788944: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:01:11.847017: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:01:11.847636: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:01:11.849764: High export rate found rates in range 99p to -99p
2026-08-18 00:01:11.883111: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:01:11.883531: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:01:11.936287: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:01:12.090397: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:01:12.136152: Octopus: Download Octopus rates from https://api.octopus.energy/v1/products/AGILE-24-10-01/electricity-tariffs/E-1R-AGILE-24-10-01-G/standard-unit-rates/
2026-08-18 00:01:13.099336: Using existing rate export data
2026-08-18 00:01:13.190066: Rate min forward looking: now 21.67p at end of forecast 21.67p
2026-08-18 00:01:13.190404: Import rates: min 21.67p, max 47.39p, average 28.67p
2026-08-18 00:01:13.195640: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:01:13.195724: Rate thresholds (for charge/export) are import 46.89p (0p), export -0.1p (0p)
2026-08-18 00:01:13.197240: Compare rate import is different, minute 0 changed from 8.0 to 27.594
2026-08-18 00:01:13.197359: Running scenario for tariff: Agile
2026-08-18 00:01:13.197537: Recompute is saving previous plan...
2026-08-18 00:01:13.202939: Best charge window [ 18-08 00:00:00 - 18-08 00:30:00 @ 27.59p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 26.18p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 24.28p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 25.07p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.4p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 24.36p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 24.17p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 23.61p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 24.39p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 24.23p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 26.4p 100%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.66p 100%, 18-08 06:00:00 - 18-08 06:30:00 @ 28.28p 100%, 18-08 06:30:00 - 18-08 07:00:00 @ 29.98p 100%, 18-08 07:00:00 - 18-08 07:30:00 @ 28.47p 100%, 18-08 07:30:00 - 18-08 08:00:00 @ 29.57p 100%, 18-08 08:00:00 - 18-08 08:30:00 @ 27.36p 100%, 18-08 08:30:00 - 18-08 09:00:00 @ 28.13p 100%, 18-08 09:00:00 - 18-08 09:30:00 @ 25.26p 100%, 18-08 09:30:00 - 18-08 10:00:00 @ 25.07p 100%, 18-08 10:00:00 - 18-08 10:30:00 @ 23.61p 100%, 18-08 10:30:00 - 18-08 11:00:00 @ 22.42p 100%, 18-08 11:00:00 - 18-08 11:30:00 @ 21.93p 100%, 18-08 11:30:00 - 18-08 12:00:00 @ 22.52p 100%, 18-08 12:00:00 - 18-08 12:30:00 @ 22.85p 100%, 18-08 12:30:00 - 18-08 13:00:00 @ 22.18p 100%, 18-08 13:00:00 - 18-08 13:30:00 @ 22.01p 100%, 18-08 13:30:00 - 18-08 14:00:00 @ 21.67p 100%, 18-08 14:00:00 - 18-08 14:30:00 @ 22.55p 100%, 18-08 14:30:00 - 18-08 15:00:00 @ 22.07p 100%, 18-08 15:00:00 - 18-08 15:30:00 @ 22.95p 100%, 18-08 15:30:00 - 18-08 16:00:00 @ 23.68p 100%, 18-08 16:00:00 - 18-08 16:30:00 @ 37.93p 100%, 18-08 16:30:00 - 18-08 17:00:00 @ 38.84p 100%, 18-08 17:00:00 - 18-08 17:30:00 @ 42.48p 100%, 18-08 17:30:00 - 18-08 18:00:00 @ 44.72p 100%, 18-08 18:00:00 - 18-08 18:30:00 @ 46.4p 100%, 18-08 19:00:00 - 18-08 19:30:00 @ 34.02p 100%, 18-08 19:30:00 - 18-08 20:00:00 @ 35.11p 100%, 18-08 20:00:00 - 18-08 20:30:00 @ 34.19p 100%, 18-08 20:30:00 - 18-08 21:00:00 @ 34.72p 100%, 18-08 21:00:00 - 18-08 21:30:00 @ 34.77p 100%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.45p 100%, 18-08 22:00:00 - 18-08 22:30:00 @ 31.71p 100%, 18-08 22:30:00 - 18-08 23:00:00 @ 28.69p 100%, 18-08 23:00:00 - 18-08 23:30:00 @ 28.82p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 28.06p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 27.59p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 26.18p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 24.28p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 25.07p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 25.4p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 24.36p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 24.17p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 23.61p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 24.39p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 24.23p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 26.4p 100%, 19-08 05:30:00 - 19-08 06:00:00 @ 26.66p 100%, 19-08 06:00:00 - 19-08 06:30:00 @ 28.28p 100%, 19-08 06:30:00 - 19-08 07:00:00 @ 29.98p 100%, 19-08 07:00:00 - 19-08 07:30:00 @ 28.47p 100%, 19-08 07:30:00 - 19-08 08:00:00 @ 29.57p 100%, 19-08 08:00:00 - 19-08 08:30:00 @ 27.36p 100%, 19-08 08:30:00 - 19-08 09:00:00 @ 28.13p 100%, 19-08 09:00:00 - 19-08 09:30:00 @ 25.26p 100%, 19-08 09:30:00 - 19-08 10:00:00 @ 25.07p 100%, 19-08 10:00:00 - 19-08 10:30:00 @ 23.61p 100%, 19-08 10:30:00 - 19-08 11:00:00 @ 22.42p 100%, 19-08 11:00:00 - 19-08 11:30:00 @ 21.93p 100%, 19-08 11:30:00 - 19-08 12:00:00 @ 22.52p 100%, 19-08 12:00:00 - 19-08 12:30:00 @ 22.85p 100%, 19-08 12:30:00 - 19-08 13:00:00 @ 22.18p 100%, 19-08 13:00:00 - 19-08 13:30:00 @ 22.01p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 21.67p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 22.55p 100%, 19-08 14:30:00 - 19-08 15:00:00 @ 22.07p 100%, 19-08 15:00:00 - 19-08 15:30:00 @ 22.95p 100%, 19-08 15:30:00 - 19-08 16:00:00 @ 23.68p 100%, 19-08 16:00:00 - 19-08 16:30:00 @ 37.93p 100%, 19-08 16:30:00 - 19-08 17:00:00 @ 38.84p 100%, 19-08 17:00:00 - 19-08 17:30:00 @ 42.48p 100%, 19-08 17:30:00 - 19-08 18:00:00 @ 44.72p 100%, 19-08 18:00:00 - 19-08 18:30:00 @ 46.4p 100%, 19-08 19:00:00 - 19-08 19:30:00 @ 34.02p 100%, 19-08 19:30:00 - 19-08 20:00:00 @ 35.11p 100%, 19-08 20:00:00 - 19-08 20:30:00 @ 34.19p 100%, 19-08 20:30:00 - 19-08 21:00:00 @ 34.72p 100%, 19-08 21:00:00 - 19-08 21:30:00 @ 34.77p 100%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.45p 100%, 19-08 22:00:00 - 19-08 22:30:00 @ 31.71p 100%, 19-08 22:30:00 - 19-08 23:00:00 @ 28.69p 100%, 19-08 23:00:00 - 19-08 23:30:00 @ 28.82p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 28.06p 100% ]
2026-08-18 00:01:13.203039: Best export window [ ]
2026-08-18 00:01:13.204269: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:01:13.208681: Load divergence over 8.0 hours mean 396.96W, min 284.4W, max 482.4W, std dev 45.04W, divergence 5.67%
2026-08-18 00:01:13.267970: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:01:13.268113: LoadML is_calculating True
2026-08-18 00:01:13.268147: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 00:01:13.279962: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:01:13.281724: Optimise levels pass started at 2026-08-18 00:01:13
2026-08-18 00:01:13.281772: Optimise all windows, total charge 94 export 1
2026-08-18 00:01:18.470973: >> Region optimisation pass width 960 gives best_metric 593.45p, best_cost 607.45p, best_cycle 35.19kWh, best_import 26.63kWh
2026-08-18 00:01:21.902057: >> Region optimisation pass width 480 gives best_metric 592.72p, best_cost 607.03p, best_cycle 35.19kWh, best_import 26.63kWh
2026-08-18 00:01:27.651737: >> Region optimisation pass width 240 gives best_metric 590.61p, best_cost 605.16p, best_cycle 35.19kWh, best_import 26.63kWh
2026-08-18 00:01:32.808841: >> Region optimisation pass width 120 gives best_metric 589.03p, best_cost 603.21p, best_cycle 35.19kWh, best_import 26.63kWh
2026-08-18 00:01:32.809782: Calculated end_record as 08-20 00:00:00 based on best_price 25.07p, next_charge_start 08-18 03:30:00, max_windows 94
2026-08-18 00:01:32.809950: Optimise levels pass ended at 2026-08-18 00:01:32, duration 19.5 seconds tried 560 combinations
2026-08-18 00:01:32.810232: Set best_price_charge_level 27.0p, best_price_export_level 0p, best_price_charge 25.07p, best_cost_export 0p, best_metric 589.03p, best_keep 0kWh, best_cycle 35.19kWh, best_carbon 0kg, best_import 26.63kWh
2026-08-18 00:01:32.834165: Starting detailed optimisation end_record 08-20 00:00:00, best_price_charge 25.07p, best_price_export 0p. lowest_price_charge 21.67p with charge limits [0, 0, 0, 0, 0, 0, 0, 5.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.75, 2.75, 2.75, 2.75, 2.75, 0, 0, 16.0, 16.0, 0, 16.0, 0, 1.12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 1.12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.0, 16.0, 0, 16.0, 0, 7.0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]kWh and export limits []kWh
2026-08-18 00:01:51.139372: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0113 val_mae=0.0036 kWh val_bias=+0.0007 kWh (+1.6%) combined=0.0028 kWh ema_combined=0.0026 kWh
2026-08-18 00:02:43.617316: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0126 val_mae=0.0037 kWh val_bias=-0.0015 kWh (-3.3%) combined=0.0034 kWh ema_combined=0.0028 kWh
2026-08-18 00:02:51.796005: Tweak plan optimisation started metric 582.6p, cost 597.73p
2026-08-18 00:02:53.276502: Tweak optimisation finished metric 582.6p, cost 597.73p, metric_keep 0kWh, cycle 31.12kWh, carbon 0kg, import 26.34kWh, changed 8 window(s)
2026-08-18 00:02:53.296523: Swap charge optimisation started metric 582.6p, cost 597.73p, min_improvement_swap 0.1p
2026-08-18 00:03:23.865197: Swap charge optimisation finished metric 582.24p, cost 597.37p
2026-08-18 00:03:23.894891: Swap charge optimisation started metric 582.24p, cost 597.37p, min_improvement_swap 0.1p
2026-08-18 00:03:52.172728: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0122 val_mae=0.0037 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-18 00:03:52.531797: Swap charge optimisation finished metric 582.24p, cost 597.37p
2026-08-18 00:03:53.053107: Pruned 3 dead plan slot(s) in 34 trial(s), nominal metric 576.52p -> 576.49p, plan now metric 582.3p, cost 597.34p, cycle 31.7kWh, import 26.38kWh
2026-08-18 00:03:53.066698: Raw charge windows [ 18-08 00:00:00 - 18-08 00:30:00 @ 27.59p 0%, 18-08 00:30:00 - 18-08 01:00:00 @ 26.18p 0%, 18-08 01:00:00 - 18-08 01:30:00 @ 24.28p 0%, 18-08 01:30:00 - 18-08 02:00:00 @ 25.07p 0%, 18-08 02:00:00 - 18-08 02:30:00 @ 25.4p 0%, 18-08 02:30:00 - 18-08 03:00:00 @ 24.36p 0%, 18-08 03:00:00 - 18-08 03:30:00 @ 24.17p 0%, 18-08 03:30:00 - 18-08 04:00:00 @ 23.61p 7%, 18-08 04:00:00 - 18-08 04:30:00 @ 24.39p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 24.23p 31%, 18-08 05:00:00 - 18-08 05:30:00 @ 26.4p 0%, 18-08 05:30:00 - 18-08 06:00:00 @ 26.66p 0%, 18-08 06:00:00 - 18-08 06:30:00 @ 28.28p 0%, 18-08 06:30:00 - 18-08 07:00:00 @ 29.98p 0%, 18-08 07:00:00 - 18-08 07:30:00 @ 28.47p 0%, 18-08 07:30:00 - 18-08 08:00:00 @ 29.57p 0%, 18-08 08:00:00 - 18-08 08:30:00 @ 27.36p 0%, 18-08 08:30:00 - 18-08 09:00:00 @ 28.13p 0%, 18-08 09:00:00 - 18-08 09:30:00 @ 25.26p 0%, 18-08 09:30:00 - 18-08 10:00:00 @ 25.07p 0%, 18-08 10:00:00 - 18-08 10:30:00 @ 23.61p 7%, 18-08 10:30:00 - 18-08 11:00:00 @ 22.42p 17%, 18-08 11:00:00 - 18-08 11:30:00 @ 21.93p 22%, 18-08 11:30:00 - 18-08 12:00:00 @ 22.52p 7%, 18-08 12:00:00 - 18-08 12:30:00 @ 22.85p 7%, 18-08 12:30:00 - 18-08 13:00:00 @ 22.18p 7%, 18-08 13:00:00 - 18-08 13:30:00 @ 22.01p 100%, 18-08 13:30:00 - 18-08 14:00:00 @ 21.67p 100%, 18-08 14:00:00 - 18-08 14:30:00 @ 22.55p 7%, 18-08 14:30:00 - 18-08 15:00:00 @ 22.07p 53%, 18-08 15:00:00 - 18-08 15:30:00 @ 22.95p 7%, 18-08 15:30:00 - 18-08 16:00:00 @ 23.68p 7%, 18-08 16:00:00 - 18-08 16:30:00 @ 37.93p 0%, 18-08 16:30:00 - 18-08 17:00:00 @ 38.84p 0%, 18-08 17:00:00 - 18-08 17:30:00 @ 42.48p 0%, 18-08 17:30:00 - 18-08 18:00:00 @ 44.72p 0%, 18-08 18:00:00 - 18-08 18:30:00 @ 46.4p 0%, 18-08 19:00:00 - 18-08 19:30:00 @ 34.02p 0%, 18-08 19:30:00 - 18-08 20:00:00 @ 35.11p 0%, 18-08 20:00:00 - 18-08 20:30:00 @ 34.19p 0%, 18-08 20:30:00 - 18-08 21:00:00 @ 34.72p 0%, 18-08 21:00:00 - 18-08 21:30:00 @ 34.77p 0%, 18-08 21:30:00 - 18-08 22:00:00 @ 33.45p 0%, 18-08 22:00:00 - 18-08 22:30:00 @ 31.71p 0%, 18-08 22:30:00 - 18-08 23:00:00 @ 28.69p 0%, 18-08 23:00:00 - 18-08 23:30:00 @ 28.82p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 28.06p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 27.59p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 26.18p 7%, 19-08 01:00:00 - 19-08 01:30:00 @ 24.28p 7%, 19-08 01:30:00 - 19-08 02:00:00 @ 25.07p 7%, 19-08 02:00:00 - 19-08 02:30:00 @ 25.4p 7%, 19-08 02:30:00 - 19-08 03:00:00 @ 24.36p 7%, 19-08 03:00:00 - 19-08 03:30:00 @ 24.17p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 23.61p 16%, 19-08 04:00:00 - 19-08 04:30:00 @ 24.39p 7%, 19-08 04:30:00 - 19-08 05:00:00 @ 24.23p 7%, 19-08 05:00:00 - 19-08 05:30:00 @ 26.4p 7%, 19-08 05:30:00 - 19-08 06:00:00 @ 26.66p 7%, 19-08 06:00:00 - 19-08 06:30:00 @ 28.28p 0%, 19-08 06:30:00 - 19-08 07:00:00 @ 29.98p 0%, 19-08 07:00:00 - 19-08 07:30:00 @ 28.47p 0%, 19-08 07:30:00 - 19-08 08:00:00 @ 29.57p 0%, 19-08 08:00:00 - 19-08 08:30:00 @ 27.36p 0%, 19-08 08:30:00 - 19-08 09:00:00 @ 28.13p 0%, 19-08 09:00:00 - 19-08 09:30:00 @ 25.26p 0%, 19-08 09:30:00 - 19-08 10:00:00 @ 25.07p 0%, 19-08 10:00:00 - 19-08 10:30:00 @ 23.61p 0%, 19-08 10:30:00 - 19-08 11:00:00 @ 22.42p 0%, 19-08 11:00:00 - 19-08 11:30:00 @ 21.93p 0%, 19-08 11:30:00 - 19-08 12:00:00 @ 22.52p 0%, 19-08 12:00:00 - 19-08 12:30:00 @ 22.85p 0%, 19-08 12:30:00 - 19-08 13:00:00 @ 22.18p 0%, 19-08 13:00:00 - 19-08 13:30:00 @ 22.01p 100%, 19-08 13:30:00 - 19-08 14:00:00 @ 21.67p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 22.55p 7%, 19-08 14:30:00 - 19-08 15:00:00 @ 22.07p 47%, 19-08 15:00:00 - 19-08 15:30:00 @ 22.95p 7%, 19-08 15:30:00 - 19-08 16:00:00 @ 23.68p 44%, 19-08 16:00:00 - 19-08 16:30:00 @ 37.93p 0%, 19-08 16:30:00 - 19-08 17:00:00 @ 38.84p 0%, 19-08 17:00:00 - 19-08 17:30:00 @ 42.48p 0%, 19-08 17:30:00 - 19-08 18:00:00 @ 44.72p 0%, 19-08 18:00:00 - 19-08 18:30:00 @ 46.4p 0%, 19-08 19:00:00 - 19-08 19:30:00 @ 34.02p 0%, 19-08 19:30:00 - 19-08 20:00:00 @ 35.11p 0%, 19-08 20:00:00 - 19-08 20:30:00 @ 34.19p 0%, 19-08 20:30:00 - 19-08 21:00:00 @ 34.72p 0%, 19-08 21:00:00 - 19-08 21:30:00 @ 34.77p 0%, 19-08 21:30:00 - 19-08 22:00:00 @ 33.45p 0%, 19-08 22:00:00 - 19-08 22:30:00 @ 31.71p 0%, 19-08 22:30:00 - 19-08 23:00:00 @ 28.69p 0%, 19-08 23:00:00 - 19-08 23:30:00 @ 28.82p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 28.06p 0% ] reserve 1.12
2026-08-18 00:03:53.068341: Unclipped charge windows [ 18-08 03:30:00 - 18-08 04:00:00 @ 23.61p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 24.23p 31%, 18-08 10:00:00 - 18-08 10:30:00 @ 23.61p 7%, 18-08 10:30:00 - 18-08 11:00:00 @ 22.42p 17%, 18-08 11:00:00 - 18-08 11:30:00 @ 21.93p 22%, 18-08 11:30:00 - 18-08 13:00:00 @ 22.44p 7%, 18-08 13:00:00 - 18-08 14:00:00 @ 21.84p 100%, 18-08 14:00:00 - 18-08 14:30:00 @ 22.55p 7%, 18-08 14:30:00 - 18-08 15:00:00 @ 22.07p 53%, 18-08 15:00:00 - 18-08 16:00:00 @ 23.31p 7%, 19-08 00:30:00 - 19-08 03:30:00 @ 24.49p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 23.61p 16%, 19-08 04:00:00 - 19-08 06:00:00 @ 26.01p 7%, 19-08 13:00:00 - 19-08 14:00:00 @ 21.84p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 22.55p 7%, 19-08 14:30:00 - 19-08 15:00:00 @ 22.07p 47%, 19-08 15:00:00 - 19-08 15:30:00 @ 22.95p 7%, 19-08 15:30:00 - 19-08 16:00:00 @ 23.68p 44% ] reserve 1.12
2026-08-18 00:03:53.081014: Unfiltered charge windows [ 18-08 03:30:00 - 18-08 04:00:00 @ 23.61p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 24.23p 31%, 18-08 10:00:00 - 18-08 10:30:00 @ 23.61p 7%, 18-08 10:30:00 - 18-08 11:00:00 @ 22.42p 17%, 18-08 11:00:00 - 18-08 11:30:00 @ 21.93p 22%, 18-08 11:30:00 - 18-08 13:00:00 @ 22.44p 7%, 18-08 13:00:00 - 18-08 14:00:00 @ 21.84p 100%, 18-08 14:00:00 - 18-08 14:30:00 @ 22.55p 7%, 18-08 14:30:00 - 18-08 15:00:00 @ 22.07p 53%, 18-08 15:00:00 - 18-08 16:00:00 @ 23.31p 7%, 19-08 00:30:00 - 19-08 03:30:00 @ 24.49p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 23.61p 16%, 19-08 04:00:00 - 19-08 06:00:00 @ 26.01p 7%, 19-08 13:00:00 - 19-08 14:00:00 @ 21.84p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 22.55p 7%, 19-08 14:30:00 - 19-08 15:00:00 @ 22.07p 47%, 19-08 15:00:00 - 19-08 15:30:00 @ 22.95p 7%, 19-08 15:30:00 - 19-08 16:00:00 @ 23.68p 44% ] reserve 1.12
2026-08-18 00:03:53.082018: Filtered charge windows [ 18-08 03:30:00 - 18-08 04:00:00 @ 23.61p 7%, 18-08 04:30:00 - 18-08 05:00:00 @ 24.23p 31%, 18-08 10:00:00 - 18-08 10:30:00 @ 23.61p 7%, 18-08 10:30:00 - 18-08 11:00:00 @ 22.42p 17%, 18-08 11:00:00 - 18-08 11:30:00 @ 21.93p 22%, 18-08 11:30:00 - 18-08 13:00:00 @ 22.44p 7%, 18-08 13:00:00 - 18-08 14:00:00 @ 21.84p 100%, 18-08 14:00:00 - 18-08 14:30:00 @ 22.55p 7%, 18-08 14:30:00 - 18-08 15:00:00 @ 22.07p 53%, 18-08 15:00:00 - 18-08 16:00:00 @ 23.31p 7%, 19-08 00:30:00 - 19-08 03:30:00 @ 24.49p 7%, 19-08 03:30:00 - 19-08 04:00:00 @ 23.61p 16%, 19-08 04:00:00 - 19-08 06:00:00 @ 26.01p 7%, 19-08 13:00:00 - 19-08 14:00:00 @ 21.84p 100%, 19-08 14:00:00 - 19-08 14:30:00 @ 22.55p 7%, 19-08 14:30:00 - 19-08 15:00:00 @ 22.07p 47%, 19-08 15:00:00 - 19-08 15:30:00 @ 22.95p 7%, 19-08 15:30:00 - 19-08 16:00:00 @ 23.68p 44% ] reserve 1.12
2026-08-18 00:03:53.145825: Previous plan best metric is 691.19 (cost 709.89) and new plan best metric is 582.24 (cost 597.37)
2026-08-18 00:03:53.146067: New plan metric is significantly better from previous plan, using new plan
2026-08-18 00:03:53.146121: Plan valid is now true after recompute was False
2026-08-18 00:03:53.242953: Best charging limit SoC's [1.12, 5.0, 1.12, 2.75, 3.5, 1.12, 16.0, 1.12, 8.5, 1.12, 1.12, 2.5, 1.12, 16.0, 1.12, 7.5, 1.12, 7.0]kWh, export []kWh gives import battery 23.14kWh, house 3.24kWh, export 0.0kWh, metric 597.34p, metric10 636.1p
2026-08-18 00:03:53.243083: Plan calculation took 160.05 seconds
2026-08-18 00:03:53.328731: predict compare end_record 08-19 00:00:00, final soc 2.78kWh, metric 234.87p, metric_keep 0kWh, min_soc 2.78kWh @ 08-18 23:55:00, load 15.2kWh, PV 0.0kWh
2026-08-18 00:03:53.348495: Scenario complete for tariff: Agile, cost 234.87p, metric 345.58p
2026-08-18 00:03:53.348590: Compare, best tariff: current metric 129.87p
2026-08-18 00:04:09.805083: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0103 val_mae=0.0029 kWh val_bias=-0.0008 kWh (-1.8%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-18 00:04:22.806957: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0090 val_mae=0.0032 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 00:04:34.405329: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:04:34.405626: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:04:34.405678: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:04:34.405860: Inverter 0 idle time is 08-18 02:30:00-08-18 23:59:00
2026-08-18 00:04:34.405909: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:04:34.405937: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:04:34.406053: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:04:37.470644: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0103 val_mae=0.0033 kWh val_bias=-0.0005 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-18 00:04:52.150859: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0085 val_mae=0.0027 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-18 00:05:00.602364: --------------- PredBat - update at 2026-08-18 00:05:00+01:00 with clock skew 0 minutes, minutes now 5
2026-08-18 00:05:00.603520: Saved current settings to /config/predbat_config.json
2026-08-18 00:05:00.603721: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 00:05:00.603945: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:05:00.604077: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:05:00.638033: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:05:00.638233: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:05:00.638473: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:05:00.639003: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:05:00.639193: Predbat mode is set to Control charge & discharge
2026-08-18 00:05:00.876475: Found 21602 load_today datapoints going back 27 days
2026-08-18 00:05:00.876708: Using load_power data to fill gaps in load_today data
2026-08-18 00:05:01.999970: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:05:02.000146: Zero load period starting at 2026-08-17T10:54:00+0100 (791 minutes) for 189 minutes with base value 211.4
2026-08-18 00:05:02.000743: Processing 721 30-minute periods for power integration
2026-08-18 00:05:02.153696: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:05:02.154102: Car charging hold False, threshold 6.0kWh
2026-08-18 00:05:02.154162: Current data so far today: load 0.03kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:05:02.172422: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:05:02.172732: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:05:02.173426: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:05:02.173494: Standing charge is set to 46.63p
2026-08-18 00:05:02.376501: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:05:02.376934: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:05:02.382114: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:05:02.383391: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:05:02.383557: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:05:02.412242: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:05:02.418459: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:05:02.521091: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:05:02.521261: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:05:02.522767: High export rate found rates in range 99p to -99p
2026-08-18 00:05:02.549580: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:05:02.550244: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:05:02.564664: Battery level now 6.84kWh, -1hr ago 5.28kWh, at midnight 6.84kWh, battery value change in the last hour 10.72p, change today 0.0p, rate_forward 6.87p
2026-08-18 00:05:02.565126: Last hour: net energy 2.03kWh, import 2.03kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 20.84p, import 20.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:05:02.673572: Today's energy total net 0.0kWh, import 0.0kWh, export 0.0kWh, cost 46.63p, import 0.0p, export 0.0p, carbon 0.0kg
2026-08-18 00:05:02.673717: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:05:02.806217: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:05:02.846116: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:05:02.846460: Today's predicted so far 0.06kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.06kWh forecast extra.
2026-08-18 00:05:02.846606: Today's actual load so far 0.03kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-18 00:05:02.927471: Inverter 0: Type SK Sunsynk
2026-08-18 00:05:02.928176: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:05:02.928585: Reserve min: 7%, battery_min: 7%
2026-08-18 00:05:02.928915: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:05:02.929355: Inverter 0 SoC: 6.84kW 43%, current charge rate 5000W, current discharge rate 5250W, current battery power -4516W, current battery voltage 51.2V, grid power -5633W, load power 636W, PV Power 0W
2026-08-18 00:05:02.929796: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:05:02.931132: Inverter 0 scheduled charge enable is True
2026-08-18 00:05:02.931336: Inverter 0 charge windows currently [{'start': 0, 'end': 150, 'average': 0}, {'start': 1440, 'end': 1590, 'average': 0}, {'start': 2880, 'end': 3030, 'average': 0}]
2026-08-18 00:05:02.931548: Inverter 0 Charge settings: 08-17 23:30:00-08-18 02:30:00, limit 100.0%, power 5.0kW
2026-08-18 00:05:02.931805: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:05:02.931989: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:05:02.932138: Inverter 0 scheduled discharge enable is False
2026-08-18 00:05:02.932402: Inverter 0 idle time is 08-18 02:30:00-08-18 23:59:00
2026-08-18 00:05:02.932535: Inverter 0 discharge windows currently []
2026-08-18 00:05:02.932683: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:05:02.932801: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:05:02.932934: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:05:03.033209: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:05:03.033471: Plan was last updated on 2026-08-18 00:00:00+01:00 and is now 5.0 minutes old
2026-08-18 00:05:03.033901: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-18 00:05:03.034050: Best export window [ ]
2026-08-18 00:05:03.035455: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:05:03.040326: Load divergence over 8.0 hours mean 399.94W, min 263.4W, max 507.0W, std dev 63.52W, divergence 7.94%
2026-08-18 00:05:03.131967: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:05:03.132218: LoadML is_calculating True
2026-08-18 00:05:03.132349: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 00:05:03.184501: predict base end_record 08-20 00:05:00, final soc 1.51kWh, metric 430.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 21:05:00, load 31.62kWh, PV 0.0kWh
2026-08-18 00:05:03.446182: Battery has 45.0 hours left - now at 6.84kWh
2026-08-18 00:05:03.514419: predict base10 end_record 08-20 00:05:00, final soc 1.44kWh, metric 520.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 16:30:00, load 33.13kWh, PV 0.0kWh
2026-08-18 00:05:03.631356: predict best10 end_record 08-20 00:05:00, final soc 4.62kWh, metric 430.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.13kWh, PV 0.0kWh
2026-08-18 00:05:03.792139: predict best end_record 08-20 00:05:00, final soc 5.61kWh, metric 411.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.62kWh, PV 0.0kWh
2026-08-18 00:05:03.792311: Saving plan best values to HA entities
2026-08-18 00:05:04.049186: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:05:04.055312: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:05:04.061519: Best charging limit SoC's [16.0, 14.0, 14.0, 16.0, 16.0]kWh, export []kWh gives import battery 33.59kWh, house 0.4kWh, export 0.0kWh, metric 411.84p, metric10 430.01p
2026-08-18 00:05:04.210228: Marginal costs baseline metric (no standing charge): 318.5723
2026-08-18 00:05:04.747568: Marginal energy costs matrix computed: min=8.0 max=33.66
2026-08-18 00:05:04.836032: Rate array import [{'start': 5, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2885, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 5, 'end': 2885, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:05:04.836429: - Your estimated bill for today is £1.34 and tomorrow is £2.31
2026-08-18 00:05:04.836573: - Import rates are cheap (8.0p) for the next 5 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:05:04.836687: - The battery is currently at 43% and is charging to 86% for the next 1 and a half hours.
2026-08-18 00:05:04.836787: - For the next 48 hours there will be no solar generation.
2026-08-18 00:05:04.836854: - You will run out of battery in 23 hours.
2026-08-18 00:05:04.836918:
2026-08-18 00:05:04.888372: Plan calculation took 1.85 seconds
2026-08-18 00:05:04.891377: No high rate period found
2026-08-18 00:05:04.959393: Import threshold used for optimisation was 26.66p
2026-08-18 00:05:05.080040: Low import rate windows [0: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 1: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 2: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 3: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 4: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 5: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 6: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 7: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 8: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 9: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 10: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 24: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0]
2026-08-18 00:05:05.105499: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:05:05.105668: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 02:30:00+01:00 - current SoC 43%, target 100%
2026-08-18 00:05:05.105946: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:05:05.106238: Adjust idle time, charge 23:30:00-02:30:00 discharge 00:00:00-00:00:00
2026-08-18 00:05:05.106557: Adjust demand (idle) time computed is 02:30:00-23:59:00
2026-08-18 00:05:05.106729: No export window planned
2026-08-18 00:05:05.106978: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:05:05.107046: Adjust idle time, charge 23:30:00-02:30:00 discharge 00:00:00-00:00:00
2026-08-18 00:05:05.107413: Adjust demand (idle) time computed is 02:30:00-23:59:00
2026-08-18 00:05:05.107628: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:05:05.107752: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:05:05.107938: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:05:05.108165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.108293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.108364: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.108535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.108607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.108665: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.108769: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.108968: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.109122: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.109246: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.109362: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.109517: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.109692: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.109875: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.110158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.110393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.110618: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.110863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.111087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.111303: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.111524: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:05:05.111730: Inverter 0 count register writes 0
2026-08-18 00:05:05.151895: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 00:05:05.173546: Total inverter register writes now 862
2026-08-18 00:05:05.245152: Info: Completed run status Charging
2026-08-18 00:05:05.265650: Info: record_status Charging target 43%-100.0%
2026-08-18 00:05:05.278994: Saved current settings to /config/predbat_config.json
2026-08-18 00:05:05.279379: Compare, best tariff: current metric 129.87p
2026-08-18 00:05:13.869131: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0088 val_mae=0.0029 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-18 00:05:13.869335: ML Predictor: Early stopping at epoch 11
2026-08-18 00:05:13.870118: ML Predictor: Restored best weights from epoch with val_mae=0.0036 kWh val_bias=-0.0007 kWh (-1.5%)
2026-08-18 00:05:13.870331: ML Predictor: Training complete, final val_mae=0.0036 kWh val_bias=-0.0007 kWh (-1.5%)
2026-08-18 00:05:14.811687: ML Predictor: AR rollout over holdout: ar_mae=0.0045 kWh ar_bias=-0.0010 kWh (-2.1%) [drift vs teacher-forced: +0.0009 kWh]
2026-08-18 00:05:14.817636: ML Predictor: Curriculum training complete, final val_mae=0.0036 kWh
2026-08-18 00:05:14.828512: ML Component: Training successful, val_mae=0.0036 kWh
2026-08-18 00:05:14.961060: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 00:05:14.966021: ML Component: Generating predictions load data age 59.0 days, 17108 data points
2026-08-18 00:05:15.094688: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0646 max_dow {0: 0.08345277784036266, 1: 0.09654374981913716, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-18 00:05:15.463064: ML Component: Generated 576 predictions (total 29.88 kWh over 48h)
2026-08-18 00:05:15.494636: ML Component: Prediction cycle completed
2026-08-18 00:05:15.595685: ML Component: Saved 17108 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 00:05:49.453801: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:05:49.454080: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:05:49.454123: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:05:49.454284: Inverter 0 idle time is 08-18 02:30:00-08-18 23:59:00
2026-08-18 00:05:49.454323: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:05:49.454343: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:05:49.454363: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:08:03.673394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:08:03.673661: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:08:03.673704: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:08:03.673837: Inverter 0 idle time is 08-18 02:30:00-08-18 23:59:00
2026-08-18 00:08:03.673875: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:08:03.673896: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:08:03.673914: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:10:00.896362: --------------- PredBat - update at 2026-08-18 00:10:00+01:00 with clock skew 0 minutes, minutes now 10
2026-08-18 00:10:00.897346: Saved current settings to /config/predbat_config.json
2026-08-18 00:10:00.897500: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 00:10:00.897624: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:10:00.897742: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:10:00.915216: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:10:00.915315: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:10:00.915442: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:10:00.915822: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:10:00.916123: Predbat mode is set to Control charge & discharge
2026-08-18 00:10:01.105373: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:10:01.105504: Using load_power data to fill gaps in load_today data
2026-08-18 00:10:01.884173: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:10:01.884345: Zero load period starting at 2026-08-17T10:54:00+0100 (796 minutes) for 189 minutes with base value 211.35
2026-08-18 00:10:01.885101: Processing 721 30-minute periods for power integration
2026-08-18 00:10:02.049507: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:10:02.049634: Car charging hold False, threshold 6.0kWh
2026-08-18 00:10:02.049666: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:10:02.063295: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:10:02.063409: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:10:02.064076: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:10:02.064147: Standing charge is set to 46.63p
2026-08-18 00:10:02.154930: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:10:02.155160: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:10:02.155337: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:10:02.156232: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:10:02.156323: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:10:02.160484: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:10:02.160805: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:10:02.196477: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:10:02.196592: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:10:02.197848: High export rate found rates in range 99p to -99p
2026-08-18 00:10:02.217594: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:10:02.217676: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:10:02.227174: Battery level now 6.84kWh, -1hr ago 5.28kWh, at midnight 6.84kWh, battery value change in the last hour 10.72p, change today 0.0p, rate_forward 6.87p
2026-08-18 00:10:02.227458: Last hour: net energy 1.99kWh, import 1.99kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 19.57p, import 19.57p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:10:02.263328: Today's energy total net 0.0kWh, import 0.0kWh, export 0.0kWh, cost 46.63p, import 0.0p, export 0.0p, carbon 0.0kg
2026-08-18 00:10:02.263434: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:10:02.332108: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:10:02.352015: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:10:02.352085: Today's predicted so far 0.12kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.12kWh forecast extra.
2026-08-18 00:10:02.352110: Today's actual load so far 0.03kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-18 00:10:02.400493: Inverter 0: Type SK Sunsynk
2026-08-18 00:10:02.400565: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:10:02.400740: Reserve min: 7%, battery_min: 7%
2026-08-18 00:10:02.400817: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:10:02.401091: Inverter 0 SoC: 7.18kW 45%, current charge rate 5000W, current discharge rate 5250W, current battery power -4521W, current battery voltage 51.2V, grid power -5454W, load power 457W, PV Power 0W
2026-08-18 00:10:02.401247: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:10:02.401338: Inverter 0 scheduled charge enable is True
2026-08-18 00:10:02.401395: Inverter 0 charge windows currently [{'start': 0, 'end': 150, 'average': 0}, {'start': 1440, 'end': 1590, 'average': 0}, {'start': 2880, 'end': 3030, 'average': 0}]
2026-08-18 00:10:02.401509: Inverter 0 Charge settings: 08-17 23:30:00-08-18 02:30:00, limit 100.0%, power 5.0kW
2026-08-18 00:10:02.401643: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:10:02.401677: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:10:02.401714: Inverter 0 scheduled discharge enable is False
2026-08-18 00:10:02.401857: Inverter 0 idle time is 08-18 02:30:00-08-18 23:59:00
2026-08-18 00:10:02.401891: Inverter 0 discharge windows currently []
2026-08-18 00:10:02.401912: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:10:02.401946: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:10:02.401993: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:10:02.457608: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:10:02.457708: Plan was last updated on 2026-08-18 00:00:00+01:00 and is now 10.0 minutes old
2026-08-18 00:10:02.457951: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:30:00 @ 8.0p 88%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 88%, 19-08 00:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100% ]
2026-08-18 00:10:02.458020: Best export window [ ]
2026-08-18 00:10:02.458847: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:10:02.462082: Load divergence over 8.0 hours mean 396.91W, min 262.2W, max 502.8W, std dev 59.55W, divergence 7.5%
2026-08-18 00:10:02.481039: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:10:02.481207: LoadML is_calculating False
2026-08-18 00:10:02.481282: Creating pool of 12 processes to match your CPU count
2026-08-18 00:10:02.584124: predict base end_record 08-20 00:10:00, final soc 1.9kWh, metric 431.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 21:05:00, load 31.6kWh, PV 0.0kWh
2026-08-18 00:10:02.698461: Battery has 44.92 hours left - now at 7.18kWh
2026-08-18 00:10:02.742408: predict base10 end_record 08-20 00:10:00, final soc 1.77kWh, metric 520.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 16:30:00, load 33.1kWh, PV 0.0kWh
2026-08-18 00:10:02.818522: predict best10 end_record 08-20 00:10:00, final soc 4.54kWh, metric 426.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 22:55:00, load 33.1kWh, PV 0.0kWh
2026-08-18 00:10:02.883941: predict best end_record 08-20 00:10:00, final soc 5.53kWh, metric 408.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.6kWh, PV 0.0kWh
2026-08-18 00:10:02.884029: Saving plan best values to HA entities
2026-08-18 00:10:03.025713: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:10:03.030107: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:10:03.034819: Best charging limit SoC's [16.0, 14.0, 14.0, 16.0, 16.0]kWh, export []kWh gives import battery 33.13kWh, house 0.43kWh, export 0.0kWh, metric 408.37p, metric10 426.49p
2026-08-18 00:10:03.097404: Marginal costs baseline metric (no standing charge): 315.1032
2026-08-18 00:10:03.328280: Marginal energy costs matrix computed: min=8.0 max=33.66
2026-08-18 00:10:03.396173: Rate array import [{'start': 10, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2890, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 10, 'end': 2890, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:10:03.396589: - Your estimated bill for today is £1.30 and tomorrow is £2.31
2026-08-18 00:10:03.396637: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:10:03.396671: - The battery is currently at 45% and is charging to 86% for the next 1 and a quarter hours.
2026-08-18 00:10:03.396705: - For the next 48 hours there will be no solar generation.
2026-08-18 00:10:03.396735: - You will run out of battery in 23 hours.
2026-08-18 00:10:03.396769:
2026-08-18 00:10:03.458094: Plan calculation took 1.00 seconds
2026-08-18 00:10:03.460678: No high rate period found
2026-08-18 00:10:03.507410: Import threshold used for optimisation was 26.66p
2026-08-18 00:10:03.553450: Low import rate windows [0: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 1: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 2: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 3: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 4: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 5: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 6: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 7: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 8: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 9: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 10: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 24: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0]
2026-08-18 00:10:03.558780: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:10:03.558915: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 02:30:00+01:00 - current SoC 45%, target 100%
2026-08-18 00:10:03.559101: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:10:03.559288: Adjust idle time, charge 23:30:00-02:30:00 discharge 00:00:00-00:00:00
2026-08-18 00:10:03.559523: Adjust demand (idle) time computed is 02:30:00-23:59:00
2026-08-18 00:10:03.559619: No export window planned
2026-08-18 00:10:03.559743: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:10:03.559777: Adjust idle time, charge 23:30:00-02:30:00 discharge 00:00:00-00:00:00
2026-08-18 00:10:03.559953: Adjust demand (idle) time computed is 02:30:00-23:59:00
2026-08-18 00:10:03.560128: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:10:03.560172: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:10:03.560235: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:10:03.560357: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560638: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560674: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560699: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560728: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560757: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560784: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560841: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.560983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.561009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.561041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.561067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.561097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:03.561118: Inverter 0 count register writes 0
2026-08-18 00:10:03.577732: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 00:10:03.577910: Recompute is saving previous plan...
2026-08-18 00:10:03.578822: Best charge window [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:10:03.578868: Best export window [ ]
2026-08-18 00:10:03.579696: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:10:03.582994: Load divergence over 8.0 hours mean 396.91W, min 262.2W, max 502.8W, std dev 59.55W, divergence 7.5%
2026-08-18 00:10:03.598612: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:10:03.598694: LoadML is_calculating False
2026-08-18 00:10:03.598744: Creating pool of 12 processes to match your CPU count
2026-08-18 00:10:03.670777: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:10:03.671501: Optimise levels pass started at 2026-08-18 00:10:03
2026-08-18 00:10:03.671542: Optimise all windows, total charge 24 export 1
2026-08-18 00:10:03.995781: >> Region optimisation pass width 960 gives best_metric 270.28p, best_cost 276.43p, best_cycle 43.94kWh, best_import 28.72kWh
2026-08-18 00:10:04.133271: >> Region optimisation pass width 480 gives best_metric 270.28p, best_cost 276.43p, best_cycle 43.94kWh, best_import 28.72kWh
2026-08-18 00:10:04.405361: >> Region optimisation pass width 240 gives best_metric 270.28p, best_cost 276.43p, best_cycle 43.94kWh, best_import 28.72kWh
2026-08-18 00:10:04.954547: >> Region optimisation pass width 120 gives best_metric 270.28p, best_cost 276.43p, best_cycle 43.94kWh, best_import 28.72kWh
2026-08-18 00:10:04.954759: Calculated end_record as 08-19 00:30:00 based on best_price 8.0p, next_charge_start 08-18 00:30:00, max_windows 13
2026-08-18 00:10:04.954816: Optimise levels pass ended at 2026-08-18 00:10:04, duration 1.3 seconds tried 70 combinations
2026-08-18 00:10:04.954897: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 270.28p, best_keep 0kWh, best_cycle 43.94kWh, best_carbon 0kg, best_import 28.72kWh
2026-08-18 00:10:04.969406: Starting detailed optimisation end_record 08-19 00:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 00:10:07.070902: Tweak plan optimisation started metric 127.52p, cost 134.33p
2026-08-18 00:10:07.381918: Tweak optimisation finished metric 127.52p, cost 134.33p, metric_keep 0kWh, cycle 20.53kWh, carbon 0kg, import 10.96kWh, changed 8 window(s)
2026-08-18 00:10:07.405519: Swap charge optimisation started metric 127.52p, cost 134.33p, min_improvement_swap 0.1p
2026-08-18 00:10:08.378701: Swap charge optimisation finished metric 127.52p, cost 134.33p
2026-08-18 00:10:08.471671: Raw charge windows [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:10:08.472082: Unclipped charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:10:08.472320: Unfiltered charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:10:08.472518: Filtered charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:10:08.509723: Previous plan best metric is 386.95 (cost 403.69) and new plan best metric is 127.52 (cost 134.33)
2026-08-18 00:10:08.509985: New plan metric is significantly better from previous plan, using new plan
2026-08-18 00:10:08.510025: Plan valid is now true after recompute was False
2026-08-18 00:10:08.545772: predict base end_record 08-19 00:30:00, final soc 4.23kWh, metric 208.51p, metric_keep 0kWh, min_soc 1.9kWh @ 08-18 23:55:00, load 15.56kWh, PV 0.0kWh
2026-08-18 00:10:08.678740: Battery has 48.0 hours left - now at 7.18kWh
2026-08-18 00:10:08.726557: predict base10 end_record 08-19 00:30:00, final soc 3.13kWh, metric 205.71p, metric_keep 0kWh, min_soc 1.19kWh @ 08-18 23:55:00, load 16.3kWh, PV 0.0kWh
2026-08-18 00:10:08.807268: predict best10 end_record 08-19 00:30:00, final soc 1.12kWh, metric 186.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 16.3kWh, PV 0.0kWh
2026-08-18 00:10:08.878568: predict best end_record 08-19 00:30:00, final soc 1.12kWh, metric 180.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:20:00, load 15.56kWh, PV 0.0kWh
2026-08-18 00:10:08.878642: Saving plan best values to HA entities
2026-08-18 00:10:09.026711: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:10:09.030989: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:10:09.037084: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 10.77kWh, house 0.19kWh, export 0.0kWh, metric 180.96p, metric10 186.89p
2026-08-18 00:10:09.107285: Marginal costs baseline metric (no standing charge): 134.3289
2026-08-18 00:10:09.326804: Marginal energy costs matrix computed: min=8.0 max=31.33
2026-08-18 00:10:09.378571: Rate array import [{'start': 10, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1470, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 10, 'end': 1470, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:10:09.378889: - Your estimated bill for today is £1.33 and tomorrow is £2.29
2026-08-18 00:10:09.378926: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:10:09.378944: - The battery is currently at 45% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 00:10:09.378970: - For the next 48 hours there will be no solar generation.
2026-08-18 00:10:09.378986: - You have enough battery to reach the next charge.
2026-08-18 00:10:09.379005:
2026-08-18 00:10:09.421676: Plan calculation took 5.84 seconds
2026-08-18 00:10:09.422063: Inverter 0: Type SK Sunsynk
2026-08-18 00:10:09.422114: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:10:09.422333: Reserve min: 7%, battery_min: 7%
2026-08-18 00:10:09.422409: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:10:09.422749: Inverter 0 SoC: 7.53kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power -4520W, current battery voltage 51.2V, grid power -5425W, load power 429W, PV Power 0W
2026-08-18 00:10:09.422977: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:10:09.423087: Inverter 0 scheduled charge enable is True
2026-08-18 00:10:09.423141: Inverter 0 charge windows currently [{'start': 0, 'end': 150, 'average': 0}, {'start': 1440, 'end': 1590, 'average': 0}, {'start': 2880, 'end': 3030, 'average': 0}]
2026-08-18 00:10:09.423266: Inverter 0 Charge settings: 08-17 23:30:00-08-18 02:30:00, limit 100.0%, power 5.0kW
2026-08-18 00:10:09.423400: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:10:09.423456: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:10:09.423500: Inverter 0 scheduled discharge enable is False
2026-08-18 00:10:09.423646: Inverter 0 idle time is 08-18 02:30:00-08-18 23:59:00
2026-08-18 00:10:09.423681: Inverter 0 discharge windows currently []
2026-08-18 00:10:09.423701: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:10:09.423735: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:10:09.423764: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:10:09.470297: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:10:09.470396: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 47%, target 100%
2026-08-18 00:10:09.470498: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:10:09.470630: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:10:09.470778: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:10:09.470836: Inverter 0 set new demand (idle) start time to 04:00:00 was 02:30:00
2026-08-18 00:10:14.476027: Inverter 0 write_and_poll_value: Wrote 04:00:00 to idle_start_time, successfully now 04:00:00
2026-08-18 00:10:19.482687: Inverter 0 write_and_poll_value: Wrote 04:00:00 to charge_end_time, successfully now 04:00:00
2026-08-18 00:10:19.482816: Inverter 0 Updated start and end charge window to 23:30:00 - 04:00:00 (old 23:30:00 - 02:30:00)
2026-08-18 00:10:19.482878: No export window planned
2026-08-18 00:10:19.483084: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:10:19.483131: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:10:19.483356: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:10:19.483510: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:10:19.483562: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:10:19.483622: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:10:19.483765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:19.483825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:19.483870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:19.483925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:19.483992: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:19.484047: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:19.484077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:19.484140: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:10:19.579530: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:10:19.682548: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:10:19.728268: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:10:19.731881: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:10:19.834728: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:10:19.937474: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-18 00:10:20.040363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:20.040450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:20.040484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:20.040512: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:20.040537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:20.040567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:20.040623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:10:20.040686: Inverter 0 count register writes 0
2026-08-18 00:10:20.061884: Total inverter register writes now 862
2026-08-18 00:10:20.093141: Info: Completed run status Charging
2026-08-18 00:10:20.099326: Info: record_status Charging target 47%-100.0%
2026-08-18 00:10:20.106402: Saved current settings to /config/predbat_config.json
2026-08-18 00:10:20.106716: Compare, best tariff: current metric 129.87p
2026-08-18 00:11:04.223031: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:11:04.223285: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:11:04.223328: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:11:04.223459: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:11:04.223497: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:11:04.223519: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:11:04.223543: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:13:04.441867: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:13:04.442144: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:13:04.442183: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:13:04.442313: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:13:04.442352: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:13:04.442373: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:13:04.442391: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:15:00.644812: --------------- PredBat - update at 2026-08-18 00:15:00+01:00 with clock skew 0 minutes, minutes now 15
2026-08-18 00:15:00.645599: Saved current settings to /config/predbat_config.json
2026-08-18 00:15:00.645735: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 00:15:00.645822: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:15:00.645921: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:15:00.662625: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:15:00.662738: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:15:00.662896: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:15:00.663438: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:15:00.663554: Predbat mode is set to Control charge & discharge
2026-08-18 00:15:00.843970: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:15:00.844144: Using load_power data to fill gaps in load_today data
2026-08-18 00:15:01.685913: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:15:01.686140: Zero load period starting at 2026-08-17T10:54:00+0100 (801 minutes) for 189 minutes with base value 211.3
2026-08-18 00:15:01.686945: Processing 721 30-minute periods for power integration
2026-08-18 00:15:01.873621: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:15:01.873743: Car charging hold False, threshold 6.0kWh
2026-08-18 00:15:01.873782: Current data so far today: load 0.0kWh, import 0.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:15:01.888295: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:15:01.888392: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:15:01.889181: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:15:01.889259: Standing charge is set to 46.63p
2026-08-18 00:15:01.991481: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:15:01.991718: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:15:01.991928: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:15:01.992979: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:15:01.993098: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:15:01.998110: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:15:01.998445: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:15:02.042413: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:15:02.042524: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:15:02.043690: High export rate found rates in range 99p to -99p
2026-08-18 00:15:02.064507: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:15:02.064617: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:15:02.075118: Battery level now 7.18kWh, -1hr ago 5.12kWh, at midnight 6.84kWh, battery value change in the last hour 14.13p, change today 2.31p, rate_forward 6.87p
2026-08-18 00:15:02.075459: Last hour: net energy 1.95kWh, import 1.95kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 18.3p, import 18.3p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:15:02.116520: Today's energy total net 0.0kWh, import 0.0kWh, export 0.0kWh, cost 46.63p, import 0.0p, export 0.0p, carbon 0.0kg
2026-08-18 00:15:02.116628: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:15:02.193280: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:15:02.218555: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:15:02.218639: Today's predicted so far 0.19kWh with 0.0kWh car/iBoost excluded, 0kWh import ignored, and 0.19kWh forecast extra.
2026-08-18 00:15:02.218670: Today's actual load so far 0.03kWh with 0.0kWh car/iBoost excluded, and 0kWh import ignored.
2026-08-18 00:15:02.252725: Inverter 0: Type SK Sunsynk
2026-08-18 00:15:02.252804: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:15:02.252974: Reserve min: 7%, battery_min: 7%
2026-08-18 00:15:02.253057: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:15:02.253309: Inverter 0 SoC: 7.53kW 47%, current charge rate 5000W, current discharge rate 5250W, current battery power -4521W, current battery voltage 51.2V, grid power -5441W, load power 444W, PV Power 0W
2026-08-18 00:15:02.253458: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:15:02.253541: Inverter 0 scheduled charge enable is True
2026-08-18 00:15:02.253589: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:15:02.253675: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:15:02.253792: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:15:02.253827: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:15:02.253862: Inverter 0 scheduled discharge enable is False
2026-08-18 00:15:02.253973: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:15:02.254008: Inverter 0 discharge windows currently []
2026-08-18 00:15:02.254046: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:15:02.254066: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:15:02.254083: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:15:02.313273: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:15:02.313370: Plan was last updated on 2026-08-18 00:10:00+01:00 and is now 5.0 minutes old
2026-08-18 00:15:02.313641: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:15:02.313689: Best export window [ ]
2026-08-18 00:15:02.314528: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:15:02.317786: Load divergence over 8.0 hours mean 393.84W, min 274.2W, max 502.2W, std dev 56.36W, divergence 7.15%
2026-08-18 00:15:02.336043: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:15:02.336146: LoadML is_calculating False
2026-08-18 00:15:02.336205: Creating pool of 12 processes to match your CPU count
2026-08-18 00:15:02.452682: predict base end_record 08-19 00:35:00, final soc 5.61kWh, metric 216.11p, metric_keep 0kWh, min_soc 2.89kWh @ 08-18 23:55:00, load 15.55kWh, PV 0.0kWh
2026-08-18 00:15:02.563891: Battery has 48.0 hours left - now at 7.53kWh
2026-08-18 00:15:02.600952: predict base10 end_record 08-19 00:35:00, final soc 4.53kWh, metric 213.5p, metric_keep 0kWh, min_soc 2.27kWh @ 08-18 23:55:00, load 16.29kWh, PV 0.0kWh
2026-08-18 00:15:02.667628: predict best10 end_record 08-19 00:35:00, final soc 1.44kWh, metric 186.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.29kWh, PV 0.0kWh
2026-08-18 00:15:02.740815: predict best end_record 08-19 00:35:00, final soc 1.51kWh, metric 181.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 15.55kWh, PV 0.0kWh
2026-08-18 00:15:02.740902: Saving plan best values to HA entities
2026-08-18 00:15:02.888251: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:15:02.893491: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:15:02.898653: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 10.8kWh, house 0.19kWh, export 0.0kWh, metric 181.2p, metric10 186.57p
2026-08-18 00:15:02.968512: Marginal costs baseline metric (no standing charge): 134.563
2026-08-18 00:15:03.225263: Marginal energy costs matrix computed: min=8.0 max=31.34
2026-08-18 00:15:03.287365: Rate array import [{'start': 15, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1475, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 15, 'end': 1475, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:15:03.287753: - Your estimated bill for today is £1.29 and tomorrow is £2.29
2026-08-18 00:15:03.287799: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:15:03.287821: - The battery is currently at 47% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 00:15:03.287841: - For the next 48 hours there will be no solar generation.
2026-08-18 00:15:03.287865: - You will run out of battery in 24 hours.
2026-08-18 00:15:03.287882:
2026-08-18 00:15:03.334991: Plan calculation took 1.02 seconds
2026-08-18 00:15:03.338176: No high rate period found
2026-08-18 00:15:03.384976: Import threshold used for optimisation was 8.0p
2026-08-18 00:15:03.459813: Low import rate windows [0: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 1: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 2: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 3: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 4: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 5: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 6: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 7: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 8: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 9: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 10: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 24: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0]
2026-08-18 00:15:03.466385: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:15:03.466502: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 47%, target 100%
2026-08-18 00:15:03.466665: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:15:03.466853: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:15:03.467116: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:15:03.467235: No export window planned
2026-08-18 00:15:03.467369: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:15:03.467405: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:15:03.467541: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:15:03.467656: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:15:03.467696: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:15:03.467765: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:15:03.467987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468105: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468141: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468309: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468376: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468456: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468498: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468527: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468614: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468670: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468826: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.468991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:15:03.469015: Inverter 0 count register writes 0
2026-08-18 00:15:03.485676: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 00:15:03.491048: Total inverter register writes now 862
2026-08-18 00:15:03.522513: Info: Completed run status Charging
2026-08-18 00:15:03.528519: Info: record_status Charging target 47%-100.0%
2026-08-18 00:15:03.535261: Saved current settings to /config/predbat_config.json
2026-08-18 00:15:03.535606: Compare, best tariff: current metric 129.87p
2026-08-18 00:15:33.639409: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:15:33.639679: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:15:33.639726: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:15:33.639860: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:15:33.639930: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:15:33.639986: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:15:33.640015: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:16:16.207535: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 00:16:17.259060: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:16:17.259241: Zero load period starting at 2026-08-17T10:54:00+0100 (801 minutes) for 189 minutes with base value 406.4
2026-08-18 00:16:17.260089: Processing 1345 30-minute periods for power integration
2026-08-18 00:16:17.363007: ML Component: Car charging hold False, car energy reported load False
2026-08-18 00:16:17.463744: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:16:17.560729: ML Temperature data points: 48946
2026-08-18 00:16:17.841906: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 00:16:17.885282: ML Component: Data fetch completed, load data age 59.0 days, 17115 data points
2026-08-18 00:16:17.885388: ML Component: No training needed, model age is 0.16 hours
2026-08-18 00:16:17.885445: ML Component: Generating predictions load data age 59.0 days, 17115 data points
2026-08-18 00:16:18.037251: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0222 max_dow {0: 0.08633055561814043, 1: 0.09851874950341881, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 00:16:20.523057: ML Component: Generated 576 predictions (total 29.50 kWh over 48h)
2026-08-18 00:16:20.562100: ML Component: Prediction cycle completed
2026-08-18 00:16:20.683931: ML Component: Saved 17115 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 00:17:33.859859: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:17:33.860212: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:17:33.860262: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:17:33.860397: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:17:33.860455: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:17:33.860507: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:17:33.860529: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:19:34.077443: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:19:34.077699: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:19:34.077742: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:19:34.077872: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:19:34.077920: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:19:34.077954: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:19:34.077987: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:20:00.181662: --------------- PredBat - update at 2026-08-18 00:20:00+01:00 with clock skew 0 minutes, minutes now 20
2026-08-18 00:20:00.182969: Saved current settings to /config/predbat_config.json
2026-08-18 00:20:00.183117: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 00:20:00.183186: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:20:00.183257: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:20:00.212520: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:20:00.212637: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:20:00.212804: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:20:00.213308: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:20:00.213460: Predbat mode is set to Control charge & discharge
2026-08-18 00:20:00.386872: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:20:00.386984: Using load_power data to fill gaps in load_today data
2026-08-18 00:20:01.074651: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:20:01.074854: Zero load period starting at 2026-08-17T10:54:00+0100 (806 minutes) for 189 minutes with base value 211.275
2026-08-18 00:20:01.075669: Processing 721 30-minute periods for power integration
2026-08-18 00:20:01.260209: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:20:01.260349: Car charging hold False, threshold 6.0kWh
2026-08-18 00:20:01.260401: Current data so far today: load 0.15kWh, import 0.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:20:01.275561: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:20:01.275669: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:20:01.276426: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:20:01.276503: Standing charge is set to 46.63p
2026-08-18 00:20:01.370144: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:20:01.370619: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:20:01.370782: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:20:01.371711: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:20:01.371798: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:20:01.376220: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:20:01.376472: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:20:01.412380: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:20:01.412576: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:20:01.413833: High export rate found rates in range 99p to -99p
2026-08-18 00:20:01.431412: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:20:01.431516: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:20:01.441842: Battery level now 7.53kWh, -1hr ago 5.12kWh, at midnight 6.84kWh, battery value change in the last hour 16.55p, change today 4.73p, rate_forward 6.87p
2026-08-18 00:20:01.442146: Last hour: net energy 2.81kWh, import 2.81kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 24.24p, import 24.24p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:20:01.476868: Today's energy total net 0.9kWh, import 0.9kWh, export 0.0kWh, cost 53.83p, import 7.2p, export 0.0p, carbon 0.0kg
2026-08-18 00:20:01.476961: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:20:01.537023: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:20:01.559125: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:20:01.559207: Today's predicted so far 0.25kWh with 0.0kWh car/iBoost excluded, 0.84kWh import ignored, and 0.25kWh forecast extra.
2026-08-18 00:20:01.559233: Today's actual load so far 0.12kWh with 0.0kWh car/iBoost excluded, and 0.84kWh import ignored.
2026-08-18 00:20:01.594599: Inverter 0: Type SK Sunsynk
2026-08-18 00:20:01.594690: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:20:01.594917: Reserve min: 7%, battery_min: 7%
2026-08-18 00:20:01.595024: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:20:01.595366: Inverter 0 SoC: 7.88kW 49%, current charge rate 5000W, current discharge rate 5250W, current battery power -4524W, current battery voltage 51.2V, grid power -5379W, load power 381W, PV Power 0W
2026-08-18 00:20:01.595568: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:20:01.595690: Inverter 0 scheduled charge enable is True
2026-08-18 00:20:01.595760: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:20:01.595895: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:20:01.596125: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:20:01.596178: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:20:01.596241: Inverter 0 scheduled discharge enable is False
2026-08-18 00:20:01.596414: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:20:01.596458: Inverter 0 discharge windows currently []
2026-08-18 00:20:01.596504: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:20:01.596536: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:20:01.596555: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:20:01.658097: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:20:01.658198: Plan was last updated on 2026-08-18 00:10:00+01:00 and is now 10.0 minutes old
2026-08-18 00:20:01.658484: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:20:01.658537: Best export window [ ]
2026-08-18 00:20:01.659328: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:20:01.662588: Load divergence over 8.0 hours mean 395.38W, min 297.6W, max 482.4W, std dev 40.94W, divergence 5.18%
2026-08-18 00:20:01.681587: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:20:01.681716: LoadML is_calculating False
2026-08-18 00:20:01.681776: Creating pool of 12 processes to match your CPU count
2026-08-18 00:20:01.811194: predict base end_record 08-19 00:40:00, final soc 5.97kWh, metric 223.43p, metric_keep 0kWh, min_soc 2.87kWh @ 08-18 23:55:00, load 15.69kWh, PV 0.0kWh
2026-08-18 00:20:01.940346: Battery has 48.0 hours left - now at 7.88kWh
2026-08-18 00:20:01.983594: predict base10 end_record 08-19 00:40:00, final soc 4.83kWh, metric 220.25p, metric_keep 0kWh, min_soc 2.24kWh @ 08-18 23:55:00, load 16.44kWh, PV 0.0kWh
2026-08-18 00:20:02.054120: predict best10 end_record 08-19 00:40:00, final soc 1.77kWh, metric 193.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 16.44kWh, PV 0.0kWh
2026-08-18 00:20:02.143982: predict best end_record 08-19 00:40:00, final soc 1.9kWh, metric 188.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 15.69kWh, PV 0.0kWh
2026-08-18 00:20:02.144095: Saving plan best values to HA entities
2026-08-18 00:20:02.324907: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:20:02.330021: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:20:02.336955: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 10.84kWh, house 0.19kWh, export 0.0kWh, metric 188.69p, metric10 193.51p
2026-08-18 00:20:02.411392: Marginal costs baseline metric (no standing charge): 142.057
2026-08-18 00:20:02.644164: Marginal energy costs matrix computed: min=8.0 max=31.32
2026-08-18 00:20:02.700159: Rate array import [{'start': 20, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1480, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 20, 'end': 1480, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:20:02.700581: - Your estimated bill for today is £1.32 and tomorrow is £2.30
2026-08-18 00:20:02.700624: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:20:02.700647: - The battery is currently at 49% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 00:20:02.700682: - For the next 48 hours there will be no solar generation.
2026-08-18 00:20:02.700705: - You will run out of battery in 23 hours.
2026-08-18 00:20:02.700720:
2026-08-18 00:20:02.743369: Plan calculation took 1.09 seconds
2026-08-18 00:20:02.747188: No high rate period found
2026-08-18 00:20:02.789988: Import threshold used for optimisation was 8.0p
2026-08-18 00:20:02.833277: Low import rate windows [0: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 1: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 2: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 3: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 4: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 5: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 6: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 7: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 8: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 9: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 10: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 24: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0]
2026-08-18 00:20:02.837822: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:20:02.837924: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 49%, target 100%
2026-08-18 00:20:02.838148: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:20:02.838379: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:20:02.838586: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:20:02.838666: No export window planned
2026-08-18 00:20:02.838774: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:20:02.838803: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:20:02.838912: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:20:02.839008: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:20:02.839059: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:20:02.839121: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:20:02.839213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839247: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839382: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839422: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839445: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839466: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839493: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839516: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839538: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839570: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839731: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:02.839980: Inverter 0 count register writes 0
2026-08-18 00:20:02.856171: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 00:20:02.856399: Recompute is saving previous plan...
2026-08-18 00:20:02.857719: Best charge window [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:20:02.857807: Best export window [ ]
2026-08-18 00:20:02.858847: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:20:02.863013: Load divergence over 8.0 hours mean 395.38W, min 297.6W, max 482.4W, std dev 40.94W, divergence 5.18%
2026-08-18 00:20:02.882105: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:20:02.882223: LoadML is_calculating False
2026-08-18 00:20:02.882288: Creating pool of 12 processes to match your CPU count
2026-08-18 00:20:02.967850: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:20:02.968669: Optimise levels pass started at 2026-08-18 00:20:02
2026-08-18 00:20:02.968740: Optimise all windows, total charge 24 export 1
2026-08-18 00:20:03.281958: >> Region optimisation pass width 960 gives best_metric 271.45p, best_cost 277.25p, best_cycle 43.26kWh, best_import 27.93kWh
2026-08-18 00:20:03.429824: >> Region optimisation pass width 480 gives best_metric 271.45p, best_cost 277.25p, best_cycle 43.26kWh, best_import 27.93kWh
2026-08-18 00:20:03.665806: >> Region optimisation pass width 240 gives best_metric 271.45p, best_cost 277.25p, best_cycle 43.26kWh, best_import 27.93kWh
2026-08-18 00:20:04.217077: >> Region optimisation pass width 120 gives best_metric 271.45p, best_cost 277.25p, best_cycle 43.26kWh, best_import 27.93kWh
2026-08-18 00:20:04.217370: Calculated end_record as 08-19 00:30:00 based on best_price 8.0p, next_charge_start 08-18 00:30:00, max_windows 13
2026-08-18 00:20:04.217535: Optimise levels pass ended at 2026-08-18 00:20:04, duration 1.2 seconds tried 70 combinations
2026-08-18 00:20:04.217657: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 271.45p, best_keep 0kWh, best_cycle 43.26kWh, best_carbon 0kg, best_import 27.93kWh
2026-08-18 00:20:04.239090: Starting detailed optimisation end_record 08-19 00:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 00:20:06.251315: Tweak plan optimisation started metric 127.18p, cost 134.0p
2026-08-18 00:20:06.506453: Tweak optimisation finished metric 127.18p, cost 134.0p, metric_keep 0kWh, cycle 19.8kWh, carbon 0kg, import 10.02kWh, changed 8 window(s)
2026-08-18 00:20:06.526467: Swap charge optimisation started metric 127.18p, cost 134.0p, min_improvement_swap 0.1p
2026-08-18 00:20:07.285163: Swap charge optimisation finished metric 127.18p, cost 134.0p
2026-08-18 00:20:07.359563: Raw charge windows [ 18-08 00:00:00 - 18-08 00:30:00 @ 8.0p 100%, 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:20:07.359869: Unclipped charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:20:07.360198: Unfiltered charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:20:07.360411: Filtered charge windows [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:20:07.390868: Previous plan best metric is 127.18 (cost 134.0) and new plan best metric is 127.18 (cost 134.0)
2026-08-18 00:20:07.391039: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 00:20:07.391205: Plan valid is now true after recompute was False
2026-08-18 00:20:07.416857: predict base end_record 08-19 00:30:00, final soc 5.2kWh, metric 215.37p, metric_keep 0kWh, min_soc 2.87kWh @ 08-18 23:55:00, load 15.52kWh, PV 0.0kWh
2026-08-18 00:20:07.526743: Battery has 48.0 hours left - now at 7.88kWh
2026-08-18 00:20:07.565972: predict base10 end_record 08-19 00:30:00, final soc 4.18kWh, metric 213.23p, metric_keep 0kWh, min_soc 2.24kWh @ 08-18 23:55:00, load 16.25kWh, PV 0.0kWh
2026-08-18 00:20:07.638455: predict best10 end_record 08-19 00:30:00, final soc 1.12kWh, metric 186.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 16.25kWh, PV 0.0kWh
2026-08-18 00:20:07.711401: predict best end_record 08-19 00:30:00, final soc 1.12kWh, metric 180.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 15.52kWh, PV 0.0kWh
2026-08-18 00:20:07.711511: Saving plan best values to HA entities
2026-08-18 00:20:07.849627: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:20:07.854165: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:20:07.859829: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 9.83kWh, house 0.19kWh, export 0.0kWh, metric 180.63p, metric10 186.49p
2026-08-18 00:20:07.937729: Marginal costs baseline metric (no standing charge): 133.9952
2026-08-18 00:20:08.184458: Marginal energy costs matrix computed: min=8.0 max=31.32
2026-08-18 00:20:08.237760: Rate array import [{'start': 20, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1470, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 20, 'end': 1470, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:20:08.238080: - Your estimated bill for today is £1.32 and tomorrow is £2.30
2026-08-18 00:20:08.238143: - Import rates are cheap (8.0p) for the next 5 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:20:08.238166: - The battery is currently at 49% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 00:20:08.238181: - For the next 48 hours there will be no solar generation.
2026-08-18 00:20:08.238196: - You will run out of battery in 23 hours.
2026-08-18 00:20:08.238209:
2026-08-18 00:20:08.280333: Plan calculation took 5.42 seconds
2026-08-18 00:20:08.280638: Inverter 0: Type SK Sunsynk
2026-08-18 00:20:08.280682: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:20:08.280888: Reserve min: 7%, battery_min: 7%
2026-08-18 00:20:08.280964: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:20:08.281414: Inverter 0 SoC: 8.24kW 52%, current charge rate 5000W, current discharge rate 5250W, current battery power -4525W, current battery voltage 51.2V, grid power -5384W, load power 388W, PV Power 0W
2026-08-18 00:20:08.281663: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:20:08.281766: Inverter 0 scheduled charge enable is True
2026-08-18 00:20:08.281811: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:20:08.281911: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:20:08.282031: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:20:08.282146: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:20:08.282207: Inverter 0 scheduled discharge enable is False
2026-08-18 00:20:08.282430: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:20:08.282484: Inverter 0 discharge windows currently []
2026-08-18 00:20:08.282514: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:20:08.282545: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:20:08.282574: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:20:08.330625: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:20:08.330745: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 52%, target 100%
2026-08-18 00:20:08.330864: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:20:08.331059: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:20:08.331246: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:20:08.331335: No export window planned
2026-08-18 00:20:08.331447: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:20:08.331483: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:20:08.331618: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:20:08.331724: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:20:08.331764: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:20:08.331817: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:20:08.331956: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332073: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332144: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332208: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332272: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332363: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332426: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332485: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332548: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332602: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332638: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332668: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332734: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332787: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332860: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332884: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:20:08.332920: Inverter 0 count register writes 0
2026-08-18 00:20:08.352494: Total inverter register writes now 862
2026-08-18 00:20:08.384577: Info: Completed run status Charging
2026-08-18 00:20:08.391135: Info: record_status Charging target 52%-100.0%
2026-08-18 00:20:08.398230: Saved current settings to /config/predbat_config.json
2026-08-18 00:20:08.398531: Compare, best tariff: current metric 129.87p
2026-08-18 00:20:49.514010: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:20:49.514442: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:20:49.514512: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:20:49.514657: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:20:49.514711: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:20:49.514736: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:20:49.514766: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:23:03.731211: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:23:03.731511: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:23:03.731555: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:23:03.731706: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:23:03.731761: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:23:03.731789: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:23:03.731807: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:25:00.935773: --------------- PredBat - update at 2026-08-18 00:25:00+01:00 with clock skew 0 minutes, minutes now 25
2026-08-18 00:25:00.936620: Saved current settings to /config/predbat_config.json
2026-08-18 00:25:00.936782: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 00:25:00.936856: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:25:00.936988: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:25:00.953705: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:25:00.953831: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:25:00.954008: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:25:00.954578: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:25:00.954697: Predbat mode is set to Control charge & discharge
2026-08-18 00:25:01.122649: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:25:01.122792: Using load_power data to fill gaps in load_today data
2026-08-18 00:25:01.852588: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:25:01.853064: Zero load period starting at 2026-08-17T10:54:00+0100 (811 minutes) for 189 minutes with base value 211.25
2026-08-18 00:25:01.853692: Processing 721 30-minute periods for power integration
2026-08-18 00:25:02.020103: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:25:02.020211: Car charging hold False, threshold 6.0kWh
2026-08-18 00:25:02.020248: Current data so far today: load 0.2kWh, import 0.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:25:02.032672: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:25:02.032746: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:25:02.033382: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:25:02.033443: Standing charge is set to 46.63p
2026-08-18 00:25:02.125838: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:25:02.126089: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:25:02.126268: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:25:02.127448: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:25:02.127590: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:25:02.132768: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:25:02.133205: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:25:02.178351: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:25:02.178465: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:25:02.179612: High export rate found rates in range 99p to -99p
2026-08-18 00:25:02.197186: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:25:02.197444: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:25:02.208255: Battery level now 7.88kWh, -1hr ago 5.12kWh, at midnight 6.84kWh, battery value change in the last hour 18.97p, change today 7.15p, rate_forward 6.87p
2026-08-18 00:25:02.208612: Last hour: net energy 2.77kWh, import 2.77kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 22.97p, import 22.97p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:25:02.250313: Today's energy total net 0.9kWh, import 0.9kWh, export 0.0kWh, cost 53.83p, import 7.2p, export 0.0p, carbon 0.0kg
2026-08-18 00:25:02.250423: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:25:02.309716: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:25:02.330197: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:25:02.330275: Today's predicted so far 0.32kWh with 0.0kWh car/iBoost excluded, 0.83kWh import ignored, and 0.32kWh forecast extra.
2026-08-18 00:25:02.330301: Today's actual load so far 0.17kWh with 0.0kWh car/iBoost excluded, and 0.83kWh import ignored.
2026-08-18 00:25:02.360117: Inverter 0: Type SK Sunsynk
2026-08-18 00:25:02.360197: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:25:02.360365: Reserve min: 7%, battery_min: 7%
2026-08-18 00:25:02.360433: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:25:02.360753: Inverter 0 SoC: 8.6kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power -4525W, current battery voltage 51.2V, grid power -5400W, load power 404W, PV Power 0W
2026-08-18 00:25:02.360927: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:25:02.361017: Inverter 0 scheduled charge enable is True
2026-08-18 00:25:02.361078: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:25:02.361174: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:25:02.361344: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:25:02.361387: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:25:02.361425: Inverter 0 scheduled discharge enable is False
2026-08-18 00:25:02.361545: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:25:02.361581: Inverter 0 discharge windows currently []
2026-08-18 00:25:02.361604: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:25:02.361625: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:25:02.361643: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:25:02.414874: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:25:02.414993: Plan was last updated on 2026-08-18 00:20:00+01:00 and is now 5.0 minutes old
2026-08-18 00:25:02.415362: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:25:02.415421: Best export window [ ]
2026-08-18 00:25:02.416490: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:25:02.419566: Load divergence over 8.0 hours mean 396.77W, min 300.0W, max 514.8W, std dev 39.45W, divergence 4.97%
2026-08-18 00:25:02.438518: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:25:02.438616: LoadML is_calculating False
2026-08-18 00:25:02.438673: Creating pool of 12 processes to match your CPU count
2026-08-18 00:25:02.549112: predict base end_record 08-19 00:35:00, final soc 5.55kWh, metric 212.32p, metric_keep 0kWh, min_soc 2.83kWh @ 08-18 23:55:00, load 15.58kWh, PV 0.0kWh
2026-08-18 00:25:02.659288: Battery has 48.0 hours left - now at 8.6kWh
2026-08-18 00:25:02.693601: predict base10 end_record 08-19 00:35:00, final soc 4.47kWh, metric 209.62p, metric_keep 0kWh, min_soc 2.21kWh @ 08-18 23:55:00, load 16.31kWh, PV 0.0kWh
2026-08-18 00:25:02.767826: predict best10 end_record 08-19 00:35:00, final soc 1.44kWh, metric 183.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.31kWh, PV 0.0kWh
2026-08-18 00:25:02.833450: predict best end_record 08-19 00:35:00, final soc 1.51kWh, metric 177.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:10:00, load 15.58kWh, PV 0.0kWh
2026-08-18 00:25:02.833532: Saving plan best values to HA entities
2026-08-18 00:25:02.985355: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:25:02.990275: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:25:02.994580: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 9.47kWh, house 0.2kWh, export 0.0kWh, metric 177.83p, metric10 183.14p
2026-08-18 00:25:03.059962: Marginal costs baseline metric (no standing charge): 131.2005
2026-08-18 00:25:03.329115: Marginal energy costs matrix computed: min=8.0 max=31.39
2026-08-18 00:25:03.386024: Rate array import [{'start': 25, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1475, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 25, 'end': 1475, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:25:03.386364: - Your estimated bill for today is £1.26 and tomorrow is £2.30
2026-08-18 00:25:03.386399: - Import rates are cheap (8.0p) for the next 5 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:25:03.386417: - The battery is currently at 54% and is charging to 84% for the next 1 hour.
2026-08-18 00:25:03.386450: - For the next 48 hours there will be no solar generation.
2026-08-18 00:25:03.386466: - You will run out of battery in 23 hours.
2026-08-18 00:25:03.386480:
2026-08-18 00:25:03.427543: Plan calculation took 1.01 seconds
2026-08-18 00:25:03.430470: No high rate period found
2026-08-18 00:25:03.470987: Import threshold used for optimisation was 8.0p
2026-08-18 00:25:03.518987: Low import rate windows [0: 08-18 00:00:00 - 08-18 00:30:00 @ 8.0, 1: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 2: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 3: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 4: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 5: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 6: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 7: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 8: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 9: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 10: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 11: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 12: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 13: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 14: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 15: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 16: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 17: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 18: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 19: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 20: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 21: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 22: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 23: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 24: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0]
2026-08-18 00:25:03.524476: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:25:03.524560: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 54%, target 100%
2026-08-18 00:25:03.524695: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:25:03.524876: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:25:03.525081: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:25:03.525161: No export window planned
2026-08-18 00:25:03.525279: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:25:03.525325: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:25:03.525448: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:25:03.525545: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:25:03.525579: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:25:03.525626: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:25:03.525717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525751: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525796: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525855: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525886: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525913: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525958: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.525984: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526007: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526029: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526068: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526149: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526232: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:25:03.526294: Inverter 0 count register writes 0
2026-08-18 00:25:03.539490: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 00:25:03.545111: Total inverter register writes now 862
2026-08-18 00:25:03.574306: Info: Completed run status Charging
2026-08-18 00:25:03.579868: Info: record_status Charging target 54%-100.0%
2026-08-18 00:25:03.586276: Saved current settings to /config/predbat_config.json
2026-08-18 00:25:03.586597: Compare, best tariff: current metric 129.87p
2026-08-18 00:25:33.681918: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:25:33.682197: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:25:33.682246: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:25:33.682394: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:25:33.682436: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:25:33.682458: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:25:33.682478: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:27:33.887636: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:27:33.887999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:27:33.888120: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:27:33.888300: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:27:33.888338: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:27:33.888378: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:27:33.888396: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:29:34.098852: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:29:34.099185: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:29:34.099281: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:29:34.099447: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:29:34.099516: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:29:34.099549: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:29:34.099582: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:30:00.194947: --------------- PredBat - update at 2026-08-18 00:30:00+01:00 with clock skew 0 minutes, minutes now 30
2026-08-18 00:30:00.195699: Saved current settings to /config/predbat_config.json
2026-08-18 00:30:00.195839: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 00:30:00.196023: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:30:00.196156: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:30:00.216006: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:30:00.216190: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:30:00.216441: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:30:00.217177: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:30:00.217330: Predbat mode is set to Control charge & discharge
2026-08-18 00:30:00.420980: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:30:00.421183: Using load_power data to fill gaps in load_today data
2026-08-18 00:30:01.293552: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:30:01.294136: Zero load period starting at 2026-08-17T10:54:00+0100 (816 minutes) for 189 minutes with base value 211.225
2026-08-18 00:30:01.294886: Processing 721 30-minute periods for power integration
2026-08-18 00:30:01.487779: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:30:01.487940: Car charging hold False, threshold 6.0kWh
2026-08-18 00:30:01.488003: Current data so far today: load 0.25kWh, import 1.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:30:01.503379: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:30:01.503484: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:30:01.504320: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:30:01.504400: Standing charge is set to 46.63p
2026-08-18 00:30:01.618010: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:30:01.618825: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:30:01.619032: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:30:01.620247: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:30:01.620362: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:30:01.625390: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:30:01.625698: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:30:01.669578: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:30:01.669691: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:30:01.670820: High export rate found rates in range 99p to -99p
2026-08-18 00:30:01.691218: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:30:01.691331: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:30:01.702860: Battery level now 8.6kWh, -1hr ago 4.99kWh, at midnight 6.84kWh, battery value change in the last hour 24.8p, change today 12.1p, rate_forward 6.87p
2026-08-18 00:30:01.703224: Last hour: net energy 3.64kWh, import 3.64kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 29.1p, import 29.1p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:30:01.745200: Today's energy total net 1.8kWh, import 1.8kWh, export 0.0kWh, cost 61.03p, import 14.4p, export 0.0p, carbon 0.0kg
2026-08-18 00:30:01.745310: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:30:01.818177: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:30:01.852635: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:30:01.852736: Today's predicted so far 0.47kWh with 0.0kWh car/iBoost excluded, 1.63kWh import ignored, and 0.47kWh forecast extra.
2026-08-18 00:30:01.852769: Today's actual load so far 0.24kWh with 0.0kWh car/iBoost excluded, and 1.63kWh import ignored.
2026-08-18 00:30:01.890800: Inverter 0: Type SK Sunsynk
2026-08-18 00:30:01.890883: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:30:01.891075: Reserve min: 7%, battery_min: 7%
2026-08-18 00:30:01.891153: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:30:01.891407: Inverter 0 SoC: 8.6kW 54%, current charge rate 5000W, current discharge rate 5250W, current battery power -4527W, current battery voltage 51.2V, grid power -5412W, load power 416W, PV Power 0W
2026-08-18 00:30:01.891554: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:30:01.891636: Inverter 0 scheduled charge enable is True
2026-08-18 00:30:01.891686: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:30:01.891773: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:30:01.891894: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:30:01.891999: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:30:01.892064: Inverter 0 scheduled discharge enable is False
2026-08-18 00:30:01.892213: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:30:01.892251: Inverter 0 discharge windows currently []
2026-08-18 00:30:01.892275: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:30:01.892297: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:30:01.892318: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:30:01.952151: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:30:01.952252: Plan was last updated on 2026-08-18 00:20:00+01:00 and is now 10.0 minutes old
2026-08-18 00:30:01.952484: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:30:01.952525: Best export window [ ]
2026-08-18 00:30:01.953350: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:30:01.955841: Load divergence over 8.0 hours mean 395.37W, min 284.4W, max 482.4W, std dev 44.51W, divergence 5.63%
2026-08-18 00:30:01.971239: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:30:01.971337: LoadML is_calculating False
2026-08-18 00:30:01.971401: Creating pool of 12 processes to match your CPU count
2026-08-18 00:30:02.074504: predict base end_record 08-19 00:40:00, final soc 6.02kWh, metric 223.55p, metric_keep 0kWh, min_soc 2.92kWh @ 08-18 23:55:00, load 15.64kWh, PV 0.0kWh
2026-08-18 00:30:02.210026: Battery has 48.0 hours left - now at 8.6kWh
2026-08-18 00:30:02.249411: predict base10 end_record 08-19 00:40:00, final soc 4.88kWh, metric 220.33p, metric_keep 0kWh, min_soc 2.29kWh @ 08-18 23:55:00, load 16.37kWh, PV 0.0kWh
2026-08-18 00:30:02.329993: predict best10 end_record 08-19 00:40:00, final soc 1.77kWh, metric 193.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 16.37kWh, PV 0.0kWh
2026-08-18 00:30:02.419743: predict best end_record 08-19 00:40:00, final soc 1.9kWh, metric 188.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 15.64kWh, PV 0.0kWh
2026-08-18 00:30:02.419826: Saving plan best values to HA entities
2026-08-18 00:30:02.577942: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:30:02.583873: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:30:02.589141: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 9.89kWh, house 0.21kWh, export 0.0kWh, metric 188.46p, metric10 193.21p
2026-08-18 00:30:02.650201: Marginal costs baseline metric (no standing charge): 141.8291
2026-08-18 00:30:02.869010: Marginal energy costs matrix computed: min=8.0 max=31.35
2026-08-18 00:30:02.923749: Rate array import [{'start': 30, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1480, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 30, 'end': 1480, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:30:02.924192: - Your estimated bill for today is £1.32 and tomorrow is £2.29
2026-08-18 00:30:02.924235: - Import rates are cheap (8.0p) for the next 5 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:30:02.924255: - The battery is currently at 54% and is charging to 84% for the next 1 hour.
2026-08-18 00:30:02.924270: - For the next 48 hours there will be no solar generation.
2026-08-18 00:30:02.924283: - You will run out of battery in 23 hours.
2026-08-18 00:30:02.924302:
2026-08-18 00:30:02.971661: Plan calculation took 1.02 seconds
2026-08-18 00:30:02.974885: No high rate period found
2026-08-18 00:30:03.023058: Import threshold used for optimisation was 8.0p
2026-08-18 00:30:03.067885: Low import rate windows [0: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 1: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 2: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 3: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 4: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 5: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 6: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 7: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 8: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 9: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 23: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0]
2026-08-18 00:30:03.072978: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:30:03.073105: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 54%, target 100%
2026-08-18 00:30:03.073248: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:30:03.073431: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:30:03.073652: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:30:03.073731: No export window planned
2026-08-18 00:30:03.073853: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:30:03.073898: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:30:03.074094: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:30:03.074205: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:30:03.074240: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:30:03.074292: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:30:03.074384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074508: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074559: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074594: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074622: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074647: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074671: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074693: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074722: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074801: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074849: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:03.074960: Inverter 0 count register writes 0
2026-08-18 00:30:03.087808: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 00:30:03.087988: Recompute is saving previous plan...
2026-08-18 00:30:03.088854: Best charge window [ 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:30:03.088908: Best export window [ ]
2026-08-18 00:30:03.089595: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:30:03.092161: Load divergence over 8.0 hours mean 395.37W, min 284.4W, max 482.4W, std dev 44.51W, divergence 5.63%
2026-08-18 00:30:03.106548: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:30:03.106641: LoadML is_calculating False
2026-08-18 00:30:03.106692: Creating pool of 12 processes to match your CPU count
2026-08-18 00:30:03.183154: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:30:03.183797: Optimise levels pass started at 2026-08-18 00:30:03
2026-08-18 00:30:03.183839: Optimise all windows, total charge 24 export 1
2026-08-18 00:30:03.521581: >> Region optimisation pass width 960 gives best_metric 272.62p, best_cost 278.42p, best_cycle 42.54kWh, best_import 27.17kWh
2026-08-18 00:30:03.664188: >> Region optimisation pass width 480 gives best_metric 272.62p, best_cost 278.42p, best_cycle 42.54kWh, best_import 27.17kWh
2026-08-18 00:30:03.947434: >> Region optimisation pass width 240 gives best_metric 272.62p, best_cost 278.42p, best_cycle 42.54kWh, best_import 27.17kWh
2026-08-18 00:30:04.476357: >> Region optimisation pass width 120 gives best_metric 272.62p, best_cost 278.42p, best_cycle 42.54kWh, best_import 27.17kWh
2026-08-18 00:30:04.476579: Calculated end_record as 08-19 00:30:00 based on best_price 8.0p, next_charge_start 08-18 00:30:00, max_windows 12
2026-08-18 00:30:04.476782: Optimise levels pass ended at 2026-08-18 00:30:04, duration 1.3 seconds tried 69 combinations
2026-08-18 00:30:04.476870: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 272.62p, best_keep 0kWh, best_cycle 42.54kWh, best_carbon 0kg, best_import 27.17kWh
2026-08-18 00:30:04.491966: Starting detailed optimisation end_record 08-19 00:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 00:30:06.564482: Tweak plan optimisation started metric 127.05p, cost 133.87p
2026-08-18 00:30:06.893176: Tweak optimisation finished metric 127.05p, cost 133.87p, metric_keep 0kWh, cycle 19.06kWh, carbon 0kg, import 9.1kWh, changed 8 window(s)
2026-08-18 00:30:06.914636: Swap charge optimisation started metric 127.05p, cost 133.87p, min_improvement_swap 0.1p
2026-08-18 00:30:07.659403: Swap charge optimisation finished metric 127.05p, cost 133.87p
2026-08-18 00:30:07.729213: Raw charge windows [ 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 0%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:30:07.729581: Unclipped charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:30:07.729927: Unfiltered charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:30:07.730204: Filtered charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:30:07.765919: Previous plan best metric is 127.05 (cost 133.87) and new plan best metric is 127.05 (cost 133.87)
2026-08-18 00:30:07.766127: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 00:30:07.766286: Plan valid is now true after recompute was False
2026-08-18 00:30:07.796094: predict base end_record 08-19 00:30:00, final soc 5.24kWh, metric 215.59p, metric_keep 0kWh, min_soc 2.92kWh @ 08-18 23:55:00, load 15.48kWh, PV 0.0kWh
2026-08-18 00:30:07.917642: Battery has 48.0 hours left - now at 8.6kWh
2026-08-18 00:30:07.968774: predict base10 end_record 08-19 00:30:00, final soc 4.23kWh, metric 213.42p, metric_keep 0kWh, min_soc 2.29kWh @ 08-18 23:55:00, load 16.2kWh, PV 0.0kWh
2026-08-18 00:30:08.048013: predict best10 end_record 08-19 00:30:00, final soc 1.12kWh, metric 186.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 16.2kWh, PV 0.0kWh
2026-08-18 00:30:08.123116: predict best end_record 08-19 00:30:00, final soc 1.12kWh, metric 180.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 15.48kWh, PV 0.0kWh
2026-08-18 00:30:08.123201: Saving plan best values to HA entities
2026-08-18 00:30:08.269594: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:30:08.274937: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:30:08.280085: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 8.9kWh, house 0.21kWh, export 0.0kWh, metric 180.51p, metric10 186.31p
2026-08-18 00:30:08.347882: Marginal costs baseline metric (no standing charge): 133.8728
2026-08-18 00:30:08.611990: Marginal energy costs matrix computed: min=8.0 max=31.35
2026-08-18 00:30:08.674146: Rate array import [{'start': 30, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1470, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 30, 'end': 1470, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:30:08.674551: - Your estimated bill for today is £1.32 and tomorrow is £2.29
2026-08-18 00:30:08.674596: - Import rates are cheap (8.0p) for the next 5 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:30:08.674619: - The battery is currently at 54% and is charging to 84% for the next 1 hour.
2026-08-18 00:30:08.674670: - For the next 48 hours there will be no solar generation.
2026-08-18 00:30:08.674689: - You will run out of battery in 23 hours.
2026-08-18 00:30:08.674707:
2026-08-18 00:30:08.724414: Plan calculation took 5.64 seconds
2026-08-18 00:30:08.724702: Inverter 0: Type SK Sunsynk
2026-08-18 00:30:08.724745: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:30:08.724949: Reserve min: 7%, battery_min: 7%
2026-08-18 00:30:08.725024: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:30:08.725373: Inverter 0 SoC: 8.94kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power -4526W, current battery voltage 51.2V, grid power -5413W, load power 416W, PV Power 0W
2026-08-18 00:30:08.725594: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:30:08.725696: Inverter 0 scheduled charge enable is True
2026-08-18 00:30:08.725748: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:30:08.725849: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:30:08.725968: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:30:08.726007: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:30:08.726057: Inverter 0 scheduled discharge enable is False
2026-08-18 00:30:08.726190: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:30:08.726227: Inverter 0 discharge windows currently []
2026-08-18 00:30:08.726249: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:30:08.726272: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:30:08.726289: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:30:08.770941: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:30:08.771059: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 56%, target 100%
2026-08-18 00:30:08.771189: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:30:08.771345: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:30:08.771530: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:30:08.771607: No export window planned
2026-08-18 00:30:08.771697: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:30:08.771726: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:30:08.771836: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:30:08.771974: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:30:08.772019: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:30:08.772073: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:30:08.772167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772201: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772340: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772374: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772396: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772420: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772440: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772463: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772486: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772681: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:30:08.772700: Inverter 0 count register writes 0
2026-08-18 00:30:08.789973: Total inverter register writes now 862
2026-08-18 00:30:08.820729: Info: Completed run status Charging
2026-08-18 00:30:08.826532: Info: record_status Charging target 56%-100.0%
2026-08-18 00:30:08.832671: Saved current settings to /config/predbat_config.json
2026-08-18 00:30:08.832969: Compare, best tariff: current metric 129.87p
2026-08-18 00:30:48.940793: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:30:48.941108: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:30:48.941181: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:30:48.941313: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:30:48.941352: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:30:48.941373: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:30:48.941391: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:32:49.147960: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:32:49.148291: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:32:49.148335: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:32:49.148479: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:32:49.148525: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:32:49.148547: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:32:49.148565: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:34:49.355012: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:34:49.355277: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:34:49.355325: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:34:49.355459: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:34:49.355579: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:34:49.355619: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:34:49.355641: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:35:00.440030: --------------- PredBat - update at 2026-08-18 00:35:00+01:00 with clock skew 0 minutes, minutes now 35
2026-08-18 00:35:00.440744: Saved current settings to /config/predbat_config.json
2026-08-18 00:35:00.440903: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 00:35:00.441041: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:35:00.441132: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:35:00.456894: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:35:00.456998: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:35:00.457239: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:35:00.457827: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:35:00.457981: Predbat mode is set to Control charge & discharge
2026-08-18 00:35:00.654789: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:35:00.654923: Using load_power data to fill gaps in load_today data
2026-08-18 00:35:01.473258: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:35:01.473424: Zero load period starting at 2026-08-17T10:54:00+0100 (821 minutes) for 189 minutes with base value 211.2
2026-08-18 00:35:01.474048: Processing 721 30-minute periods for power integration
2026-08-18 00:35:01.656663: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:35:01.656786: Car charging hold False, threshold 6.0kWh
2026-08-18 00:35:01.656835: Current data so far today: load 0.3kWh, import 1.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:35:01.671612: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:35:01.671704: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:35:01.672707: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:35:01.672813: Standing charge is set to 46.63p
2026-08-18 00:35:01.765683: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:35:01.765879: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:35:01.766076: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:35:01.767025: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:35:01.767112: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:35:01.771231: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:35:01.771530: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:35:01.807397: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:35:01.807533: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:35:01.809040: High export rate found rates in range 99p to -99p
2026-08-18 00:35:01.827417: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:35:01.827506: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:35:01.838602: Battery level now 8.6kWh, -1hr ago 4.96kWh, at midnight 6.84kWh, battery value change in the last hour 25.02p, change today 12.1p, rate_forward 6.87p
2026-08-18 00:35:01.838979: Last hour: net energy 3.6kWh, import 3.6kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 28.8p, import 28.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:35:01.879205: Today's energy total net 1.8kWh, import 1.8kWh, export 0.0kWh, cost 61.03p, import 14.4p, export 0.0p, carbon 0.0kg
2026-08-18 00:35:01.879341: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:35:01.955994: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:35:01.981836: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:35:01.981927: Today's predicted so far 0.58kWh with 0.0kWh car/iBoost excluded, 1.62kWh import ignored, and 0.58kWh forecast extra.
2026-08-18 00:35:01.981959: Today's actual load so far 0.29kWh with 0.0kWh car/iBoost excluded, and 1.62kWh import ignored.
2026-08-18 00:35:02.021364: Inverter 0: Type SK Sunsynk
2026-08-18 00:35:02.021439: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:35:02.021602: Reserve min: 7%, battery_min: 7%
2026-08-18 00:35:02.021660: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:35:02.021929: Inverter 0 SoC: 8.94kW 56%, current charge rate 5000W, current discharge rate 5250W, current battery power -4530W, current battery voltage 51.2V, grid power -5432W, load power 436W, PV Power 0W
2026-08-18 00:35:02.022065: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:35:02.022155: Inverter 0 scheduled charge enable is True
2026-08-18 00:35:02.022217: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:35:02.022307: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:35:02.022413: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:35:02.022443: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:35:02.022473: Inverter 0 scheduled discharge enable is False
2026-08-18 00:35:02.022584: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:35:02.022616: Inverter 0 discharge windows currently []
2026-08-18 00:35:02.022635: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:35:02.022651: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:35:02.022668: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:35:02.079393: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:35:02.079493: Plan was last updated on 2026-08-18 00:30:00+01:00 and is now 5.0 minutes old
2026-08-18 00:35:02.079779: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:35:02.079827: Best export window [ ]
2026-08-18 00:35:02.080807: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:35:02.084492: Load divergence over 8.0 hours mean 393.96W, min 263.4W, max 504.0W, std dev 58.55W, divergence 7.43%
2026-08-18 00:35:02.103575: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:35:02.103674: LoadML is_calculating False
2026-08-18 00:35:02.103733: Creating pool of 12 processes to match your CPU count
2026-08-18 00:35:02.219086: predict base end_record 08-19 00:35:00, final soc 5.68kWh, metric 216.47p, metric_keep 0kWh, min_soc 2.96kWh @ 08-18 23:55:00, load 15.54kWh, PV 0.0kWh
2026-08-18 00:35:02.347324: Battery has 48.0 hours left - now at 8.94kWh
2026-08-18 00:35:02.396623: predict base10 end_record 08-19 00:35:00, final soc 4.61kWh, metric 213.76p, metric_keep 0kWh, min_soc 2.34kWh @ 08-18 23:55:00, load 16.26kWh, PV 0.0kWh
2026-08-18 00:35:02.486824: predict best10 end_record 08-19 00:35:00, final soc 1.44kWh, metric 186.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.26kWh, PV 0.0kWh
2026-08-18 00:35:02.562884: predict best end_record 08-19 00:35:00, final soc 1.51kWh, metric 181.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:20:00, load 15.54kWh, PV 0.0kWh
2026-08-18 00:35:02.562972: Saving plan best values to HA entities
2026-08-18 00:35:02.714462: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:35:02.719562: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:35:02.724884: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 8.98kWh, house 0.19kWh, export 0.0kWh, metric 181.02p, metric10 186.27p
2026-08-18 00:35:02.791808: Marginal costs baseline metric (no standing charge): 134.3875
2026-08-18 00:35:03.022641: Marginal energy costs matrix computed: min=8.0 max=31.34
2026-08-18 00:35:03.088193: Rate array import [{'start': 35, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1475, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 35, 'end': 1475, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:35:03.088647: - Your estimated bill for today is £1.29 and tomorrow is £2.29
2026-08-18 00:35:03.088695: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:35:03.088718: - The battery is currently at 56% and is charging to 84% for the next 55 minutes.
2026-08-18 00:35:03.088737: - For the next 48 hours there will be no solar generation.
2026-08-18 00:35:03.088759: - You have enough battery to reach the next charge.
2026-08-18 00:35:03.088776:
2026-08-18 00:35:03.131464: Plan calculation took 1.05 seconds
2026-08-18 00:35:03.134922: No high rate period found
2026-08-18 00:35:03.185620: Import threshold used for optimisation was 8.0p
2026-08-18 00:35:03.233192: Low import rate windows [0: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 1: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 2: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 3: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 4: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 5: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 6: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 7: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 8: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 9: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 23: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 24: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0]
2026-08-18 00:35:03.240710: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:35:03.240837: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 56%, target 100%
2026-08-18 00:35:03.240999: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:35:03.241201: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:35:03.241472: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:35:03.241591: No export window planned
2026-08-18 00:35:03.241751: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:35:03.241793: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:35:03.241951: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:35:03.242076: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:35:03.242115: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:35:03.242193: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:35:03.242341: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242577: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242708: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242762: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242809: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242850: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242883: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242924: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.242961: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:35:03.243276: Inverter 0 count register writes 0
2026-08-18 00:35:03.261460: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 00:35:03.267002: Total inverter register writes now 862
2026-08-18 00:35:03.296553: Info: Completed run status Charging
2026-08-18 00:35:03.303256: Info: record_status Charging target 56%-100.0%
2026-08-18 00:35:03.309637: Saved current settings to /config/predbat_config.json
2026-08-18 00:35:03.309953: Compare, best tariff: current metric 129.87p
2026-08-18 00:35:34.417582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:35:34.418021: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:35:34.418083: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:35:34.418297: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:35:34.418375: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:35:34.418404: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:35:34.418430: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:37:34.631805: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:37:34.632242: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:37:34.632293: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:37:34.632433: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:37:34.632472: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:37:34.632494: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:37:34.632511: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:39:48.844353: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:39:48.844665: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:39:48.844722: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:39:48.844909: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:39:48.844954: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:39:48.844977: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:39:48.845007: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:40:00.931249: --------------- PredBat - update at 2026-08-18 00:40:00+01:00 with clock skew 0 minutes, minutes now 40
2026-08-18 00:40:00.932268: Saved current settings to /config/predbat_config.json
2026-08-18 00:40:00.932427: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 00:40:00.932500: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:40:00.932609: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:40:00.950485: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:40:00.950633: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:40:00.950834: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:40:00.951333: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:40:00.951451: Predbat mode is set to Control charge & discharge
2026-08-18 00:40:01.158046: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:40:01.158220: Using load_power data to fill gaps in load_today data
2026-08-18 00:40:01.996658: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:40:01.996875: Zero load period starting at 2026-08-17T10:54:00+0100 (826 minutes) for 189 minutes with base value 211.175
2026-08-18 00:40:01.997652: Processing 721 30-minute periods for power integration
2026-08-18 00:40:02.182922: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:40:02.183045: Car charging hold False, threshold 6.0kWh
2026-08-18 00:40:02.183090: Current data so far today: load 0.35kWh, import 2.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:40:02.197861: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:40:02.197955: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:40:02.198682: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:40:02.198753: Standing charge is set to 46.63p
2026-08-18 00:40:02.299294: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:40:02.299944: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:40:02.300206: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:40:02.301292: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:40:02.301396: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:40:02.306433: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:40:02.306856: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:40:02.350239: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:40:02.350347: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:40:02.351562: High export rate found rates in range 99p to -99p
2026-08-18 00:40:02.372825: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:40:02.372940: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:40:02.385198: Battery level now 8.94kWh, -1hr ago 5.08kWh, at midnight 6.84kWh, battery value change in the last hour 26.5p, change today 14.41p, rate_forward 6.87p
2026-08-18 00:40:02.385655: Last hour: net energy 4.05kWh, import 4.05kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 32.4p, import 32.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:40:02.434200: Today's energy total net 2.7kWh, import 2.7kWh, export 0.0kWh, cost 68.23p, import 21.6p, export 0.0p, carbon 0.0kg
2026-08-18 00:40:02.434310: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:40:02.493614: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:40:02.515857: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:40:02.515984: Today's predicted so far 0.63kWh with 0.0kWh car/iBoost excluded, 2.46kWh import ignored, and 0.63kWh forecast extra.
2026-08-18 00:40:02.516031: Today's actual load so far 0.32kWh with 0.0kWh car/iBoost excluded, and 2.46kWh import ignored.
2026-08-18 00:40:02.556926: Inverter 0: Type SK Sunsynk
2026-08-18 00:40:02.557014: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:40:02.557249: Reserve min: 7%, battery_min: 7%
2026-08-18 00:40:02.557339: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:40:02.557646: Inverter 0 SoC: 9.29kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power -4530W, current battery voltage 51.2V, grid power -5414W, load power 418W, PV Power 0W
2026-08-18 00:40:02.557830: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:40:02.557943: Inverter 0 scheduled charge enable is True
2026-08-18 00:40:02.557999: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:40:02.558161: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:40:02.558335: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:40:02.558378: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:40:02.558417: Inverter 0 scheduled discharge enable is False
2026-08-18 00:40:02.558546: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:40:02.558582: Inverter 0 discharge windows currently []
2026-08-18 00:40:02.558625: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:40:02.558646: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:40:02.558663: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:40:02.615150: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:40:02.615277: Plan was last updated on 2026-08-18 00:30:00+01:00 and is now 10.0 minutes old
2026-08-18 00:40:02.615526: Best charge window [ 18-08 00:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 91%, 19-08 00:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:30:00 @ 8.0p 100% ]
2026-08-18 00:40:02.615581: Best export window [ ]
2026-08-18 00:40:02.616610: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:40:02.619987: Load divergence over 8.0 hours mean 392.33W, min 262.2W, max 502.8W, std dev 56.28W, divergence 7.17%
2026-08-18 00:40:02.640379: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:40:02.640489: LoadML is_calculating False
2026-08-18 00:40:02.640546: Creating pool of 12 processes to match your CPU count
2026-08-18 00:40:02.756054: predict base end_record 08-19 00:40:00, final soc 6.03kWh, metric 223.73p, metric_keep 0kWh, min_soc 2.93kWh @ 08-18 23:55:00, load 15.59kWh, PV 0.0kWh
2026-08-18 00:40:02.881042: Battery has 48.0 hours left - now at 9.29kWh
2026-08-18 00:40:02.916347: predict base10 end_record 08-19 00:40:00, final soc 4.89kWh, metric 220.45p, metric_keep 0kWh, min_soc 2.31kWh @ 08-18 23:55:00, load 16.31kWh, PV 0.0kWh
2026-08-18 00:40:02.982478: predict best10 end_record 08-19 00:40:00, final soc 1.77kWh, metric 193.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 16.31kWh, PV 0.0kWh
2026-08-18 00:40:03.049894: predict best end_record 08-19 00:40:00, final soc 1.9kWh, metric 188.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:20:00, load 15.59kWh, PV 0.0kWh
2026-08-18 00:40:03.049972: Saving plan best values to HA entities
2026-08-18 00:40:03.222786: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:40:03.228485: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:40:03.233626: Best charging limit SoC's [16.0, 13.5, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 9.02kWh, house 0.19kWh, export 0.0kWh, metric 188.54p, metric10 193.23p
2026-08-18 00:40:03.302359: Marginal costs baseline metric (no standing charge): 141.904
2026-08-18 00:40:03.543106: Marginal energy costs matrix computed: min=8.0 max=31.33
2026-08-18 00:40:03.602287: Rate array import [{'start': 40, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1480, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 40, 'end': 1480, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:40:03.602671: - Your estimated bill for today is £1.32 and tomorrow is £2.29
2026-08-18 00:40:03.602714: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:40:03.602736: - The battery is currently at 58% and is charging to 84% for the next 50 minutes.
2026-08-18 00:40:03.602755: - For the next 48 hours there will be no solar generation.
2026-08-18 00:40:03.602779: - You have enough battery to reach the next charge.
2026-08-18 00:40:03.602797:
2026-08-18 00:40:03.645534: Plan calculation took 1.03 seconds
2026-08-18 00:40:03.648758: No high rate period found
2026-08-18 00:40:03.694228: Import threshold used for optimisation was 8.0p
2026-08-18 00:40:03.741021: Low import rate windows [0: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 1: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 2: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 3: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 4: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 5: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 6: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 7: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 8: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 9: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 23: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 24: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0]
2026-08-18 00:40:03.746785: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:00:00
2026-08-18 00:40:03.746924: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 00:40:03.747134: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:40:03.747340: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:40:03.747608: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:40:03.747738: No export window planned
2026-08-18 00:40:03.747967: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:40:03.748015: Adjust idle time, charge 23:30:00-04:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:40:03.748235: Adjust demand (idle) time computed is 04:00:00-23:59:00
2026-08-18 00:40:03.748384: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:40:03.748453: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:40:03.748558: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:40:03.748711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.748782: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.748824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.748874: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.748916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.748948: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749006: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749060: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749140: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749189: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749254: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749298: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749379: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749445: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749667: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749733: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749786: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:03.749807: Inverter 0 count register writes 0
2026-08-18 00:40:03.764478: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 00:40:03.764656: Recompute is saving previous plan...
2026-08-18 00:40:03.765727: Best charge window [ 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 00:40:03.765783: Best export window [ ]
2026-08-18 00:40:03.766466: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:40:03.769029: Load divergence over 8.0 hours mean 392.33W, min 262.2W, max 502.8W, std dev 56.28W, divergence 7.17%
2026-08-18 00:40:03.783935: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:40:03.784049: LoadML is_calculating False
2026-08-18 00:40:03.784106: Creating pool of 12 processes to match your CPU count
2026-08-18 00:40:03.861352: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:40:03.862282: Optimise levels pass started at 2026-08-18 00:40:03
2026-08-18 00:40:03.862346: Optimise all windows, total charge 24 export 1
2026-08-18 00:40:04.192430: >> Region optimisation pass width 960 gives best_metric 273.96p, best_cost 279.76p, best_cycle 41.81kWh, best_import 26.44kWh
2026-08-18 00:40:04.338595: >> Region optimisation pass width 480 gives best_metric 273.96p, best_cost 279.76p, best_cycle 41.81kWh, best_import 26.44kWh
2026-08-18 00:40:04.608824: >> Region optimisation pass width 240 gives best_metric 273.96p, best_cost 279.76p, best_cycle 41.81kWh, best_import 26.44kWh
2026-08-18 00:40:05.135498: >> Region optimisation pass width 120 gives best_metric 273.96p, best_cost 279.76p, best_cycle 41.81kWh, best_import 26.44kWh
2026-08-18 00:40:05.135762: Calculated end_record as 08-19 01:00:00 based on best_price 8.0p, next_charge_start 08-18 01:00:00, max_windows 13
2026-08-18 00:40:05.135831: Optimise levels pass ended at 2026-08-18 00:40:05, duration 1.3 seconds tried 70 combinations
2026-08-18 00:40:05.135927: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 273.96p, best_keep 0kWh, best_cycle 41.81kWh, best_carbon 0kg, best_import 26.44kWh
2026-08-18 00:40:05.157281: Starting detailed optimisation end_record 08-19 01:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 00:40:07.500516: Tweak plan optimisation started metric 131.05p, cost 137.86p
2026-08-18 00:40:07.784826: Tweak optimisation finished metric 131.05p, cost 137.86p, metric_keep 0kWh, cycle 18.35kWh, carbon 0kg, import 8.7kWh, changed 8 window(s)
2026-08-18 00:40:07.802207: Swap charge optimisation started metric 131.05p, cost 137.86p, min_improvement_swap 0.1p
2026-08-18 00:40:08.428475: Swap charge optimisation finished metric 131.05p, cost 137.86p
2026-08-18 00:40:08.531384: Raw charge windows [ 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 81%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 81%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 81%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 81%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:40:08.531691: Unclipped charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:40:08.531881: Unfiltered charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:40:08.532062: Filtered charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:40:08.566458: Previous plan best metric is 134.95 (cost 157.86) and new plan best metric is 131.05 (cost 137.86)
2026-08-18 00:40:08.567622: New plan metric is significantly better from previous plan, using new plan
2026-08-18 00:40:08.567688: Plan valid is now true after recompute was False
2026-08-18 00:40:08.598026: predict base end_record 08-19 01:00:00, final soc 7.58kWh, metric 239.68p, metric_keep 0kWh, min_soc 2.93kWh @ 08-18 23:55:00, load 15.92kWh, PV 0.0kWh
2026-08-18 00:40:08.709836: Battery has 48.0 hours left - now at 9.29kWh
2026-08-18 00:40:08.752708: predict base10 end_record 08-19 01:00:00, final soc 6.19kWh, metric 234.31p, metric_keep 0kWh, min_soc 2.31kWh @ 08-18 23:55:00, load 16.66kWh, PV 0.0kWh
2026-08-18 00:40:08.821234: predict best10 end_record 08-19 01:00:00, final soc 1.12kWh, metric 190.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.66kWh, PV 0.0kWh
2026-08-18 00:40:08.897240: predict best end_record 08-19 01:00:00, final soc 1.12kWh, metric 184.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.92kWh, PV 0.0kWh
2026-08-18 00:40:08.897320: Saving plan best values to HA entities
2026-08-18 00:40:09.029276: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:40:09.034017: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:40:09.038830: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 8.56kWh, house 0.14kWh, export 0.0kWh, metric 184.49p, metric10 190.42p
2026-08-18 00:40:09.106616: Marginal costs baseline metric (no standing charge): 137.8581
2026-08-18 00:40:09.326772: Marginal energy costs matrix computed: min=8.0 max=29.54
2026-08-18 00:40:09.387941: Rate array import [{'start': 40, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1500, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 40, 'end': 1500, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:40:09.388261: - Your estimated bill for today is £1.37 and tomorrow is £2.25
2026-08-18 00:40:09.388299: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:40:09.388317: - The battery is currently at 58% and is charging to 82% for the next 50 minutes.
2026-08-18 00:40:09.388331: - For the next 48 hours there will be no solar generation.
2026-08-18 00:40:09.388345: - You have enough battery to reach the next charge.
2026-08-18 00:40:09.388366:
2026-08-18 00:40:09.430625: Plan calculation took 5.67 seconds
2026-08-18 00:40:09.430930: Inverter 0: Type SK Sunsynk
2026-08-18 00:40:09.430967: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:40:09.431172: Reserve min: 7%, battery_min: 7%
2026-08-18 00:40:09.431236: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:40:09.431526: Inverter 0 SoC: 9.29kW 58%, current charge rate 5000W, current discharge rate 5250W, current battery power -4530W, current battery voltage 51.2V, grid power -5414W, load power 418W, PV Power 0W
2026-08-18 00:40:09.431715: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:40:09.431800: Inverter 0 scheduled charge enable is True
2026-08-18 00:40:09.431842: Inverter 0 charge windows currently [{'start': 0, 'end': 240, 'average': 0}, {'start': 1440, 'end': 1680, 'average': 0}, {'start': 2880, 'end': 3120, 'average': 0}]
2026-08-18 00:40:09.432018: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:40:09.432162: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:40:09.432199: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:40:09.432231: Inverter 0 scheduled discharge enable is False
2026-08-18 00:40:09.432343: Inverter 0 idle time is 08-18 04:00:00-08-18 23:59:00
2026-08-18 00:40:09.432375: Inverter 0 discharge windows currently []
2026-08-18 00:40:09.432394: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:40:09.432409: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:40:09.432427: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:40:09.478084: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 00:40:09.478244: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 58%, target 100%
2026-08-18 00:40:09.478383: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:40:09.478541: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:40:09.478723: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:40:09.478793: Inverter 0 set new demand (idle) start time to 05:00:00 was 04:00:00
2026-08-18 00:40:14.485716: Inverter 0 write_and_poll_value: Wrote 05:00:00 to idle_start_time, successfully now 05:00:00
2026-08-18 00:40:19.493015: Inverter 0 write_and_poll_value: Wrote 05:00:00 to charge_end_time, successfully now 05:00:00
2026-08-18 00:40:19.493181: Inverter 0 Updated start and end charge window to 23:30:00 - 05:00:00 (old 23:30:00 - 04:00:00)
2026-08-18 00:40:19.493231: No export window planned
2026-08-18 00:40:19.493393: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:40:19.493432: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:40:19.493628: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:40:19.493784: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:40:19.493832: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:40:19.493882: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:40:19.494001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.494036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.494067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.494094: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.494119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.494162: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.494198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.494251: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:40:19.578711: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:40:19.658311: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:40:19.716769: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:40:19.820238: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:40:19.886181: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 00:40:19.890763: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-18 00:40:19.994288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.994380: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.994413: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.994441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.994465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.994496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.994522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:40:19.994549: Inverter 0 count register writes 0
2026-08-18 00:40:20.018895: Total inverter register writes now 862
2026-08-18 00:40:20.049898: Info: Completed run status Charging
2026-08-18 00:40:20.055635: Info: record_status Charging target 58%-100.0%
2026-08-18 00:40:20.061873: Saved current settings to /config/predbat_config.json
2026-08-18 00:40:20.062241: Compare, best tariff: current metric 129.87p
2026-08-18 00:41:04.182031: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:41:04.182409: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:41:04.182459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:41:04.182586: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:41:04.182619: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:41:04.182637: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:41:04.182651: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:43:04.390015: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:43:04.390399: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:43:04.390450: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:43:04.390578: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:43:04.390611: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:43:04.390629: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:43:04.390644: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:45:00.589910: --------------- PredBat - update at 2026-08-18 00:45:00+01:00 with clock skew 0 minutes, minutes now 45
2026-08-18 00:45:00.590725: Saved current settings to /config/predbat_config.json
2026-08-18 00:45:00.590848: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 00:45:00.590925: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:45:00.591000: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:45:00.607544: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:45:00.607655: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:45:00.607811: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:45:00.608314: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:45:00.608434: Predbat mode is set to Control charge & discharge
2026-08-18 00:45:00.765493: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:45:00.765630: Using load_power data to fill gaps in load_today data
2026-08-18 00:45:01.527862: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:45:01.528069: Zero load period starting at 2026-08-17T10:54:00+0100 (831 minutes) for 189 minutes with base value 211.15
2026-08-18 00:45:01.528867: Processing 721 30-minute periods for power integration
2026-08-18 00:45:01.708883: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:45:01.709002: Car charging hold False, threshold 6.0kWh
2026-08-18 00:45:01.709046: Current data so far today: load 0.4kWh, import 2.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:45:01.725135: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:45:01.725236: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:45:01.725974: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:45:01.726046: Standing charge is set to 46.63p
2026-08-18 00:45:01.824978: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:45:01.825230: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:45:01.825432: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:45:01.826599: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:45:01.826749: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:45:01.832088: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:45:01.832456: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:45:01.877122: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:45:01.877236: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:45:01.878339: High export rate found rates in range 99p to -99p
2026-08-18 00:45:01.899480: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:45:01.899570: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:45:01.911255: Battery level now 9.29kWh, -1hr ago 5.78kWh, at midnight 6.84kWh, battery value change in the last hour 24.14p, change today 16.82p, rate_forward 6.87p
2026-08-18 00:45:01.911633: Last hour: net energy 3.6kWh, import 3.6kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 28.8p, import 28.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:45:01.956465: Today's energy total net 2.7kWh, import 2.7kWh, export 0.0kWh, cost 68.23p, import 21.6p, export 0.0p, carbon 0.0kg
2026-08-18 00:45:01.956613: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:45:02.020270: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:45:02.041943: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:45:02.042026: Today's predicted so far 0.67kWh with 0.0kWh car/iBoost excluded, 2.48kWh import ignored, and 0.67kWh forecast extra.
2026-08-18 00:45:02.042053: Today's actual load so far 0.35kWh with 0.0kWh car/iBoost excluded, and 2.48kWh import ignored.
2026-08-18 00:45:02.072307: Inverter 0: Type SK Sunsynk
2026-08-18 00:45:02.072392: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:45:02.072590: Reserve min: 7%, battery_min: 7%
2026-08-18 00:45:02.072661: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:45:02.072906: Inverter 0 SoC: 9.64kW 60%, current charge rate 5000W, current discharge rate 5250W, current battery power -4531W, current battery voltage 51.2V, grid power -5421W, load power 424W, PV Power 0W
2026-08-18 00:45:02.073055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:45:02.073141: Inverter 0 scheduled charge enable is True
2026-08-18 00:45:02.073184: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 00:45:02.073269: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:45:02.073388: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:45:02.073423: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:45:02.073460: Inverter 0 scheduled discharge enable is False
2026-08-18 00:45:02.073597: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:45:02.073635: Inverter 0 discharge windows currently []
2026-08-18 00:45:02.073658: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:45:02.073681: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:45:02.073699: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:45:02.125232: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:45:02.125319: Plan was last updated on 2026-08-18 00:40:00+01:00 and is now 5.0 minutes old
2026-08-18 00:45:02.125508: Best charge window [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 00:45:02.125558: Best export window [ ]
2026-08-18 00:45:02.126244: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:45:02.128940: Load divergence over 8.0 hours mean 390.74W, min 274.2W, max 502.2W, std dev 54.59W, divergence 6.99%
2026-08-18 00:45:02.144613: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:45:02.144704: LoadML is_calculating False
2026-08-18 00:45:02.144757: Creating pool of 12 processes to match your CPU count
2026-08-18 00:45:02.251156: predict base end_record 08-19 01:05:00, final soc 8.53kWh, metric 244.2p, metric_keep 0kWh, min_soc 3.48kWh @ 08-18 23:55:00, load 15.97kWh, PV 0.0kWh
2026-08-18 00:45:02.366535: Battery has 48.0 hours left - now at 9.64kWh
2026-08-18 00:45:02.408938: predict base10 end_record 08-19 01:05:00, final soc 7.09kWh, metric 238.47p, metric_keep 0kWh, min_soc 2.89kWh @ 08-18 23:55:00, load 16.72kWh, PV 0.0kWh
2026-08-18 00:45:02.482525: predict best10 end_record 08-19 01:05:00, final soc 1.44kWh, metric 190.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.72kWh, PV 0.0kWh
2026-08-18 00:45:02.583630: predict best end_record 08-19 01:05:00, final soc 1.51kWh, metric 184.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.97kWh, PV 0.0kWh
2026-08-18 00:45:02.583715: Saving plan best values to HA entities
2026-08-18 00:45:02.725768: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:45:02.730917: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:45:02.736756: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 8.61kWh, house 0.14kWh, export 0.0kWh, metric 184.88p, metric10 190.26p
2026-08-18 00:45:02.803933: Marginal costs baseline metric (no standing charge): 138.241
2026-08-18 00:45:03.037595: Marginal energy costs matrix computed: min=8.0 max=29.55
2026-08-18 00:45:03.095569: Rate array import [{'start': 45, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1505, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 45, 'end': 1505, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:45:03.096034: - Your estimated bill for today is £1.33 and tomorrow is £2.25
2026-08-18 00:45:03.096095: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:45:03.096124: - The battery is currently at 60% and is charging to 82% for the next 45 minutes.
2026-08-18 00:45:03.096143: - For the next 48 hours there will be no solar generation.
2026-08-18 00:45:03.096161: - You have enough battery to reach the next charge.
2026-08-18 00:45:03.096178:
2026-08-18 00:45:03.139312: Plan calculation took 1.01 seconds
2026-08-18 00:45:03.142418: No high rate period found
2026-08-18 00:45:03.189860: Import threshold used for optimisation was 8.0p
2026-08-18 00:45:03.245492: Low import rate windows [0: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 1: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 2: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 3: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 4: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 5: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 6: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 7: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 8: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 9: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 23: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 24: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0]
2026-08-18 00:45:03.252343: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 00:45:03.252454: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 60%, target 100%
2026-08-18 00:45:03.252640: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:45:03.252853: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:45:03.253092: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:45:03.253185: No export window planned
2026-08-18 00:45:03.253319: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:45:03.253354: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:45:03.253490: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:45:03.253618: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:45:03.253660: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:45:03.253719: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:45:03.253831: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.253872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.253903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.253936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.253966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.253992: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254055: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254088: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254114: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254143: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254172: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254207: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254240: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254365: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254419: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254444: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:45:03.254503: Inverter 0 count register writes 0
2026-08-18 00:45:03.268985: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 00:45:03.274070: Total inverter register writes now 862
2026-08-18 00:45:03.307067: Info: Completed run status Charging
2026-08-18 00:45:03.313125: Info: record_status Charging target 60%-100.0%
2026-08-18 00:45:03.318790: Saved current settings to /config/predbat_config.json
2026-08-18 00:45:03.319077: Compare, best tariff: current metric 129.87p
2026-08-18 00:45:34.420461: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:45:34.420748: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:45:34.420797: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:45:34.420946: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:45:34.420989: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:45:34.421012: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:45:34.421030: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:46:22.241936: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 00:46:23.360066: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:46:23.360252: Zero load period starting at 2026-08-17T10:54:00+0100 (831 minutes) for 189 minutes with base value 405.8
2026-08-18 00:46:23.361037: Processing 1345 30-minute periods for power integration
2026-08-18 00:46:23.468014: ML Component: Car charging hold False, car energy reported load False
2026-08-18 00:46:23.570912: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:46:23.675723: ML Temperature data points: 48916
2026-08-18 00:46:23.954662: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 00:46:23.996041: ML Component: Data fetch completed, load data age 59.0 days, 17121 data points
2026-08-18 00:46:23.996542: ML Component: No training needed, model age is 0.66 hours
2026-08-18 00:46:23.996663: ML Component: Generating predictions load data age 59.0 days, 17121 data points
2026-08-18 00:46:24.141290: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0513 max_dow {0: 0.08633055561814043, 1: 0.09851874950341881, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 00:46:24.651220: ML Component: Generated 576 predictions (total 29.71 kWh over 48h)
2026-08-18 00:46:24.692501: ML Component: Prediction cycle completed
2026-08-18 00:46:24.818153: ML Component: Saved 17121 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 00:47:34.638369: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:47:34.638628: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:47:34.638722: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:47:34.638865: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:47:34.638924: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:47:34.638973: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:47:34.638997: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:49:48.866509: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:49:48.866827: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:49:48.866876: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:49:48.867045: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:49:48.867092: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:49:48.867133: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:49:48.867160: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:50:00.953291: --------------- PredBat - update at 2026-08-18 00:50:00+01:00 with clock skew 0 minutes, minutes now 50
2026-08-18 00:50:00.954040: Saved current settings to /config/predbat_config.json
2026-08-18 00:50:00.954196: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 00:50:00.954296: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:50:00.954372: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:50:00.969192: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:50:00.969299: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:50:00.969433: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:50:00.969910: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:50:00.970014: Predbat mode is set to Control charge & discharge
2026-08-18 00:50:01.147886: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:50:01.148086: Using load_power data to fill gaps in load_today data
2026-08-18 00:50:01.949082: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:50:01.949249: Zero load period starting at 2026-08-17T10:54:00+0100 (836 minutes) for 189 minutes with base value 211.125
2026-08-18 00:50:01.949913: Processing 721 30-minute periods for power integration
2026-08-18 00:50:02.108499: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:50:02.108611: Car charging hold False, threshold 6.0kWh
2026-08-18 00:50:02.108651: Current data so far today: load 0.3kWh, import 3.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:50:02.120395: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:50:02.120466: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:50:02.121076: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:50:02.121135: Standing charge is set to 46.63p
2026-08-18 00:50:02.209246: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:50:02.209500: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:50:02.209725: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:50:02.210681: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:50:02.210799: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:50:02.215398: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:50:02.215683: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:50:02.251187: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:50:02.251285: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:50:02.252417: High export rate found rates in range 99p to -99p
2026-08-18 00:50:02.269721: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:50:02.270230: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:50:02.281471: Battery level now 9.64kWh, -1hr ago 5.78kWh, at midnight 6.84kWh, battery value change in the last hour 26.56p, change today 19.24p, rate_forward 6.87p
2026-08-18 00:50:02.281892: Last hour: net energy 4.05kWh, import 4.05kWh, export 0.0kWh, car 0kWh, load 0.33kWh, net cost 32.4p, import 32.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:50:02.324902: Today's energy total net 3.6kWh, import 3.6kWh, export 0.0kWh, cost 75.43p, import 28.8p, export 0.0p, carbon 0.0kg
2026-08-18 00:50:02.325011: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:50:02.382627: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:50:02.403139: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:50:02.403225: Today's predicted so far 0.73kWh with 0.0kWh car/iBoost excluded, 3.39kWh import ignored, and 0.73kWh forecast extra.
2026-08-18 00:50:02.403271: Today's actual load so far 0.27kWh with 0.0kWh car/iBoost excluded, and 3.39kWh import ignored.
2026-08-18 00:50:02.447394: Inverter 0: Type SK Sunsynk
2026-08-18 00:50:02.447480: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:50:02.447657: Reserve min: 7%, battery_min: 7%
2026-08-18 00:50:02.447729: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:50:02.448028: Inverter 0 SoC: 10.34kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power -4533W, current battery voltage 51.2V, grid power -5416W, load power 420W, PV Power 0W
2026-08-18 00:50:02.448182: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:50:02.448267: Inverter 0 scheduled charge enable is True
2026-08-18 00:50:02.448323: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 00:50:02.448453: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:50:02.448628: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:50:02.448672: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:50:02.448710: Inverter 0 scheduled discharge enable is False
2026-08-18 00:50:02.448855: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:50:02.448893: Inverter 0 discharge windows currently []
2026-08-18 00:50:02.448916: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:50:02.448935: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:50:02.448952: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:50:02.507234: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:50:02.507339: Plan was last updated on 2026-08-18 00:40:00+01:00 and is now 10.0 minutes old
2026-08-18 00:50:02.507611: Best charge window [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 00:50:02.507677: Best export window [ ]
2026-08-18 00:50:02.508526: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:50:02.511740: Load divergence over 8.0 hours mean 389.29W, min 297.6W, max 482.4W, std dev 39.81W, divergence 5.11%
2026-08-18 00:50:02.530945: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:50:02.531070: LoadML is_calculating False
2026-08-18 00:50:02.531132: Creating pool of 12 processes to match your CPU count
2026-08-18 00:50:02.648908: predict base end_record 08-19 01:10:00, final soc 8.9kWh, metric 248.47p, metric_keep 0kWh, min_soc 3.47kWh @ 08-18 23:55:00, load 15.87kWh, PV 0.0kWh
2026-08-18 00:50:02.768228: Battery has 48.0 hours left - now at 10.34kWh
2026-08-18 00:50:02.806745: predict base10 end_record 08-19 01:10:00, final soc 7.39kWh, metric 242.18p, metric_keep 0kWh, min_soc 2.87kWh @ 08-18 23:55:00, load 16.61kWh, PV 0.0kWh
2026-08-18 00:50:02.884646: predict best10 end_record 08-19 01:10:00, final soc 1.77kWh, metric 194.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.61kWh, PV 0.0kWh
2026-08-18 00:50:02.961873: predict best end_record 08-19 01:10:00, final soc 1.9kWh, metric 189.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.87kWh, PV 0.0kWh
2026-08-18 00:50:02.961959: Saving plan best values to HA entities
2026-08-18 00:50:03.122699: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:50:03.128515: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:50:03.134579: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 8.3kWh, house 0.14kWh, export 0.0kWh, metric 189.59p, metric10 194.11p
2026-08-18 00:50:03.213283: Marginal costs baseline metric (no standing charge): 142.9609
2026-08-18 00:50:03.457746: Marginal energy costs matrix computed: min=8.0 max=29.53
2026-08-18 00:50:03.523891: Rate array import [{'start': 50, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1510, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 50, 'end': 1510, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:50:03.524328: - Your estimated bill for today is £1.34 and tomorrow is £2.25
2026-08-18 00:50:03.524397: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:50:03.524419: - The battery is currently at 65% and is charging to 82% for the next 40 minutes.
2026-08-18 00:50:03.524438: - For the next 48 hours there will be no solar generation.
2026-08-18 00:50:03.524455: - You have enough battery to reach the next charge.
2026-08-18 00:50:03.524473:
2026-08-18 00:50:03.569678: Plan calculation took 1.06 seconds
2026-08-18 00:50:03.572728: No high rate period found
2026-08-18 00:50:03.616598: Import threshold used for optimisation was 8.0p
2026-08-18 00:50:03.661719: Low import rate windows [0: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 1: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 2: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 3: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 4: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 5: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 6: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 7: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 8: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 9: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 23: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 24: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0]
2026-08-18 00:50:03.667286: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 00:50:03.667424: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 65%, target 100%
2026-08-18 00:50:03.667582: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:50:03.667775: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:50:03.668083: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:50:03.668193: No export window planned
2026-08-18 00:50:03.668325: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:50:03.668361: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:50:03.668495: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:50:03.668612: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:50:03.668655: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:50:03.668719: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:50:03.668848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.668892: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.668925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.668951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.668981: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669082: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669119: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669152: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669183: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669244: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669304: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669344: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669411: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669447: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:03.669620: Inverter 0 count register writes 0
2026-08-18 00:50:03.683789: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 00:50:03.684003: Recompute is saving previous plan...
2026-08-18 00:50:03.684946: Best charge window [ 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 00:50:03.684994: Best export window [ ]
2026-08-18 00:50:03.685860: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:50:03.689229: Load divergence over 8.0 hours mean 389.29W, min 297.6W, max 482.4W, std dev 39.81W, divergence 5.11%
2026-08-18 00:50:03.706951: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:50:03.707063: LoadML is_calculating False
2026-08-18 00:50:03.707143: Creating pool of 12 processes to match your CPU count
2026-08-18 00:50:03.791066: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 00:50:03.791862: Optimise levels pass started at 2026-08-18 00:50:03
2026-08-18 00:50:03.791934: Optimise all windows, total charge 24 export 1
2026-08-18 00:50:04.123659: >> Region optimisation pass width 960 gives best_metric 272.18p, best_cost 277.98p, best_cycle 40.72kWh, best_import 25.32kWh
2026-08-18 00:50:04.272503: >> Region optimisation pass width 480 gives best_metric 272.18p, best_cost 277.98p, best_cycle 40.72kWh, best_import 25.32kWh
2026-08-18 00:50:04.539547: >> Region optimisation pass width 240 gives best_metric 272.18p, best_cost 277.98p, best_cycle 40.72kWh, best_import 25.32kWh
2026-08-18 00:50:05.002352: >> Region optimisation pass width 120 gives best_metric 272.18p, best_cost 277.98p, best_cycle 40.72kWh, best_import 25.32kWh
2026-08-18 00:50:05.002578: Calculated end_record as 08-19 01:00:00 based on best_price 8.0p, next_charge_start 08-18 01:00:00, max_windows 13
2026-08-18 00:50:05.002774: Optimise levels pass ended at 2026-08-18 00:50:05, duration 1.2 seconds tried 70 combinations
2026-08-18 00:50:05.002893: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 272.18p, best_keep 0kWh, best_cycle 40.72kWh, best_carbon 0kg, best_import 25.32kWh
2026-08-18 00:50:05.022324: Starting detailed optimisation end_record 08-19 01:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 00:50:06.969191: Tweak plan optimisation started metric 127.9p, cost 134.72p
2026-08-18 00:50:07.222550: Tweak optimisation finished metric 127.9p, cost 134.72p, metric_keep 0kWh, cycle 17.26kWh, carbon 0kg, import 7.41kWh, changed 8 window(s)
2026-08-18 00:50:07.243484: Swap charge optimisation started metric 127.9p, cost 134.72p, min_improvement_swap 0.1p
2026-08-18 00:50:07.837992: Swap charge optimisation finished metric 127.9p, cost 134.72p
2026-08-18 00:50:07.926108: Pruned 1 dead plan slot(s) in 9 trial(s), nominal metric 127.02p -> 125.88p, plan now metric 128.44p, cost 133.57p, cycle 15.26kWh, import 7.27kWh
2026-08-18 00:50:07.934120: Raw charge windows [ 18-08 00:30:00 - 18-08 01:00:00 @ 8.0p 100%, 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:50:07.934392: Unclipped charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:50:07.934573: Unfiltered charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:50:07.934710: Filtered charge windows [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 00:50:07.964983: Previous plan best metric is 128.16 (cost 135.03) and new plan best metric is 127.9 (cost 134.72)
2026-08-18 00:50:07.965173: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 00:50:07.965326: Plan valid is now true after recompute was False
2026-08-18 00:50:07.989839: predict base end_record 08-19 01:00:00, final soc 8.12kWh, metric 240.54p, metric_keep 0kWh, min_soc 3.47kWh @ 08-18 23:55:00, load 15.71kWh, PV 0.0kWh
2026-08-18 00:50:08.100380: Battery has 48.0 hours left - now at 10.34kWh
2026-08-18 00:50:08.143762: predict base10 end_record 08-19 01:00:00, final soc 6.75kWh, metric 235.29p, metric_keep 0kWh, min_soc 2.87kWh @ 08-18 23:55:00, load 16.44kWh, PV 0.0kWh
2026-08-18 00:50:08.219148: predict best10 end_record 08-19 01:00:00, final soc 1.12kWh, metric 187.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.44kWh, PV 0.0kWh
2026-08-18 00:50:08.290331: predict best end_record 08-19 01:00:00, final soc 1.12kWh, metric 181.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.71kWh, PV 0.0kWh
2026-08-18 00:50:08.290419: Saving plan best values to HA entities
2026-08-18 00:50:08.428782: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:50:08.433677: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:50:08.439171: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 7.31kWh, house 0.14kWh, export 0.0kWh, metric 181.66p, metric10 187.22p
2026-08-18 00:50:08.500166: Marginal costs baseline metric (no standing charge): 135.0254
2026-08-18 00:50:08.731457: Marginal energy costs matrix computed: min=8.0 max=29.53
2026-08-18 00:50:08.789668: Rate array import [{'start': 50, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1500, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 50, 'end': 1500, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:50:08.790001: - Your estimated bill for today is £1.34 and tomorrow is £2.25
2026-08-18 00:50:08.790037: - Import rates are cheap (8.0p) for the next 4 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:50:08.790056: - The battery is currently at 65% and is charging to 82% for the next 40 minutes.
2026-08-18 00:50:08.790071: - For the next 48 hours there will be no solar generation.
2026-08-18 00:50:08.790085: - You have enough battery to reach the next charge.
2026-08-18 00:50:08.790099:
2026-08-18 00:50:08.835465: Plan calculation took 5.15 seconds
2026-08-18 00:50:08.835760: Inverter 0: Type SK Sunsynk
2026-08-18 00:50:08.835805: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:50:08.836066: Reserve min: 7%, battery_min: 7%
2026-08-18 00:50:08.836144: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:50:08.836511: Inverter 0 SoC: 10.34kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power -4533W, current battery voltage 51.2V, grid power -5416W, load power 420W, PV Power 0W
2026-08-18 00:50:08.836763: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:50:08.836881: Inverter 0 scheduled charge enable is True
2026-08-18 00:50:08.836922: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 00:50:08.837015: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:50:08.837119: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:50:08.837146: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:50:08.837176: Inverter 0 scheduled discharge enable is False
2026-08-18 00:50:08.837287: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:50:08.837335: Inverter 0 discharge windows currently []
2026-08-18 00:50:08.837371: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:50:08.837389: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:50:08.837409: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:50:08.883851: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 00:50:08.884007: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 65%, target 100%
2026-08-18 00:50:08.884134: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:50:08.884270: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:50:08.884434: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:50:08.884512: No export window planned
2026-08-18 00:50:08.884602: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:50:08.884646: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:50:08.884843: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:50:08.884974: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:50:08.885024: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:50:08.885071: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:50:08.885198: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885305: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885374: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885509: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885559: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885593: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885622: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885671: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885718: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885754: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.885978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.886014: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.886037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.886080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:50:08.886099: Inverter 0 count register writes 0
2026-08-18 00:50:08.904515: Total inverter register writes now 862
2026-08-18 00:50:08.931647: Info: Completed run status Charging
2026-08-18 00:50:08.938689: Info: record_status Charging target 65%-100.0%
2026-08-18 00:50:08.945180: Saved current settings to /config/predbat_config.json
2026-08-18 00:50:08.945519: Compare, best tariff: current metric 129.87p
2026-08-18 00:50:49.055816: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:50:49.056129: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:50:49.056203: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:50:49.056335: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:50:49.056374: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:50:49.056395: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:50:49.056413: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:52:49.259757: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:52:49.260065: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:52:49.260141: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:52:49.260310: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:52:49.260376: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:52:49.260397: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:52:49.260415: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:54:49.473765: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:54:49.474019: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:54:49.474089: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:54:49.474268: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:54:49.474312: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:54:49.474333: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:54:49.474351: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:55:00.554537: --------------- PredBat - update at 2026-08-18 00:55:00+01:00 with clock skew 0 minutes, minutes now 55
2026-08-18 00:55:00.555365: Saved current settings to /config/predbat_config.json
2026-08-18 00:55:00.555511: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 00:55:00.555589: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 00:55:00.555691: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 00:55:00.572962: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 00:55:00.573123: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 00:55:00.573398: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 00:55:00.573961: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 00:55:00.574168: Predbat mode is set to Control charge & discharge
2026-08-18 00:55:00.758239: Found 21602 load_today datapoints going back 28 days
2026-08-18 00:55:00.758370: Using load_power data to fill gaps in load_today data
2026-08-18 00:55:01.539610: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 00:55:01.539790: Zero load period starting at 2026-08-17T10:54:00+0100 (841 minutes) for 189 minutes with base value 211.1
2026-08-18 00:55:01.540591: Processing 721 30-minute periods for power integration
2026-08-18 00:55:01.720364: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 00:55:01.720474: Car charging hold False, threshold 6.0kWh
2026-08-18 00:55:01.720510: Current data so far today: load 0.3kWh, import 3.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 00:55:01.732518: Car 0 using Octopus Intelligent is unplugged
2026-08-18 00:55:01.732598: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 00:55:01.733224: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 00:55:01.733283: Standing charge is set to 46.63p
2026-08-18 00:55:01.828954: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:55:01.829215: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:55:01.829422: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 00:55:01.830531: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 00:55:01.830633: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 00:55:01.835655: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 00:55:01.836111: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 00:55:01.877642: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 00:55:01.877747: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 00:55:01.878751: High export rate found rates in range 99p to -99p
2026-08-18 00:55:01.895783: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 00:55:01.895851: Car 0 on Octopus Intelligent, no active plan
2026-08-18 00:55:01.906709: Battery level now 10.34kWh, -1hr ago 6.48kWh, at midnight 6.84kWh, battery value change in the last hour 26.56p, change today 24.08p, rate_forward 6.87p
2026-08-18 00:55:01.907060: Last hour: net energy 3.6kWh, import 3.6kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 28.8p, import 28.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 00:55:01.947781: Today's energy total net 3.6kWh, import 3.6kWh, export 0.0kWh, cost 75.43p, import 28.8p, export 0.0p, carbon 0.0kg
2026-08-18 00:55:01.947892: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 00:55:02.018159: Using weighted-bucket historical load forecast over 14 days
2026-08-18 00:55:02.041900: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 00:55:02.041990: Today's predicted so far 0.78kWh with 0.0kWh car/iBoost excluded, 3.39kWh import ignored, and 0.78kWh forecast extra.
2026-08-18 00:55:02.042016: Today's actual load so far 0.28kWh with 0.0kWh car/iBoost excluded, and 3.39kWh import ignored.
2026-08-18 00:55:02.076496: Inverter 0: Type SK Sunsynk
2026-08-18 00:55:02.076582: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 00:55:02.076750: Reserve min: 7%, battery_min: 7%
2026-08-18 00:55:02.076819: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 00:55:02.077103: Inverter 0 SoC: 10.34kW 65%, current charge rate 5000W, current discharge rate 5250W, current battery power -4536W, current battery voltage 51.2V, grid power -5417W, load power 420W, PV Power 0W
2026-08-18 00:55:02.077255: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:55:02.077341: Inverter 0 scheduled charge enable is True
2026-08-18 00:55:02.077391: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 00:55:02.077478: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 00:55:02.077598: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:55:02.077633: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:55:02.077670: Inverter 0 scheduled discharge enable is False
2026-08-18 00:55:02.077784: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:55:02.077819: Inverter 0 discharge windows currently []
2026-08-18 00:55:02.077841: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:55:02.077866: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:55:02.077883: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:55:02.132154: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 00:55:02.132256: Plan was last updated on 2026-08-18 00:50:00+01:00 and is now 5.0 minutes old
2026-08-18 00:55:02.132569: Best charge window [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 00:55:02.132618: Best export window [ ]
2026-08-18 00:55:02.133408: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 00:55:02.136635: Load divergence over 8.0 hours mean 387.84W, min 292.8W, max 514.8W, std dev 43.18W, divergence 5.57%
2026-08-18 00:55:02.152686: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 00:55:02.152797: LoadML is_calculating False
2026-08-18 00:55:02.152861: Creating pool of 12 processes to match your CPU count
2026-08-18 00:55:02.255301: predict base end_record 08-19 01:05:00, final soc 8.48kWh, metric 243.73p, metric_keep 0kWh, min_soc 3.43kWh @ 08-18 23:55:00, load 15.72kWh, PV 0.0kWh
2026-08-18 00:55:02.369368: Battery has 48.0 hours left - now at 10.34kWh
2026-08-18 00:55:02.405614: predict base10 end_record 08-19 01:05:00, final soc 7.04kWh, metric 237.93p, metric_keep 0kWh, min_soc 2.84kWh @ 08-18 23:55:00, load 16.45kWh, PV 0.0kWh
2026-08-18 00:55:02.476423: predict best10 end_record 08-19 01:05:00, final soc 1.44kWh, metric 190.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:10:00, load 16.45kWh, PV 0.0kWh
2026-08-18 00:55:02.542966: predict best end_record 08-19 01:05:00, final soc 1.51kWh, metric 184.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.72kWh, PV 0.0kWh
2026-08-18 00:55:02.543059: Saving plan best values to HA entities
2026-08-18 00:55:02.679127: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 00:55:02.683461: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 00:55:02.687651: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 7.7kWh, house 0.14kWh, export 0.0kWh, metric 184.78p, metric10 190.09p
2026-08-18 00:55:02.753497: Marginal costs baseline metric (no standing charge): 138.1425
2026-08-18 00:55:02.969957: Marginal energy costs matrix computed: min=8.0 max=29.59
2026-08-18 00:55:03.030203: Rate array import [{'start': 55, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1505, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 55, 'end': 1505, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 00:55:03.030540: - Your estimated bill for today is £1.33 and tomorrow is £2.25
2026-08-18 00:55:03.030578: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 00:55:03.030597: - The battery is currently at 65% and is charging to 82% for the next 35 minutes.
2026-08-18 00:55:03.030612: - For the next 48 hours there will be no solar generation.
2026-08-18 00:55:03.030627: - You have enough battery to reach the next charge.
2026-08-18 00:55:03.030641:
2026-08-18 00:55:03.072111: Plan calculation took 0.94 seconds
2026-08-18 00:55:03.074804: No high rate period found
2026-08-18 00:55:03.115004: Import threshold used for optimisation was 8.0p
2026-08-18 00:55:03.155273: Low import rate windows [0: 08-18 00:30:00 - 08-18 01:00:00 @ 8.0, 1: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 2: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 3: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 4: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 5: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 6: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 7: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 8: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 9: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 10: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 11: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 12: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 13: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 14: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 15: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 16: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 17: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 18: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 19: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 20: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 21: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 22: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 23: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 24: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0]
2026-08-18 00:55:03.161516: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 00:55:03.161660: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 65%, target 100%
2026-08-18 00:55:03.161807: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 00:55:03.161965: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:55:03.162175: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:55:03.162284: No export window planned
2026-08-18 00:55:03.162430: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 00:55:03.162466: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 00:55:03.162585: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 00:55:03.162681: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 00:55:03.162714: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 00:55:03.162763: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 00:55:03.162857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.162888: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.162913: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.162959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.162982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163025: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163077: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163105: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163126: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163150: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163170: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163192: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163227: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163466: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 00:55:03.163482: Inverter 0 count register writes 0
2026-08-18 00:55:03.177671: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 00:55:03.182016: Total inverter register writes now 862
2026-08-18 00:55:03.210170: Info: Completed run status Charging
2026-08-18 00:55:03.215740: Info: record_status Charging target 65%-100.0%
2026-08-18 00:55:03.222083: Saved current settings to /config/predbat_config.json
2026-08-18 00:55:03.222331: Compare, best tariff: current metric 129.87p
2026-08-18 00:55:29.437612: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 00:55:30.250704: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 00:55:34.323851: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:55:34.324210: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:55:34.324281: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:55:34.324443: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:55:34.324514: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:55:34.324559: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:55:34.324578: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:57:34.236058: Info: HAHistory: Pruning history data started.
2026-08-18 00:57:34.238118: Info: HAHistory: Pruning history data completed.
2026-08-18 00:57:34.530724: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:57:34.530995: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:57:34.531065: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:57:34.531332: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:57:34.531409: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:57:34.531445: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:57:34.531487: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 00:59:48.745745: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 00:59:48.746088: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 00:59:48.746140: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 00:59:48.746299: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 00:59:48.746343: Note: Inverter does not support discharge freeze - disabled
2026-08-18 00:59:48.746380: Note: Inverter does not support charge freeze - disabled
2026-08-18 00:59:48.746420: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:00:00.849283: --------------- PredBat - update at 2026-08-18 01:00:00+01:00 with clock skew 0 minutes, minutes now 60
2026-08-18 01:00:00.849892: Saved current settings to /config/predbat_config.json
2026-08-18 01:00:00.849986: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 01:00:00.850052: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:00:00.850111: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:00:00.865679: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:00:00.865787: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:00:00.865922: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:00:00.866447: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:00:00.866548: Predbat mode is set to Control charge & discharge
2026-08-18 01:00:01.065875: Found 21602 load_today datapoints going back 27 days
2026-08-18 01:00:01.066020: Using load_power data to fill gaps in load_today data
2026-08-18 01:00:01.946742: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:00:01.947147: Zero load period starting at 2026-08-17T10:54:00+0100 (846 minutes) for 189 minutes with base value 211.075
2026-08-18 01:00:01.948038: Processing 721 30-minute periods for power integration
2026-08-18 01:00:02.143417: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:00:02.143537: Car charging hold False, threshold 6.0kWh
2026-08-18 01:00:02.143581: Current data so far today: load 0.43kWh, import 4.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:00:02.158845: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:00:02.158969: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:00:02.159742: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:00:02.159821: Standing charge is set to 46.63p
2026-08-18 01:00:02.259623: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:00:02.259818: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:00:02.260021: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:00:02.261135: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:00:02.261246: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:00:02.265312: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:00:02.265739: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:00:02.304356: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:00:02.304476: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:00:02.305629: High export rate found rates in range 99p to -99p
2026-08-18 01:00:02.327077: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:00:02.327206: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:00:02.341539: Battery level now 10.34kWh, -1hr ago 6.84kWh, at midnight 6.84kWh, battery value change in the last hour 24.08p, change today 24.08p, rate_forward 6.87p
2026-08-18 01:00:02.341884: Last hour: net energy 4.5kWh, import 4.5kWh, export 0.0kWh, car 0kWh, load 0.42kWh, net cost 36.0p, import 36.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:00:02.387818: Today's energy total net 4.5kWh, import 4.5kWh, export 0.0kWh, cost 82.63p, import 36.0p, export 0.0p, carbon 0.0kg
2026-08-18 01:00:02.388007: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:00:02.461329: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:00:02.489286: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:00:02.489621: Today's predicted so far 0.93kWh with 0.0kWh car/iBoost excluded, 4.14kWh import ignored, and 0.93kWh forecast extra.
2026-08-18 01:00:02.489683: Today's actual load so far 0.42kWh with 0.0kWh car/iBoost excluded, and 4.14kWh import ignored.
2026-08-18 01:00:02.525479: Inverter 0: Type SK Sunsynk
2026-08-18 01:00:02.525561: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:00:02.525793: Reserve min: 7%, battery_min: 7%
2026-08-18 01:00:02.525900: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:00:02.526204: Inverter 0 SoC: 11.03kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power -4536W, current battery voltage 51.2V, grid power -5416W, load power 420W, PV Power 0W
2026-08-18 01:00:02.526411: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:00:02.526537: Inverter 0 scheduled charge enable is True
2026-08-18 01:00:02.526605: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 01:00:02.526735: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 01:00:02.526940: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:00:02.526994: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:00:02.527056: Inverter 0 scheduled discharge enable is False
2026-08-18 01:00:02.527242: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:00:02.527288: Inverter 0 discharge windows currently []
2026-08-18 01:00:02.527325: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:00:02.527364: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:00:02.527384: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:00:02.580447: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:00:02.580535: Plan was last updated on 2026-08-18 00:50:00+01:00 and is now 10.0 minutes old
2026-08-18 01:00:02.580734: Best charge window [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 01:00:02.580768: Best export window [ ]
2026-08-18 01:00:02.581472: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:00:02.584103: Load divergence over 8.0 hours mean 385.94W, min 281.4W, max 482.4W, std dev 48.08W, divergence 6.23%
2026-08-18 01:00:02.604476: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:00:02.604589: LoadML is_calculating False
2026-08-18 01:00:02.604660: Creating pool of 12 processes to match your CPU count
2026-08-18 01:00:02.730880: predict base end_record 08-19 01:10:00, final soc 8.94kWh, metric 248.94p, metric_keep 0kWh, min_soc 3.51kWh @ 08-18 23:55:00, load 15.85kWh, PV 0.0kWh
2026-08-18 01:00:02.882884: Battery has 48.0 hours left - now at 11.03kWh
2026-08-18 01:00:02.925284: predict base10 end_record 08-19 01:10:00, final soc 7.44kWh, metric 242.61p, metric_keep 0kWh, min_soc 2.91kWh @ 08-18 23:55:00, load 16.58kWh, PV 0.0kWh
2026-08-18 01:00:02.997743: predict best10 end_record 08-19 01:10:00, final soc 1.77kWh, metric 194.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.58kWh, PV 0.0kWh
2026-08-18 01:00:03.071874: predict best end_record 08-19 01:10:00, final soc 1.9kWh, metric 189.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.85kWh, PV 0.0kWh
2026-08-18 01:00:03.071984: Saving plan best values to HA entities
2026-08-18 01:00:03.241457: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:00:03.247628: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:00:03.254048: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 7.41kWh, house 0.14kWh, export 0.0kWh, metric 189.67p, metric10 194.19p
2026-08-18 01:00:03.335185: Marginal costs baseline metric (no standing charge): 143.0344
2026-08-18 01:00:03.601739: Marginal energy costs matrix computed: min=8.0 max=29.57
2026-08-18 01:00:03.674619: Rate array import [{'start': 60, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1510, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 60, 'end': 1510, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:00:03.675285: - Your estimated bill for today is £1.34 and tomorrow is £2.25
2026-08-18 01:00:03.675352: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:00:03.675384: - The battery is currently at 69% and is charging to 82% for the next 30 minutes.
2026-08-18 01:00:03.675414: - For the next 48 hours there will be no solar generation.
2026-08-18 01:00:03.675923: - You have enough battery to reach the next charge.
2026-08-18 01:00:03.675983:
2026-08-18 01:00:03.724811: Plan calculation took 1.14 seconds
2026-08-18 01:00:03.728147: No high rate period found
2026-08-18 01:00:03.779543: Import threshold used for optimisation was 8.0p
2026-08-18 01:00:03.834968: Low import rate windows [0: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 1: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 2: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 3: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 4: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 5: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 6: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 7: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 8: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 22: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 23: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0]
2026-08-18 01:00:03.841701: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 01:00:03.841823: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 69%, target 100%
2026-08-18 01:00:03.842019: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:00:03.842258: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:00:03.842531: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:00:03.842661: No export window planned
2026-08-18 01:00:03.842854: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:00:03.842896: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:00:03.843074: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:00:03.843242: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:00:03.843295: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:00:03.843396: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:00:03.843575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.843629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.843689: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.843738: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.843791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.843851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.843946: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844027: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844096: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844165: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844200: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844243: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844293: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844339: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844542: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844576: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:03.844627: Inverter 0 count register writes 0
2026-08-18 01:00:03.860966: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 01:00:03.861149: Recompute is saving previous plan...
2026-08-18 01:00:03.862046: Best charge window [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 01:00:03.862094: Best export window [ ]
2026-08-18 01:00:03.862883: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:00:03.866145: Load divergence over 8.0 hours mean 385.94W, min 281.4W, max 482.4W, std dev 48.08W, divergence 6.23%
2026-08-18 01:00:03.883014: Calculating data from yesterday for savings calculation
2026-08-18 01:00:03.894459: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1500, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 01:00:03.942125: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 147.54p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 01:00:03.958220: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 144.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 01:00:03.984630: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 147.54p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 01:00:04.021308: Yesterday: Predbat disabled was £1.48 (adjusted £1.01) vs £1.81 (adjusted £1.36), saving £-0.33 (adjusted £-0.35) with import 12.61kWh, export 0.0kWh, battery_cycle 19.9kWh, start_soc 9.96kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 01:00:04.093099: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 01:00:04.093257: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 01:00:04.106207: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:00:04.106362: LoadML is_calculating False
2026-08-18 01:00:04.106435: Creating pool of 12 processes to match your CPU count
2026-08-18 01:00:04.196358: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 01:00:04.197156: Optimise levels pass started at 2026-08-18 01:00:04
2026-08-18 01:00:04.197207: Optimise all windows, total charge 24 export 1
2026-08-18 01:00:04.535671: >> Region optimisation pass width 960 gives best_metric 273.62p, best_cost 279.41p, best_cycle 40.03kWh, best_import 24.6kWh
2026-08-18 01:00:04.676105: >> Region optimisation pass width 480 gives best_metric 273.62p, best_cost 279.41p, best_cycle 40.03kWh, best_import 24.6kWh
2026-08-18 01:00:04.929336: >> Region optimisation pass width 240 gives best_metric 273.62p, best_cost 279.41p, best_cycle 40.03kWh, best_import 24.6kWh
2026-08-18 01:00:05.473642: >> Region optimisation pass width 120 gives best_metric 273.62p, best_cost 279.41p, best_cycle 40.03kWh, best_import 24.6kWh
2026-08-18 01:00:05.473859: Calculated end_record as 08-19 01:00:00 based on best_price 8.0p, next_charge_start 08-18 01:00:00, max_windows 12
2026-08-18 01:00:05.473921: Optimise levels pass ended at 2026-08-18 01:00:05, duration 1.3 seconds tried 69 combinations
2026-08-18 01:00:05.473985: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 273.62p, best_keep 0kWh, best_cycle 40.03kWh, best_carbon 0kg, best_import 24.6kWh
2026-08-18 01:00:05.490400: Starting detailed optimisation end_record 08-19 01:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 01:00:07.563164: Tweak plan optimisation started metric 128.05p, cost 134.87p
2026-08-18 01:00:07.827763: Tweak optimisation finished metric 127.48p, cost 134.3p, metric_keep 0kWh, cycle 15.55kWh, carbon 0kg, import 6.46kWh, changed 8 window(s)
2026-08-18 01:00:07.850615: Swap charge optimisation started metric 127.48p, cost 134.3p, min_improvement_swap 0.1p
2026-08-18 01:00:08.327447: Swap charge optimisation finished metric 127.48p, cost 134.3p
2026-08-18 01:00:08.435879: Pruned 1 dead plan slot(s) in 8 trial(s), nominal metric 126.6p -> 126.03p, plan now metric 128.63p, cost 133.73p, cycle 14.55kWh, import 6.39kWh
2026-08-18 01:00:08.447723: Raw charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:00:08.448220: Unclipped charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:00:08.448528: Unfiltered charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:00:08.448780: Filtered charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:00:08.484741: Previous plan best metric is 128.25 (cost 135.11) and new plan best metric is 127.48 (cost 134.3)
2026-08-18 01:00:08.484946: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 01:00:08.485079: Plan valid is now true after recompute was False
2026-08-18 01:00:08.510523: predict base end_record 08-19 01:00:00, final soc 8.16kWh, metric 241.01p, metric_keep 0kWh, min_soc 3.51kWh @ 08-18 23:55:00, load 15.69kWh, PV 0.0kWh
2026-08-18 01:00:08.623869: Battery has 48.0 hours left - now at 11.03kWh
2026-08-18 01:00:08.670567: predict base10 end_record 08-19 01:00:00, final soc 6.79kWh, metric 235.73p, metric_keep 0kWh, min_soc 2.91kWh @ 08-18 23:55:00, load 16.42kWh, PV 0.0kWh
2026-08-18 01:00:08.744474: predict best10 end_record 08-19 01:00:00, final soc 1.12kWh, metric 187.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.42kWh, PV 0.0kWh
2026-08-18 01:00:08.825544: predict best end_record 08-19 01:00:00, final soc 1.12kWh, metric 181.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.69kWh, PV 0.0kWh
2026-08-18 01:00:08.825626: Saving plan best values to HA entities
2026-08-18 01:00:08.970963: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:00:08.976826: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:00:08.982031: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 6.42kWh, house 0.14kWh, export 0.0kWh, metric 181.74p, metric10 187.32p
2026-08-18 01:00:09.051488: Marginal costs baseline metric (no standing charge): 135.1077
2026-08-18 01:00:09.297658: Marginal energy costs matrix computed: min=8.0 max=29.57
2026-08-18 01:00:09.377533: Rate array import [{'start': 60, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1500, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 60, 'end': 1500, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:00:09.377952: - Your estimated bill for today is £1.34 and tomorrow is £2.25
2026-08-18 01:00:09.377996: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:00:09.378018: - The battery is currently at 69% and is charging to 82% for the next 30 minutes.
2026-08-18 01:00:09.378037: - For the next 48 hours there will be no solar generation.
2026-08-18 01:00:09.378059: - You have enough battery to reach the next charge.
2026-08-18 01:00:09.378076:
2026-08-18 01:00:09.431514: Plan calculation took 5.57 seconds
2026-08-18 01:00:09.431947: Inverter 0: Type SK Sunsynk
2026-08-18 01:00:09.432030: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:00:09.432325: Reserve min: 7%, battery_min: 7%
2026-08-18 01:00:09.432441: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:00:09.432871: Inverter 0 SoC: 11.03kW 69%, current charge rate 5000W, current discharge rate 5250W, current battery power -4536W, current battery voltage 51.2V, grid power -5416W, load power 420W, PV Power 0W
2026-08-18 01:00:09.433199: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:00:09.433329: Inverter 0 scheduled charge enable is True
2026-08-18 01:00:09.433429: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 01:00:09.433550: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 01:00:09.433680: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:00:09.433719: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:00:09.433757: Inverter 0 scheduled discharge enable is False
2026-08-18 01:00:09.433885: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:00:09.433922: Inverter 0 discharge windows currently []
2026-08-18 01:00:09.433945: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:00:09.433968: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:00:09.433986: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:00:09.491188: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 01:00:09.491328: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 69%, target 100%
2026-08-18 01:00:09.491437: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:00:09.491592: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:00:09.491746: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:00:09.491816: No export window planned
2026-08-18 01:00:09.491961: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:00:09.491998: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:00:09.492121: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:00:09.492214: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:00:09.492264: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:00:09.492308: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:00:09.492404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492456: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492610: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492637: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492658: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492683: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492703: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492725: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492752: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492831: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492908: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:00:09.492944: Inverter 0 count register writes 0
2026-08-18 01:00:09.515282: Total inverter register writes now 862
2026-08-18 01:00:09.549337: Info: Completed run status Charging
2026-08-18 01:00:09.557876: Info: record_status Charging target 69%-100.0%
2026-08-18 01:00:09.564773: Saved current settings to /config/predbat_config.json
2026-08-18 01:00:09.565082: Compare, best tariff: current metric 129.87p
2026-08-18 01:00:48.680584: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:00:48.680853: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:00:48.680900: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:00:48.681062: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:00:48.681103: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:00:48.681125: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:00:48.681162: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:02:48.895872: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:02:48.896178: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:02:48.896222: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:02:48.896440: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:02:48.896502: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:02:48.896527: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:02:48.896546: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:04:49.114108: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:04:49.114359: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:04:49.114420: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:04:49.114635: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:04:49.114684: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:04:49.114713: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:04:49.114742: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:05:00.196824: --------------- PredBat - update at 2026-08-18 01:05:00+01:00 with clock skew 0 minutes, minutes now 65
2026-08-18 01:05:00.197703: Saved current settings to /config/predbat_config.json
2026-08-18 01:05:00.197864: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 01:05:00.197970: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:05:00.198055: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:05:00.232639: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:05:00.232795: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:05:00.233004: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:05:00.233715: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:05:00.233856: Predbat mode is set to Control charge & discharge
2026-08-18 01:05:00.494550: Found 21602 load_today datapoints going back 27 days
2026-08-18 01:05:00.494686: Using load_power data to fill gaps in load_today data
2026-08-18 01:05:01.412334: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:05:01.412607: Zero load period starting at 2026-08-17T10:54:00+0100 (851 minutes) for 189 minutes with base value 211.05
2026-08-18 01:05:01.413390: Processing 721 30-minute periods for power integration
2026-08-18 01:05:01.605621: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:05:01.605765: Car charging hold False, threshold 6.0kWh
2026-08-18 01:05:01.605827: Current data so far today: load 0.45kWh, import 4.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:05:01.627783: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:05:01.627944: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:05:01.629009: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:05:01.629126: Standing charge is set to 46.63p
2026-08-18 01:05:01.760862: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:05:01.761168: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:05:01.761445: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:05:01.762648: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:05:01.762792: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:05:01.768038: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:05:01.768388: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:05:01.818559: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:05:01.818675: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:05:01.819875: High export rate found rates in range 99p to -99p
2026-08-18 01:05:01.844248: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:05:01.844379: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:05:01.856039: Battery level now 11.03kWh, -1hr ago 6.84kWh, at midnight 6.84kWh, battery value change in the last hour 28.81p, change today 28.81p, rate_forward 6.87p
2026-08-18 01:05:01.856500: Last hour: net energy 4.5kWh, import 4.5kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 36.0p, import 36.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:05:01.902205: Today's energy total net 4.5kWh, import 4.5kWh, export 0.0kWh, cost 82.63p, import 36.0p, export 0.0p, carbon 0.0kg
2026-08-18 01:05:01.902318: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:05:01.976695: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:05:02.008805: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:05:02.008926: Today's predicted so far 1.04kWh with 0.0kWh car/iBoost excluded, 4.1kWh import ignored, and 1.04kWh forecast extra.
2026-08-18 01:05:02.008984: Today's actual load so far 0.46kWh with 0.0kWh car/iBoost excluded, and 4.1kWh import ignored.
2026-08-18 01:05:02.048695: Inverter 0: Type SK Sunsynk
2026-08-18 01:05:02.048792: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:05:02.049041: Reserve min: 7%, battery_min: 7%
2026-08-18 01:05:02.049151: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:05:02.049534: Inverter 0 SoC: 11.37kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power -4535W, current battery voltage 51.2V, grid power -5386W, load power 390W, PV Power 0W
2026-08-18 01:05:02.049756: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:05:02.049886: Inverter 0 scheduled charge enable is True
2026-08-18 01:05:02.049969: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 01:05:02.050118: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 01:05:02.050283: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:05:02.050326: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:05:02.050430: Inverter 0 scheduled discharge enable is False
2026-08-18 01:05:02.050645: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:05:02.050697: Inverter 0 discharge windows currently []
2026-08-18 01:05:02.050740: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:05:02.050787: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:05:02.050821: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:05:02.111678: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:05:02.111814: Plan was last updated on 2026-08-18 01:00:00+01:00 and is now 5.0 minutes old
2026-08-18 01:05:02.112262: Best charge window [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 01:05:02.112351: Best export window [ ]
2026-08-18 01:05:02.113240: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:05:02.116843: Load divergence over 8.0 hours mean 384.66W, min 263.4W, max 504.0W, std dev 60.99W, divergence 7.93%
2026-08-18 01:05:02.134194: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:05:02.134305: LoadML is_calculating False
2026-08-18 01:05:02.134406: Creating pool of 12 processes to match your CPU count
2026-08-18 01:05:02.260236: predict base end_record 08-19 01:05:00, final soc 8.6kWh, metric 241.9p, metric_keep 0kWh, min_soc 3.56kWh @ 08-18 23:55:00, load 15.72kWh, PV 0.0kWh
2026-08-18 01:05:02.384184: Battery has 48.0 hours left - now at 11.37kWh
2026-08-18 01:05:02.422300: predict base10 end_record 08-19 01:05:00, final soc 7.17kWh, metric 236.08p, metric_keep 0kWh, min_soc 2.97kWh @ 08-18 23:55:00, load 16.45kWh, PV 0.0kWh
2026-08-18 01:05:02.487873: predict best10 end_record 08-19 01:05:00, final soc 1.44kWh, metric 187.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.45kWh, PV 0.0kWh
2026-08-18 01:05:02.570133: predict best end_record 08-19 01:05:00, final soc 1.51kWh, metric 182.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.72kWh, PV 0.0kWh
2026-08-18 01:05:02.570208: Saving plan best values to HA entities
2026-08-18 01:05:02.728131: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:05:02.732637: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:05:02.737060: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 6.47kWh, house 0.14kWh, export 0.0kWh, metric 182.16p, metric10 187.27p
2026-08-18 01:05:02.803208: Marginal costs baseline metric (no standing charge): 135.5307
2026-08-18 01:05:03.026022: Marginal energy costs matrix computed: min=8.0 max=29.56
2026-08-18 01:05:03.085371: Rate array import [{'start': 65, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1505, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 65, 'end': 1505, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:05:03.085795: - Your estimated bill for today is £1.30 and tomorrow is £2.24
2026-08-18 01:05:03.085837: - Import rates are cheap (8.0p) for the next 4 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:05:03.085860: - The battery is currently at 71% and is charging to 82% for the next 25 minutes.
2026-08-18 01:05:03.085878: - For the next 48 hours there will be no solar generation.
2026-08-18 01:05:03.085896: - You have enough battery to reach the next charge.
2026-08-18 01:05:03.085913:
2026-08-18 01:05:03.136022: Plan calculation took 1.02 seconds
2026-08-18 01:05:03.140564: No high rate period found
2026-08-18 01:05:03.191999: Import threshold used for optimisation was 8.0p
2026-08-18 01:05:03.246443: Low import rate windows [0: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 1: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 2: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 3: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 4: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 5: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 6: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 7: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 8: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 22: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 23: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 24: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0]
2026-08-18 01:05:03.251613: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 01:05:03.251722: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 71%, target 100%
2026-08-18 01:05:03.251924: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:05:03.252166: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:05:03.252436: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:05:03.252545: No export window planned
2026-08-18 01:05:03.252692: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:05:03.252727: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:05:03.252896: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:05:03.253025: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:05:03.253079: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:05:03.253152: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:05:03.253302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253537: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253570: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253593: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253642: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253666: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253691: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253713: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253898: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:05:03.253914: Inverter 0 count register writes 0
2026-08-18 01:05:03.271061: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 01:05:03.275578: Total inverter register writes now 862
2026-08-18 01:05:03.317477: Info: Completed run status Charging
2026-08-18 01:05:03.325734: Info: record_status Charging target 71%-100.0%
2026-08-18 01:05:03.335082: Saved current settings to /config/predbat_config.json
2026-08-18 01:05:03.335442: Compare, best tariff: current metric 129.87p
2026-08-18 01:05:34.451190: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:05:34.451511: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:05:34.451574: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:05:34.451723: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:05:34.451778: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:05:34.451820: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:05:34.451839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:07:48.678629: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:07:48.678914: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:07:48.678958: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:07:48.679113: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:07:48.679154: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:07:48.679177: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:07:48.679195: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:09:48.904896: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:09:48.905138: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:09:48.905174: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:09:48.905301: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:09:48.905336: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:09:48.905380: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:09:48.905397: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:10:00.992314: --------------- PredBat - update at 2026-08-18 01:10:00+01:00 with clock skew 0 minutes, minutes now 70
2026-08-18 01:10:00.993087: Saved current settings to /config/predbat_config.json
2026-08-18 01:10:00.993210: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 01:10:00.993316: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:10:00.993401: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:10:01.017227: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:10:01.017405: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:10:01.017689: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:10:01.018476: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:10:01.018682: Predbat mode is set to Control charge & discharge
2026-08-18 01:10:01.218714: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:10:01.218822: Using load_power data to fill gaps in load_today data
2026-08-18 01:10:02.071335: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:10:02.071522: Zero load period starting at 2026-08-17T10:54:00+0100 (856 minutes) for 189 minutes with base value 211.025
2026-08-18 01:10:02.072367: Processing 721 30-minute periods for power integration
2026-08-18 01:10:02.263771: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:10:02.263888: Car charging hold False, threshold 6.0kWh
2026-08-18 01:10:02.263979: Current data so far today: load 0.55kWh, import 5.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:10:02.278722: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:10:02.278812: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:10:02.279508: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:10:02.279593: Standing charge is set to 46.63p
2026-08-18 01:10:02.382219: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:10:02.382444: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:10:02.382640: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:10:02.383730: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:10:02.383832: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:10:02.389178: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:10:02.389577: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:10:02.434231: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:10:02.434367: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:10:02.435650: High export rate found rates in range 99p to -99p
2026-08-18 01:10:02.457888: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:10:02.458023: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:10:02.471096: Battery level now 11.37kWh, -1hr ago 7.18kWh, at midnight 6.84kWh, battery value change in the last hour 28.81p, change today 31.12p, rate_forward 6.87p
2026-08-18 01:10:02.471446: Last hour: net energy 4.95kWh, import 4.95kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 39.6p, import 39.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:10:02.517523: Today's energy total net 5.4kWh, import 5.4kWh, export 0.0kWh, cost 89.83p, import 43.2p, export 0.0p, carbon 0.0kg
2026-08-18 01:10:02.517652: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:10:02.589025: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:10:02.616148: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:10:02.616448: Today's predicted so far 1.09kWh with 0.0kWh car/iBoost excluded, 4.93kWh import ignored, and 1.09kWh forecast extra.
2026-08-18 01:10:02.616498: Today's actual load so far 0.53kWh with 0.0kWh car/iBoost excluded, and 4.93kWh import ignored.
2026-08-18 01:10:02.656423: Inverter 0: Type SK Sunsynk
2026-08-18 01:10:02.656506: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:10:02.656708: Reserve min: 7%, battery_min: 7%
2026-08-18 01:10:02.656792: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:10:02.657058: Inverter 0 SoC: 11.72kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power -4537W, current battery voltage 51.2V, grid power -5381W, load power 385W, PV Power 0W
2026-08-18 01:10:02.657235: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:10:02.657329: Inverter 0 scheduled charge enable is True
2026-08-18 01:10:02.657372: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 01:10:02.657467: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 01:10:02.657607: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:10:02.657647: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:10:02.657684: Inverter 0 scheduled discharge enable is False
2026-08-18 01:10:02.657824: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:10:02.657861: Inverter 0 discharge windows currently []
2026-08-18 01:10:02.657884: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:10:02.657902: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:10:02.657924: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:10:02.716118: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:10:02.716219: Plan was last updated on 2026-08-18 01:00:00+01:00 and is now 10.0 minutes old
2026-08-18 01:10:02.716455: Best charge window [ 18-08 00:30:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 91%, 19-08 01:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:00:00 @ 8.0p 100% ]
2026-08-18 01:10:02.716497: Best export window [ ]
2026-08-18 01:10:02.717246: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:10:02.720361: Load divergence over 8.0 hours mean 384.61W, min 262.2W, max 502.8W, std dev 57.05W, divergence 7.42%
2026-08-18 01:10:02.739208: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:10:02.739342: LoadML is_calculating False
2026-08-18 01:10:02.739409: Creating pool of 12 processes to match your CPU count
2026-08-18 01:10:02.853852: predict base end_record 08-19 01:10:00, final soc 8.96kWh, metric 249.17p, metric_keep 0kWh, min_soc 3.53kWh @ 08-18 23:55:00, load 15.82kWh, PV 0.0kWh
2026-08-18 01:10:02.991246: Battery has 48.0 hours left - now at 11.72kWh
2026-08-18 01:10:03.034749: predict base10 end_record 08-19 01:10:00, final soc 7.46kWh, metric 242.78p, metric_keep 0kWh, min_soc 2.93kWh @ 08-18 23:55:00, load 16.55kWh, PV 0.0kWh
2026-08-18 01:10:03.107031: predict best10 end_record 08-19 01:10:00, final soc 1.77kWh, metric 194.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:15:00, load 16.55kWh, PV 0.0kWh
2026-08-18 01:10:03.182047: predict best end_record 08-19 01:10:00, final soc 1.9kWh, metric 189.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:50:00, load 15.82kWh, PV 0.0kWh
2026-08-18 01:10:03.182148: Saving plan best values to HA entities
2026-08-18 01:10:03.333801: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:10:03.338210: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:10:03.342470: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0, 16.0]kWh, export []kWh gives import battery 6.51kWh, house 0.14kWh, export 0.0kWh, metric 189.68p, metric10 194.24p
2026-08-18 01:10:03.415406: Marginal costs baseline metric (no standing charge): 143.0504
2026-08-18 01:10:03.686999: Marginal energy costs matrix computed: min=8.0 max=29.54
2026-08-18 01:10:03.751123: Rate array import [{'start': 70, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1510, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 70, 'end': 1510, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:10:03.751456: - Your estimated bill for today is £1.34 and tomorrow is £2.25
2026-08-18 01:10:03.751492: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:10:03.751511: - The battery is currently at 73% and is charging to 82% for the next 20 minutes.
2026-08-18 01:10:03.751526: - For the next 48 hours there will be no solar generation.
2026-08-18 01:10:03.751557: - You have enough battery to reach the next charge.
2026-08-18 01:10:03.751573:
2026-08-18 01:10:03.792501: Plan calculation took 1.08 seconds
2026-08-18 01:10:03.795647: No high rate period found
2026-08-18 01:10:03.845873: Import threshold used for optimisation was 8.0p
2026-08-18 01:10:03.897287: Low import rate windows [0: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 1: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 2: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 3: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 4: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 5: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 6: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 7: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 8: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 22: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 23: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 24: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0]
2026-08-18 01:10:03.902676: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 00:30:00
2026-08-18 01:10:03.902802: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 73%, target 100%
2026-08-18 01:10:03.902976: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:10:03.903208: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:10:03.903490: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:10:03.903622: No export window planned
2026-08-18 01:10:03.903791: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:10:03.903834: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 01:10:03.904073: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 01:10:03.904201: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:10:03.904246: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:10:03.904313: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:10:03.904446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904536: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904704: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904760: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904816: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904866: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904913: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.904958: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905001: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905047: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905212: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905252: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905341: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905376: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:03.905404: Inverter 0 count register writes 0
2026-08-18 01:10:03.919557: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 01:10:03.919718: Recompute is saving previous plan...
2026-08-18 01:10:03.920926: Best charge window [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:10:03.920987: Best export window [ ]
2026-08-18 01:10:03.922032: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:10:03.924580: Load divergence over 8.0 hours mean 384.61W, min 262.2W, max 502.8W, std dev 57.05W, divergence 7.42%
2026-08-18 01:10:03.943817: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:10:03.943959: LoadML is_calculating False
2026-08-18 01:10:03.944027: Creating pool of 12 processes to match your CPU count
2026-08-18 01:10:04.030335: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 01:10:04.031298: Optimise levels pass started at 2026-08-18 01:10:04
2026-08-18 01:10:04.031356: Optimise all windows, total charge 24 export 1
2026-08-18 01:10:04.394760: >> Region optimisation pass width 960 gives best_metric 274.95p, best_cost 280.75p, best_cycle 39.31kWh, best_import 23.86kWh
2026-08-18 01:10:04.526922: >> Region optimisation pass width 480 gives best_metric 274.95p, best_cost 280.75p, best_cycle 39.31kWh, best_import 23.86kWh
2026-08-18 01:10:04.753443: >> Region optimisation pass width 240 gives best_metric 274.95p, best_cost 280.75p, best_cycle 39.31kWh, best_import 23.86kWh
2026-08-18 01:10:05.286938: >> Region optimisation pass width 120 gives best_metric 274.95p, best_cost 280.75p, best_cycle 39.31kWh, best_import 23.86kWh
2026-08-18 01:10:05.287140: Calculated end_record as 08-19 01:30:00 based on best_price 8.0p, next_charge_start 08-18 01:30:00, max_windows 13
2026-08-18 01:10:05.287197: Optimise levels pass ended at 2026-08-18 01:10:05, duration 1.3 seconds tried 57 combinations
2026-08-18 01:10:05.287261: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 274.95p, best_keep 0kWh, best_cycle 39.31kWh, best_carbon 0kg, best_import 23.86kWh
2026-08-18 01:10:05.304238: Starting detailed optimisation end_record 08-19 01:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 01:10:07.516138: Tweak plan optimisation started metric 131.81p, cost 138.62p
2026-08-18 01:10:07.790375: Tweak optimisation finished metric 131.24p, cost 138.05p, metric_keep 0kWh, cycle 14.84kWh, carbon 0kg, import 6.03kWh, changed 8 window(s)
2026-08-18 01:10:07.808864: Swap charge optimisation started metric 131.24p, cost 138.05p, min_improvement_swap 0.1p
2026-08-18 01:10:08.374641: Swap charge optimisation finished metric 131.24p, cost 138.05p
2026-08-18 01:10:08.487647: Pruned 1 dead plan slot(s) in 8 trial(s), nominal metric 130.35p -> 129.78p, plan now metric 132.34p, cost 137.48p, cycle 13.84kWh, import 5.96kWh
2026-08-18 01:10:08.499461: Raw charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:10:08.499827: Unclipped charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:10:08.500147: Unfiltered charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:10:08.500398: Filtered charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:10:08.540249: Previous plan best metric is 135.84 (cost 158.77) and new plan best metric is 131.24 (cost 138.05)
2026-08-18 01:10:08.542583: New plan metric is significantly better from previous plan, using new plan
2026-08-18 01:10:08.543266: Plan valid is now true after recompute was False
2026-08-18 01:10:08.575270: predict base end_record 08-19 01:30:00, final soc 10.51kWh, metric 264.89p, metric_keep 0kWh, min_soc 3.53kWh @ 08-18 23:55:00, load 16.12kWh, PV 0.0kWh
2026-08-18 01:10:08.681171: Battery has 48.0 hours left - now at 11.72kWh
2026-08-18 01:10:08.722688: predict base10 end_record 08-19 01:30:00, final soc 8.75kWh, metric 256.4p, metric_keep 0kWh, min_soc 2.93kWh @ 08-18 23:55:00, load 16.86kWh, PV 0.0kWh
2026-08-18 01:10:08.796309: predict best10 end_record 08-19 01:30:00, final soc 1.12kWh, metric 201.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.86kWh, PV 0.0kWh
2026-08-18 01:10:08.878893: predict best end_record 08-19 01:30:00, final soc 1.12kWh, metric 184.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.12kWh, PV 0.0kWh
2026-08-18 01:10:08.878977: Saving plan best values to HA entities
2026-08-18 01:10:09.032030: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:10:09.038739: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:10:09.045438: Best charging limit SoC's [16.0, 13.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.16kWh, house 1.79kWh, export 0.0kWh, metric 184.11p, metric10 201.19p
2026-08-18 01:10:09.137062: Marginal costs baseline metric (no standing charge): 137.4784
2026-08-18 01:10:09.433832: Marginal energy costs matrix computed: min=8.0 max=33.39
2026-08-18 01:10:09.503988: Rate array import [{'start': 70, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1530, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 70, 'end': 1530, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:10:09.504452: - Your estimated bill for today is £1.26 and tomorrow is £2.31
2026-08-18 01:10:09.504502: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:10:09.504542: - The battery is currently at 73% and is charging to 83% for the next 20 minutes.
2026-08-18 01:10:09.504563: - For the next 48 hours there will be no solar generation.
2026-08-18 01:10:09.504581: - You will run out of battery in 22 hours.
2026-08-18 01:10:09.504598:
2026-08-18 01:10:09.553040: Plan calculation took 5.63 seconds
2026-08-18 01:10:09.553467: Inverter 0: Type SK Sunsynk
2026-08-18 01:10:09.553564: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:10:09.553807: Reserve min: 7%, battery_min: 7%
2026-08-18 01:10:09.553889: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:10:09.554242: Inverter 0 SoC: 11.72kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power -4537W, current battery voltage 51.2V, grid power -5381W, load power 385W, PV Power 0W
2026-08-18 01:10:09.554514: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:10:09.554704: Inverter 0 scheduled charge enable is True
2026-08-18 01:10:09.554769: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 01:10:09.554924: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 100.0%, power 5.0kW
2026-08-18 01:10:09.555115: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:10:09.555162: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:10:09.555202: Inverter 0 scheduled discharge enable is False
2026-08-18 01:10:09.555358: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 01:10:09.555399: Inverter 0 discharge windows currently []
2026-08-18 01:10:09.555422: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:10:09.555445: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:10:09.555463: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:10:09.616634: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:00:00
2026-08-18 01:10:09.616801: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 73%, target 100%
2026-08-18 01:10:09.617023: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:10:09.617263: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:10:09.617540: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:10:09.617649: Inverter 0 set new demand (idle) start time to 04:30:00 was 05:00:00
2026-08-18 01:10:14.626467: Inverter 0 write_and_poll_value: Wrote 04:30:00 to idle_start_time, successfully now 04:30:00
2026-08-18 01:10:19.634289: Inverter 0 write_and_poll_value: Wrote 04:30:00 to charge_end_time, successfully now 04:30:00
2026-08-18 01:10:19.634402: Inverter 0 Updated start and end charge window to 23:30:00 - 04:30:00 (old 23:30:00 - 05:00:00)
2026-08-18 01:10:19.634446: No export window planned
2026-08-18 01:10:19.634629: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:10:19.634672: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:10:19.634861: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:10:19.634985: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:10:19.635033: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:10:19.635082: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:10:19.635204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:19.635244: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:19.635273: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:19.635301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:19.635326: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:19.635353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:19.635377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:19.635434: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:10:19.726645: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:10:19.829903: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:10:19.848900: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:10:19.859607: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:10:19.962681: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:10:20.065537: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-18 01:10:20.117604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:20.117716: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:20.117759: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:20.117812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:20.117861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:20.117889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:20.117927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:10:20.117961: Inverter 0 count register writes 0
2026-08-18 01:10:20.143327: Total inverter register writes now 862
2026-08-18 01:10:20.178099: Info: Completed run status Charging
2026-08-18 01:10:20.185603: Info: record_status Charging target 73%-100.0%
2026-08-18 01:10:20.192263: Saved current settings to /config/predbat_config.json
2026-08-18 01:10:20.192576: Compare, best tariff: current metric 129.87p
2026-08-18 01:11:04.325303: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:11:04.325673: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:11:04.325731: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:11:04.325947: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:11:04.326001: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:11:04.326033: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:11:04.326063: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:13:04.561327: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:13:04.561583: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:13:04.561630: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:13:04.561799: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:13:04.561841: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:13:04.561863: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:13:04.561881: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:15:00.777191: --------------- PredBat - update at 2026-08-18 01:15:00+01:00 with clock skew 0 minutes, minutes now 75
2026-08-18 01:15:00.777896: Saved current settings to /config/predbat_config.json
2026-08-18 01:15:06.921396: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:15:06.921539: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:15:06.940412: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:15:06.940530: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:15:06.940690: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:15:06.941322: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:15:06.941483: Predbat mode is set to Control charge & discharge
2026-08-18 01:15:07.141344: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:15:07.141487: Using load_power data to fill gaps in load_today data
2026-08-18 01:15:08.038067: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:15:08.038270: Zero load period starting at 2026-08-17T10:54:00+0100 (861 minutes) for 189 minutes with base value 211.0
2026-08-18 01:15:08.039268: Processing 721 30-minute periods for power integration
2026-08-18 01:15:08.241854: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:15:08.241974: Car charging hold False, threshold 6.0kWh
2026-08-18 01:15:08.242020: Current data so far today: load 0.6kWh, import 5.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:15:08.258507: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:15:08.258607: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:15:08.259411: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:15:08.259482: Standing charge is set to 46.63p
2026-08-18 01:15:08.359153: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:15:08.359640: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:15:08.359951: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:15:08.361068: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:15:08.361178: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:15:08.366681: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:15:08.367091: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:15:08.414491: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:15:08.414619: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:15:08.415947: High export rate found rates in range 99p to -99p
2026-08-18 01:15:08.438857: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:15:08.438969: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:15:08.450995: Battery level now 11.72kWh, -1hr ago 7.53kWh, at midnight 6.84kWh, battery value change in the last hour 28.81p, change today 33.54p, rate_forward 6.87p
2026-08-18 01:15:08.451339: Last hour: net energy 4.5kWh, import 4.5kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 36.0p, import 36.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:15:08.497212: Today's energy total net 5.4kWh, import 5.4kWh, export 0.0kWh, cost 89.83p, import 43.2p, export 0.0p, carbon 0.0kg
2026-08-18 01:15:08.497325: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:15:08.569082: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:15:08.596172: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:15:08.596473: Today's predicted so far 1.14kWh with 0.0kWh car/iBoost excluded, 4.95kWh import ignored, and 1.14kWh forecast extra.
2026-08-18 01:15:08.596519: Today's actual load so far 0.56kWh with 0.0kWh car/iBoost excluded, and 4.95kWh import ignored.
2026-08-18 01:15:08.633418: Inverter 0: Type SK Sunsynk
2026-08-18 01:15:08.633891: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:15:08.634137: Reserve min: 7%, battery_min: 7%
2026-08-18 01:15:08.634215: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:15:08.634520: Inverter 0 SoC: 11.72kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power -4535W, current battery voltage 51.2V, grid power -5409W, load power 412W, PV Power 0W
2026-08-18 01:15:08.634677: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:15:08.634764: Inverter 0 scheduled charge enable is True
2026-08-18 01:15:08.634829: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:15:08.634921: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 100.0%, power 5.0kW
2026-08-18 01:15:08.635041: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:15:08.635123: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:15:08.635180: Inverter 0 scheduled discharge enable is False
2026-08-18 01:15:08.635318: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:15:08.635360: Inverter 0 discharge windows currently []
2026-08-18 01:15:08.635409: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:15:08.635439: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:15:08.635459: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:15:08.685707: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:15:08.685819: Plan was last updated on 2026-08-18 01:10:00+01:00 and is now 5.0 minutes old
2026-08-18 01:15:08.685992: Best charge window [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:15:08.686024: Best export window [ ]
2026-08-18 01:15:08.686610: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:15:08.689106: Load divergence over 8.0 hours mean 384.55W, min 274.2W, max 502.2W, std dev 54.08W, divergence 7.03%
2026-08-18 01:15:08.706627: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:15:08.706747: LoadML is_calculating False
2026-08-18 01:15:08.706838: Creating pool of 12 processes to match your CPU count
2026-08-18 01:15:08.813250: predict base end_record 08-19 01:35:00, final soc 10.57kWh, metric 265.72p, metric_keep 0kWh, min_soc 3.19kWh @ 08-18 23:55:00, load 16.17kWh, PV 0.0kWh
2026-08-18 01:15:08.933197: Battery has 48.0 hours left - now at 11.72kWh
2026-08-18 01:15:08.977387: predict base10 end_record 08-19 01:35:00, final soc 8.73kWh, metric 256.56p, metric_keep 0kWh, min_soc 2.58kWh @ 08-18 23:55:00, load 16.91kWh, PV 0.0kWh
2026-08-18 01:15:09.056143: predict best10 end_record 08-19 01:35:00, final soc 1.44kWh, metric 204.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.91kWh, PV 0.0kWh
2026-08-18 01:15:09.135379: predict best end_record 08-19 01:35:00, final soc 1.51kWh, metric 187.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.17kWh, PV 0.0kWh
2026-08-18 01:15:09.135470: Saving plan best values to HA entities
2026-08-18 01:15:09.314308: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:15:09.321298: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:15:09.326962: Best charging limit SoC's [16.0, 13.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.56kWh, house 1.81kWh, export 0.0kWh, metric 187.42p, metric10 204.12p
2026-08-18 01:15:09.390076: Marginal costs baseline metric (no standing charge): 140.7821
2026-08-18 01:15:09.662421: Marginal energy costs matrix computed: min=8.0 max=33.42
2026-08-18 01:15:09.721026: Rate array import [{'start': 75, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1535, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 75, 'end': 1535, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:15:09.721352: - Your estimated bill for today is £1.26 and tomorrow is £2.31
2026-08-18 01:15:09.721387: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:15:09.721406: - The battery is currently at 73% and is charging to 83% for the next 15 minutes.
2026-08-18 01:15:09.721421: - For the next 48 hours there will be no solar generation.
2026-08-18 01:15:09.721435: - You will run out of battery in 22 hours.
2026-08-18 01:15:09.721449:
2026-08-18 01:15:09.762017: Plan calculation took 1.08 seconds
2026-08-18 01:15:09.767502: No high rate period found
2026-08-18 01:15:09.812128: Import threshold used for optimisation was 8.0p
2026-08-18 01:15:09.866406: Low import rate windows [0: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 1: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 2: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 3: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 4: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 5: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 6: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 7: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 8: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 22: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 23: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 24: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0]
2026-08-18 01:15:09.873187: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:00:00
2026-08-18 01:15:09.873308: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 73%, target 100%
2026-08-18 01:15:09.873470: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:15:09.873660: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:15:09.873921: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:15:09.874026: No export window planned
2026-08-18 01:15:09.874196: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:15:09.874235: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:15:09.874377: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:15:09.874489: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:15:09.874530: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:15:09.874596: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:15:09.874710: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.874754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.874804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.874835: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.874889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.874917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.874942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.874991: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875042: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875092: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875121: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875146: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875181: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875211: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875274: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875309: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875335: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875368: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875393: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875420: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:15:09.875467: Inverter 0 count register writes 0
2026-08-18 01:15:09.892012: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 01:15:09.897197: Total inverter register writes now 862
2026-08-18 01:15:09.932602: Info: Completed run status Charging
2026-08-18 01:15:09.946284: Info: record_status Charging target 73%-100.0%
2026-08-18 01:15:09.952542: Saved current settings to /config/predbat_config.json
2026-08-18 01:15:09.952890: Compare, best tariff: current metric 129.87p
2026-08-18 01:15:49.078089: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:15:49.078405: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:15:49.078463: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:15:49.078680: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:15:49.078782: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:15:49.078826: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:15:49.078847: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:16:26.364805: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 01:16:27.435333: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:16:27.435513: Zero load period starting at 2026-08-17T10:54:00+0100 (861 minutes) for 189 minutes with base value 405.0
2026-08-18 01:16:27.436190: Processing 1345 30-minute periods for power integration
2026-08-18 01:16:27.532457: ML Component: Car charging hold False, car energy reported load False
2026-08-18 01:16:27.634271: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:16:27.751010: ML Temperature data points: 48886
2026-08-18 01:16:28.001972: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 01:16:28.041395: ML Component: Data fetch completed, load data age 59.0 days, 17127 data points
2026-08-18 01:16:28.041503: ML Component: No training needed, model age is 1.16 hours
2026-08-18 01:16:28.041578: ML Component: Generating predictions load data age 59.0 days, 17127 data points
2026-08-18 01:16:28.175577: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0409 max_dow {0: 0.08633055561814043, 1: 0.09810624981913715, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 01:16:29.792572: ML Component: Generated 576 predictions (total 29.59 kWh over 48h)
2026-08-18 01:16:29.836482: ML Component: Prediction cycle completed
2026-08-18 01:16:29.975614: ML Component: Saved 17127 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 01:17:49.363462: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:17:49.363870: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:17:49.363969: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:17:49.364167: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:17:49.364214: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:17:49.364240: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:17:49.364283: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:19:49.629766: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:19:49.630123: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:19:49.630181: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:19:49.630373: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:19:49.630442: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:19:49.630484: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:19:49.630519: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:20:00.736180: --------------- PredBat - update at 2026-08-18 01:20:00+01:00 with clock skew 0 minutes, minutes now 80
2026-08-18 01:20:00.736923: Saved current settings to /config/predbat_config.json
2026-08-18 01:20:00.737053: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 01:20:00.737122: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:20:00.737235: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:20:00.758611: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:20:00.758784: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:20:00.759039: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:20:00.759872: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:20:00.760086: Predbat mode is set to Control charge & discharge
2026-08-18 01:20:01.005360: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:20:01.005521: Using load_power data to fill gaps in load_today data
2026-08-18 01:20:01.957776: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:20:01.957971: Zero load period starting at 2026-08-17T10:54:00+0100 (866 minutes) for 189 minutes with base value 210.95
2026-08-18 01:20:01.958771: Processing 721 30-minute periods for power integration
2026-08-18 01:20:02.176560: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:20:02.176723: Car charging hold False, threshold 6.0kWh
2026-08-18 01:20:02.176779: Current data so far today: load 0.5kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:20:02.193663: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:20:02.193807: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:20:02.194643: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:20:02.194720: Standing charge is set to 46.63p
2026-08-18 01:20:02.298702: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:20:02.298941: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:20:02.299156: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:20:02.300470: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:20:02.300584: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:20:02.305708: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:20:02.306045: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:20:02.345941: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:20:02.346062: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:20:02.347273: High export rate found rates in range 99p to -99p
2026-08-18 01:20:02.367051: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:20:02.367477: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:20:02.381256: Battery level now 11.72kWh, -1hr ago 7.88kWh, at midnight 6.84kWh, battery value change in the last hour 26.39p, change today 33.54p, rate_forward 6.87p
2026-08-18 01:20:02.381689: Last hour: net energy 4.95kWh, import 4.95kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 39.6p, import 39.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:20:02.436626: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-18 01:20:02.436744: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:20:02.512117: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:20:02.542255: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:20:02.542353: Today's predicted so far 1.19kWh with 0.0kWh car/iBoost excluded, 5.88kWh import ignored, and 1.19kWh forecast extra.
2026-08-18 01:20:02.542410: Today's actual load so far 0.47kWh with 0.0kWh car/iBoost excluded, and 5.88kWh import ignored.
2026-08-18 01:20:02.586551: Inverter 0: Type SK Sunsynk
2026-08-18 01:20:02.586659: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:20:02.586893: Reserve min: 7%, battery_min: 7%
2026-08-18 01:20:02.586980: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:20:02.587289: Inverter 0 SoC: 12.09kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power -4537W, current battery voltage 51.2V, grid power -5394W, load power 398W, PV Power 0W
2026-08-18 01:20:02.587488: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:20:02.587599: Inverter 0 scheduled charge enable is True
2026-08-18 01:20:02.587664: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:20:02.587804: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 100.0%, power 5.0kW
2026-08-18 01:20:02.588020: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:20:02.588078: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:20:02.588139: Inverter 0 scheduled discharge enable is False
2026-08-18 01:20:02.588333: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:20:02.588393: Inverter 0 discharge windows currently []
2026-08-18 01:20:02.588434: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:20:02.588473: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:20:02.588495: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:20:02.670940: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:20:02.671050: Plan was last updated on 2026-08-18 01:10:00+01:00 and is now 10.0 minutes old
2026-08-18 01:20:02.671316: Best charge window [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:20:02.671384: Best export window [ ]
2026-08-18 01:20:02.672228: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:20:02.676136: Load divergence over 8.0 hours mean 386.02W, min 297.6W, max 482.4W, std dev 40.12W, divergence 5.2%
2026-08-18 01:20:02.698101: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:20:02.698226: LoadML is_calculating False
2026-08-18 01:20:02.698311: Creating pool of 12 processes to match your CPU count
2026-08-18 01:20:02.836459: predict base end_record 08-19 01:40:00, final soc 10.94kWh, metric 272.86p, metric_keep 0kWh, min_soc 3.18kWh @ 08-18 23:55:00, load 16.06kWh, PV 0.0kWh
2026-08-18 01:20:02.994206: Battery has 48.0 hours left - now at 12.09kWh
2026-08-18 01:20:03.047050: predict base10 end_record 08-19 01:40:00, final soc 9.03kWh, metric 263.12p, metric_keep 0kWh, min_soc 2.56kWh @ 08-18 23:55:00, load 16.8kWh, PV 0.0kWh
2026-08-18 01:20:03.136534: predict best10 end_record 08-19 01:40:00, final soc 1.77kWh, metric 210.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.8kWh, PV 0.0kWh
2026-08-18 01:20:03.227198: predict best end_record 08-19 01:40:00, final soc 1.9kWh, metric 194.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.06kWh, PV 0.0kWh
2026-08-18 01:20:03.227309: Saving plan best values to HA entities
2026-08-18 01:20:03.404458: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:20:03.410468: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:20:03.416940: Best charging limit SoC's [16.0, 13.5, 16.0, 16.0]kWh, export []kWh gives import battery 4.58kWh, house 1.8kWh, export 0.0kWh, metric 194.69p, metric10 210.72p
2026-08-18 01:20:03.498605: Marginal costs baseline metric (no standing charge): 148.0564
2026-08-18 01:20:03.778510: Marginal energy costs matrix computed: min=8.0 max=33.4
2026-08-18 01:20:03.856206: Rate array import [{'start': 80, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1540, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 80, 'end': 1540, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:20:03.856778: - Your estimated bill for today is £1.29 and tomorrow is £2.31
2026-08-18 01:20:03.856855: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:20:03.856910: - The battery is currently at 76% and is charging to 83% for the next 10 minutes.
2026-08-18 01:20:03.856939: - For the next 48 hours there will be no solar generation.
2026-08-18 01:20:03.856966: - You will run out of battery in 22 hours.
2026-08-18 01:20:03.857015:
2026-08-18 01:20:03.915340: Plan calculation took 1.24 seconds
2026-08-18 01:20:03.920548: No high rate period found
2026-08-18 01:20:03.984461: Import threshold used for optimisation was 8.0p
2026-08-18 01:20:04.063320: Low import rate windows [0: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 1: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 2: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 3: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 4: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 5: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 6: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 7: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 8: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 22: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 23: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 24: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0]
2026-08-18 01:20:04.071550: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:00:00
2026-08-18 01:20:04.071699: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 76%, target 100%
2026-08-18 01:20:04.071872: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:20:04.072208: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:20:04.072542: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:20:04.072687: No export window planned
2026-08-18 01:20:04.072893: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:20:04.072950: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:20:04.073208: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:20:04.073353: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:20:04.073416: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:20:04.073507: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:20:04.073631: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073696: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073753: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073883: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073915: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073947: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.073978: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074049: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074106: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074149: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074335: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074434: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:04.074531: Inverter 0 count register writes 0
2026-08-18 01:20:04.094743: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 01:20:04.094984: Recompute is saving previous plan...
2026-08-18 01:20:04.096504: Best charge window [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:20:04.096605: Best export window [ ]
2026-08-18 01:20:04.097860: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:20:04.103378: Load divergence over 8.0 hours mean 386.02W, min 297.6W, max 482.4W, std dev 40.12W, divergence 5.2%
2026-08-18 01:20:04.129921: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:20:04.130035: LoadML is_calculating False
2026-08-18 01:20:04.130090: Creating pool of 12 processes to match your CPU count
2026-08-18 01:20:04.230222: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 01:20:04.231358: Optimise levels pass started at 2026-08-18 01:20:04
2026-08-18 01:20:04.231453: Optimise all windows, total charge 24 export 1
2026-08-18 01:20:04.672790: >> Region optimisation pass width 960 gives best_metric 279.1p, best_cost 284.89p, best_cycle 38.93kWh, best_import 23.48kWh
2026-08-18 01:20:04.856294: >> Region optimisation pass width 480 gives best_metric 279.1p, best_cost 284.89p, best_cycle 38.93kWh, best_import 23.48kWh
2026-08-18 01:20:05.166002: >> Region optimisation pass width 240 gives best_metric 279.1p, best_cost 284.89p, best_cycle 38.93kWh, best_import 23.48kWh
2026-08-18 01:20:05.826125: >> Region optimisation pass width 120 gives best_metric 279.1p, best_cost 284.89p, best_cycle 38.93kWh, best_import 23.48kWh
2026-08-18 01:20:05.826438: Calculated end_record as 08-19 01:30:00 based on best_price 8.0p, next_charge_start 08-18 01:30:00, max_windows 13
2026-08-18 01:20:05.826709: Optimise levels pass ended at 2026-08-18 01:20:05, duration 1.6 seconds tried 57 combinations
2026-08-18 01:20:05.826788: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 279.1p, best_keep 0kWh, best_cycle 38.93kWh, best_carbon 0kg, best_import 23.48kWh
2026-08-18 01:20:05.853488: Starting detailed optimisation end_record 08-19 01:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 01:20:08.677426: Tweak plan optimisation started metric 134.64p, cost 141.46p
2026-08-18 01:20:09.033484: Tweak optimisation finished metric 134.07p, cost 140.89p, metric_keep 0kWh, cycle 14.46kWh, carbon 0kg, import 5.48kWh, changed 8 window(s)
2026-08-18 01:20:09.059313: Swap charge optimisation started metric 134.07p, cost 140.89p, min_improvement_swap 0.1p
2026-08-18 01:20:09.661242: Swap charge optimisation finished metric 134.07p, cost 140.89p
2026-08-18 01:20:09.788978: Raw charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 81%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 81%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 81%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 81%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 81%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:20:09.789472: Unclipped charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:20:09.789781: Unfiltered charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:20:09.789994: Filtered charge windows [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 81%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 88%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:20:09.831033: Previous plan best metric is 134.07 (cost 140.89) and new plan best metric is 134.07 (cost 140.89)
2026-08-18 01:20:09.831247: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 01:20:09.831453: Plan valid is now true after recompute was False
2026-08-18 01:20:09.870302: predict base end_record 08-19 01:30:00, final soc 10.16kWh, metric 265.12p, metric_keep 0kWh, min_soc 3.18kWh @ 08-18 23:55:00, load 15.92kWh, PV 0.0kWh
2026-08-18 01:20:10.014342: Battery has 48.0 hours left - now at 12.09kWh
2026-08-18 01:20:10.059240: predict base10 end_record 08-19 01:30:00, final soc 8.38kWh, metric 256.45p, metric_keep 0kWh, min_soc 2.56kWh @ 08-18 23:55:00, load 16.66kWh, PV 0.0kWh
2026-08-18 01:20:10.146653: predict best10 end_record 08-19 01:30:00, final soc 1.12kWh, metric 204.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.66kWh, PV 0.0kWh
2026-08-18 01:20:10.244469: predict best end_record 08-19 01:30:00, final soc 1.12kWh, metric 186.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 15.92kWh, PV 0.0kWh
2026-08-18 01:20:10.244551: Saving plan best values to HA entities
2026-08-18 01:20:10.425529: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:20:10.432542: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:20:10.439626: Best charging limit SoC's [16.0, 13.5, 16.0, 16.0]kWh, export []kWh gives import battery 3.61kWh, house 1.8kWh, export 0.0kWh, metric 186.95p, metric10 204.04p
2026-08-18 01:20:10.565408: Marginal costs baseline metric (no standing charge): 140.3185
2026-08-18 01:20:10.938726: Marginal energy costs matrix computed: min=8.0 max=33.4
2026-08-18 01:20:12.450993: Rate array import [{'start': 80, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1530, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 80, 'end': 1530, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:20:12.451560: - Your estimated bill for today is £1.29 and tomorrow is £2.31
2026-08-18 01:20:12.451614: - Import rates are cheap (8.0p) for the next 4 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:20:12.451666: - The battery is currently at 76% and is charging to 83% for the next 10 minutes.
2026-08-18 01:20:12.451705: - For the next 48 hours there will be no solar generation.
2026-08-18 01:20:12.451728: - You will run out of battery in 22 hours.
2026-08-18 01:20:12.451756:
2026-08-18 01:20:12.510029: Plan calculation took 8.42 seconds
2026-08-18 01:20:12.510421: Inverter 0: Type SK Sunsynk
2026-08-18 01:20:12.510475: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:20:12.510784: Reserve min: 7%, battery_min: 7%
2026-08-18 01:20:12.510903: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:20:12.511286: Inverter 0 SoC: 12.43kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power -4536W, current battery voltage 51.2V, grid power -5395W, load power 398W, PV Power 0W
2026-08-18 01:20:12.511577: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:20:12.511714: Inverter 0 scheduled charge enable is True
2026-08-18 01:20:12.511779: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:20:12.511981: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 100.0%, power 5.0kW
2026-08-18 01:20:12.512165: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:20:12.512230: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:20:12.512297: Inverter 0 scheduled discharge enable is False
2026-08-18 01:20:12.512488: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:20:12.512532: Inverter 0 discharge windows currently []
2026-08-18 01:20:12.512556: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:20:12.512591: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:20:12.512608: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:20:12.575313: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:00:00
2026-08-18 01:20:12.575453: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 78%, target 100%
2026-08-18 01:20:12.575576: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:20:12.575736: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:20:12.575980: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:20:12.576077: No export window planned
2026-08-18 01:20:12.576189: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:20:12.576224: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:20:12.576390: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:20:12.576567: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:20:12.576663: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:20:12.576723: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:20:12.576849: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.576891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.576922: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.576974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577105: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577141: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577167: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577196: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577221: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577249: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577276: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577429: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577458: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577510: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:20:12.577563: Inverter 0 count register writes 0
2026-08-18 01:20:12.604976: Total inverter register writes now 862
2026-08-18 01:20:12.640734: Info: Completed run status Charging
2026-08-18 01:20:12.647785: Info: record_status Charging target 78%-100.0%
2026-08-18 01:20:12.658605: Saved current settings to /config/predbat_config.json
2026-08-18 01:20:12.658985: Compare, best tariff: current metric 129.87p
2026-08-18 01:20:48.793283: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:20:48.793594: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:20:48.793640: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:20:48.793789: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:20:48.793831: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:20:48.793854: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:20:48.793873: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:22:49.054061: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:22:49.054352: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:22:49.054397: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:22:49.054528: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:22:49.054566: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:22:49.054587: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:22:49.054605: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:24:49.273163: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:24:49.273472: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:24:49.273542: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:24:49.273761: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:24:49.273817: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:24:49.273849: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:24:49.273877: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:25:00.358439: --------------- PredBat - update at 2026-08-18 01:25:00+01:00 with clock skew 0 minutes, minutes now 85
2026-08-18 01:25:00.359130: Saved current settings to /config/predbat_config.json
2026-08-18 01:25:00.359246: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 01:25:00.359309: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:25:00.359431: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:25:00.377868: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:25:00.378026: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:25:00.378248: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:25:00.378955: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:25:00.379156: Predbat mode is set to Control charge & discharge
2026-08-18 01:25:00.568879: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:25:00.569032: Using load_power data to fill gaps in load_today data
2026-08-18 01:25:01.376757: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:25:01.376944: Zero load period starting at 2026-08-17T10:54:00+0100 (871 minutes) for 189 minutes with base value 210.9
2026-08-18 01:25:01.377921: Processing 721 30-minute periods for power integration
2026-08-18 01:25:01.567392: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:25:01.567524: Car charging hold False, threshold 6.0kWh
2026-08-18 01:25:01.567572: Current data so far today: load 0.5kWh, import 6.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:25:01.586923: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:25:01.587073: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:25:01.588453: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:25:01.588557: Standing charge is set to 46.63p
2026-08-18 01:25:01.723076: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:25:01.723372: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:25:01.723562: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:25:01.724688: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:25:01.724801: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:25:01.729985: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:25:01.730371: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:25:01.773527: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:25:01.773640: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:25:01.774807: High export rate found rates in range 99p to -99p
2026-08-18 01:25:01.798041: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:25:01.798180: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:25:01.811220: Battery level now 12.09kWh, -1hr ago 8.6kWh, at midnight 6.84kWh, battery value change in the last hour 23.97p, change today 36.07p, rate_forward 6.87p
2026-08-18 01:25:01.811581: Last hour: net energy 4.5kWh, import 4.5kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 36.0p, import 36.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:25:01.865378: Today's energy total net 6.3kWh, import 6.3kWh, export 0.0kWh, cost 97.03p, import 50.4p, export 0.0p, carbon 0.0kg
2026-08-18 01:25:01.865499: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:25:01.937068: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:25:01.963362: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:25:01.963453: Today's predicted so far 1.23kWh with 0.0kWh car/iBoost excluded, 5.89kWh import ignored, and 1.23kWh forecast extra.
2026-08-18 01:25:01.963485: Today's actual load so far 0.48kWh with 0.0kWh car/iBoost excluded, and 5.89kWh import ignored.
2026-08-18 01:25:02.002876: Inverter 0: Type SK Sunsynk
2026-08-18 01:25:02.002960: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:25:02.003155: Reserve min: 7%, battery_min: 7%
2026-08-18 01:25:02.003230: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:25:02.003480: Inverter 0 SoC: 12.43kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power -4535W, current battery voltage 51.2V, grid power -5418W, load power 422W, PV Power 0W
2026-08-18 01:25:02.003661: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:25:02.003749: Inverter 0 scheduled charge enable is True
2026-08-18 01:25:02.003792: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:25:02.003877: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 100.0%, power 5.0kW
2026-08-18 01:25:02.004066: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:25:02.004111: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:25:02.004175: Inverter 0 scheduled discharge enable is False
2026-08-18 01:25:02.004307: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:25:02.004343: Inverter 0 discharge windows currently []
2026-08-18 01:25:02.004365: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:25:02.004407: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:25:02.004427: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:25:02.070069: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:25:02.070248: Plan was last updated on 2026-08-18 01:20:00+01:00 and is now 5.0 minutes old
2026-08-18 01:25:02.070486: Best charge window [ 18-08 01:00:00 - 18-08 01:30:00 @ 8.0p 100%, 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:25:02.070532: Best export window [ ]
2026-08-18 01:25:02.071284: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:25:02.074405: Load divergence over 8.0 hours mean 387.47W, min 292.8W, max 514.8W, std dev 44.18W, divergence 5.7%
2026-08-18 01:25:02.093202: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:25:02.093301: LoadML is_calculating False
2026-08-18 01:25:02.093358: Creating pool of 12 processes to match your CPU count
2026-08-18 01:25:02.219344: predict base end_record 08-19 01:35:00, final soc 10.5kWh, metric 265.25p, metric_keep 0kWh, min_soc 3.13kWh @ 08-18 23:55:00, load 15.94kWh, PV 0.0kWh
2026-08-18 01:25:02.350134: Battery has 48.0 hours left - now at 12.43kWh
2026-08-18 01:25:02.397791: predict base10 end_record 08-19 01:35:00, final soc 8.66kWh, metric 256.01p, metric_keep 0kWh, min_soc 2.52kWh @ 08-18 23:55:00, load 16.67kWh, PV 0.0kWh
2026-08-18 01:25:02.477104: predict best10 end_record 08-19 01:35:00, final soc 1.44kWh, metric 204.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 16.67kWh, PV 0.0kWh
2026-08-18 01:25:02.556594: predict best end_record 08-19 01:35:00, final soc 1.51kWh, metric 187.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 15.94kWh, PV 0.0kWh
2026-08-18 01:25:02.556681: Saving plan best values to HA entities
2026-08-18 01:25:02.739042: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:25:02.743592: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:25:02.748844: Best charging limit SoC's [16.0, 13.5, 16.0, 16.0]kWh, export []kWh gives import battery 3.66kWh, house 1.81kWh, export 0.0kWh, metric 187.43p, metric10 204.79p
2026-08-18 01:25:02.822296: Marginal costs baseline metric (no standing charge): 140.7965
2026-08-18 01:25:03.097967: Marginal energy costs matrix computed: min=8.0 max=33.5
2026-08-18 01:25:03.167039: Rate array import [{'start': 85, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1535, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 85, 'end': 1535, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:25:03.167554: - Your estimated bill for today is £1.26 and tomorrow is £2.31
2026-08-18 01:25:03.167612: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:25:03.167641: - The battery is currently at 78% and is charging to 83% for the next 5 minutes.
2026-08-18 01:25:03.167684: - For the next 48 hours there will be no solar generation.
2026-08-18 01:25:03.167721: - You will run out of battery in 22 hours.
2026-08-18 01:25:03.167755:
2026-08-18 01:25:03.212134: Plan calculation took 1.14 seconds
2026-08-18 01:25:03.215342: No high rate period found
2026-08-18 01:25:03.266163: Import threshold used for optimisation was 8.0p
2026-08-18 01:25:03.321731: Low import rate windows [0: 08-18 01:00:00 - 08-18 01:30:00 @ 8.0, 1: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 2: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 3: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 4: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 5: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 6: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 7: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 8: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 9: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 10: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 11: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 12: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 13: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 14: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 15: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 16: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 17: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 18: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 19: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 20: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 21: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 22: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 23: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 24: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0]
2026-08-18 01:25:03.327040: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:00:00
2026-08-18 01:25:03.327165: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 78%, target 100%
2026-08-18 01:25:03.327340: Inverter 0 Target SoC 100%, (this inverter 100%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:25:03.327569: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:25:03.327824: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:25:03.327954: No export window planned
2026-08-18 01:25:03.328141: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:25:03.328188: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:25:03.328347: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:25:03.328459: Inverter 0 setting charging SoC to 100% as per target
2026-08-18 01:25:03.328493: Inverter 0 adjust target SoC for charge to 100% based on requested all inverter SoC 100%
2026-08-18 01:25:03.328564: Inverter 0 Current Target SoC is 100%, already at target
2026-08-18 01:25:03.328690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.328750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.328804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.328840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.328889: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.328938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.328969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329023: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329068: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329124: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329158: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329203: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329246: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329309: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329537: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:25:03.329671: Inverter 0 count register writes 0
2026-08-18 01:25:03.345957: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 01:25:03.352319: Total inverter register writes now 862
2026-08-18 01:25:03.387462: Info: Completed run status Charging
2026-08-18 01:25:03.393266: Info: record_status Charging target 78%-100.0%
2026-08-18 01:25:03.400082: Saved current settings to /config/predbat_config.json
2026-08-18 01:25:03.400411: Compare, best tariff: current metric 129.87p
2026-08-18 01:25:34.503399: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:25:34.503654: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:25:34.503696: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:25:34.503811: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:25:34.503846: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:25:34.503865: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:25:34.503880: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:27:48.728584: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:27:48.728913: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:27:48.728963: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:27:48.729122: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:27:48.729163: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:27:48.729184: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:27:48.729203: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:29:48.952766: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:29:48.953053: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:29:48.953120: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:29:48.953306: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:29:48.953368: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:29:48.953392: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:29:48.953410: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:30:00.035811: --------------- PredBat - update at 2026-08-18 01:30:00+01:00 with clock skew 0 minutes, minutes now 90
2026-08-18 01:30:00.036634: Saved current settings to /config/predbat_config.json
2026-08-18 01:30:00.036759: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 01:30:00.036848: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:30:00.036947: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:30:00.063869: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:30:00.064055: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:30:00.064237: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:30:00.064765: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:30:00.064883: Predbat mode is set to Control charge & discharge
2026-08-18 01:30:00.293404: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:30:00.293542: Using load_power data to fill gaps in load_today data
2026-08-18 01:30:01.025384: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:30:01.025809: Zero load period starting at 2026-08-17T10:54:00+0100 (876 minutes) for 189 minutes with base value 210.875
2026-08-18 01:30:01.026466: Processing 721 30-minute periods for power integration
2026-08-18 01:30:01.199693: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:30:01.199792: Car charging hold False, threshold 6.0kWh
2026-08-18 01:30:01.199829: Current data so far today: load 0.62kWh, import 7.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:30:01.212085: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:30:01.212184: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:30:01.212847: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:30:01.212907: Standing charge is set to 46.63p
2026-08-18 01:30:01.318454: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:30:01.318656: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:30:01.318801: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:30:01.319765: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:30:01.319860: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:30:01.324182: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:30:01.324511: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:30:01.360376: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:30:01.360473: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:30:01.361636: High export rate found rates in range 99p to -99p
2026-08-18 01:30:01.380333: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:30:01.380451: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:30:01.392788: Battery level now 12.43kWh, -1hr ago 8.6kWh, at midnight 6.84kWh, battery value change in the last hour 26.34p, change today 38.43p, rate_forward 6.87p
2026-08-18 01:30:01.393261: Last hour: net energy 4.95kWh, import 4.95kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 39.6p, import 39.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:30:01.442666: Today's energy total net 7.2kWh, import 7.2kWh, export 0.0kWh, cost 104.23p, import 57.6p, export 0.0p, carbon 0.0kg
2026-08-18 01:30:01.442774: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:30:01.515880: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:30:01.552060: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:30:01.552149: Today's predicted so far 1.36kWh with 0.0kWh car/iBoost excluded, 6.64kWh import ignored, and 1.36kWh forecast extra.
2026-08-18 01:30:01.552182: Today's actual load so far 0.62kWh with 0.0kWh car/iBoost excluded, and 6.64kWh import ignored.
2026-08-18 01:30:01.585369: Inverter 0: Type SK Sunsynk
2026-08-18 01:30:01.585446: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:30:01.585599: Reserve min: 7%, battery_min: 7%
2026-08-18 01:30:01.585661: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:30:01.585873: Inverter 0 SoC: 12.77kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power -4536W, current battery voltage 51.2V, grid power -5393W, load power 397W, PV Power 0W
2026-08-18 01:30:01.586016: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:30:01.586090: Inverter 0 scheduled charge enable is True
2026-08-18 01:30:01.586128: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:30:01.586197: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 100.0%, power 5.0kW
2026-08-18 01:30:01.586300: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:30:01.586331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:30:01.586360: Inverter 0 scheduled discharge enable is False
2026-08-18 01:30:01.586458: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:30:01.586488: Inverter 0 discharge windows currently []
2026-08-18 01:30:01.586507: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:30:01.586525: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:30:01.586539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:30:01.645726: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:30:01.645822: Plan was last updated on 2026-08-18 01:20:00+01:00 and is now 10.0 minutes old
2026-08-18 01:30:01.645861: Current charge window has expired, removing it
2026-08-18 01:30:01.646057: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:30:01.646105: Best export window [ ]
2026-08-18 01:30:01.646898: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:30:01.650602: Load divergence over 8.0 hours mean 387.38W, min 281.4W, max 482.4W, std dev 48.22W, divergence 6.22%
2026-08-18 01:30:01.680194: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:30:01.680350: LoadML is_calculating False
2026-08-18 01:30:01.680439: Creating pool of 12 processes to match your CPU count
2026-08-18 01:30:01.802935: predict base end_record 08-19 01:40:00, final soc 10.98kWh, metric 273.57p, metric_keep 0kWh, min_soc 3.22kWh @ 08-18 23:55:00, load 16.06kWh, PV 0.0kWh
2026-08-18 01:30:01.936530: Battery has 48.0 hours left - now at 12.77kWh
2026-08-18 01:30:01.983892: predict base10 end_record 08-19 01:40:00, final soc 9.08kWh, metric 263.81p, metric_keep 0kWh, min_soc 2.61kWh @ 08-18 23:55:00, load 16.79kWh, PV 0.0kWh
2026-08-18 01:30:02.063575: predict best10 end_record 08-19 01:40:00, final soc 1.77kWh, metric 211.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.79kWh, PV 0.0kWh
2026-08-18 01:30:02.156417: predict best end_record 08-19 01:40:00, final soc 1.9kWh, metric 195.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.06kWh, PV 0.0kWh
2026-08-18 01:30:02.157077: Saving plan best values to HA entities
2026-08-18 01:30:02.328379: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:30:02.335624: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:30:02.341387: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 3.73kWh, house 1.8kWh, export 0.0kWh, metric 195.07p, metric10 211.34p
2026-08-18 01:30:02.416389: Marginal costs baseline metric (no standing charge): 148.4384
2026-08-18 01:30:02.696105: Marginal energy costs matrix computed: min=8.0 max=33.44
2026-08-18 01:30:02.762994: Rate array import [{'start': 90, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1540, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 90, 'end': 1540, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:30:02.763400: - Your estimated bill for today is £1.29 and tomorrow is £2.31
2026-08-18 01:30:02.763444: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:30:02.763467: - The battery is currently at 80% and is charging to 84% for the next 3 hours.
2026-08-18 01:30:02.763486: - For the next 48 hours there will be no solar generation.
2026-08-18 01:30:02.763503: - You will run out of battery in 22 hours.
2026-08-18 01:30:02.763530:
2026-08-18 01:30:02.815831: Plan calculation took 1.17 seconds
2026-08-18 01:30:02.820937: No high rate period found
2026-08-18 01:30:02.864915: Import threshold used for optimisation was 8.0p
2026-08-18 01:30:02.921899: Low import rate windows [0: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 1: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 2: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 3: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 4: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 5: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 6: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 7: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 8: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 9: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 10: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 11: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 12: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 13: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 14: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 15: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 16: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 17: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 18: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 19: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 20: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 21: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 22: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 23: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0]
2026-08-18 01:30:02.929531: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:30:02.929655: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 80%, target 84%
2026-08-18 01:30:02.929828: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:30:02.930017: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:30:02.930244: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:30:02.930346: No export window planned
2026-08-18 01:30:02.930466: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:30:02.930499: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:30:02.930614: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:30:02.930724: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:30:02.930810: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 80% -> 84% total add is 0.67kWh and this battery needs to add 0.67kWh to get to 13.44kWh
2026-08-18 01:30:02.930885: Inverter 0 Current charge limit is 100% and new target is 84%
2026-08-18 01:30:07.942063: Inverter 0 write_and_poll_value: Wrote 84 to charge_limit, successfully now 84.0
2026-08-18 01:30:07.942391: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:07.942455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:07.942505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:07.942551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:07.942591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:07.942635: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:07.942676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:07.942754: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:30:08.035394: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:30:08.060765: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:30:08.079303: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:30:08.182095: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:30:08.284753: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 01:30:08.362508: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-18 01:30:08.380765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:08.380863: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:08.380911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:08.380952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:08.381035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:08.381084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:08.381133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:08.381174: Inverter 0 count register writes 1
2026-08-18 01:30:08.395991: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 01:30:08.396129: Recompute is saving previous plan...
2026-08-18 01:30:08.396834: Best charge window [ 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 100%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 100%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 100%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 100%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 100%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 100%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 100%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 100%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:30:08.396872: Best export window [ ]
2026-08-18 01:30:08.397508: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:30:08.400034: Load divergence over 8.0 hours mean 387.38W, min 281.4W, max 482.4W, std dev 48.22W, divergence 6.22%
2026-08-18 01:30:08.415187: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:30:08.415297: LoadML is_calculating False
2026-08-18 01:30:08.415363: Creating pool of 12 processes to match your CPU count
2026-08-18 01:30:08.492384: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 01:30:08.493040: Optimise levels pass started at 2026-08-18 01:30:08
2026-08-18 01:30:08.493081: Optimise all windows, total charge 24 export 1
2026-08-18 01:30:08.861772: >> Region optimisation pass width 960 gives best_metric 280.57p, best_cost 286.36p, best_cycle 38.24kWh, best_import 22.77kWh
2026-08-18 01:30:09.021893: >> Region optimisation pass width 480 gives best_metric 280.57p, best_cost 286.36p, best_cycle 38.24kWh, best_import 22.77kWh
2026-08-18 01:30:09.290288: >> Region optimisation pass width 240 gives best_metric 280.57p, best_cost 286.36p, best_cycle 38.24kWh, best_import 22.77kWh
2026-08-18 01:30:09.850896: >> Region optimisation pass width 120 gives best_metric 280.57p, best_cost 286.36p, best_cycle 38.24kWh, best_import 22.77kWh
2026-08-18 01:30:09.851143: Calculated end_record as 08-19 01:30:00 based on best_price 8.0p, next_charge_start 08-18 01:30:00, max_windows 12
2026-08-18 01:30:09.851223: Optimise levels pass ended at 2026-08-18 01:30:09, duration 1.4 seconds tried 55 combinations
2026-08-18 01:30:09.851286: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 280.57p, best_keep 0kWh, best_cycle 38.24kWh, best_carbon 0kg, best_import 22.77kWh
2026-08-18 01:30:09.871674: Starting detailed optimisation end_record 08-19 01:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 01:30:11.936422: Tweak plan optimisation started metric 135.0p, cost 141.83p
2026-08-18 01:30:12.212045: Tweak optimisation finished metric 134.43p, cost 141.25p, metric_keep 0kWh, cycle 13.76kWh, carbon 0kg, import 4.63kWh, changed 8 window(s)
2026-08-18 01:30:12.231405: Swap charge optimisation started metric 134.43p, cost 141.25p, min_improvement_swap 0.1p
2026-08-18 01:30:12.590695: Swap charge optimisation finished metric 134.43p, cost 141.25p
2026-08-18 01:30:12.667870: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 133.56p -> 132.99p, plan now metric 135.59p, cost 140.68p, cycle 12.76kWh, import 4.56kWh
2026-08-18 01:30:12.678998: Raw charge windows [ 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:30:12.679268: Unclipped charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:30:12.679413: Unfiltered charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:30:12.679528: Filtered charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:30:12.709580: Previous plan best metric is 134.43 (cost 141.25) and new plan best metric is 134.43 (cost 141.25)
2026-08-18 01:30:12.709759: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 01:30:12.709872: Plan valid is now true after recompute was False
2026-08-18 01:30:12.733901: predict base end_record 08-19 01:30:00, final soc 10.2kWh, metric 265.82p, metric_keep 0kWh, min_soc 3.22kWh @ 08-18 23:55:00, load 15.92kWh, PV 0.0kWh
2026-08-18 01:30:12.855045: Battery has 48.0 hours left - now at 12.77kWh
2026-08-18 01:30:12.906539: predict base10 end_record 08-19 01:30:00, final soc 8.43kWh, metric 257.11p, metric_keep 0kWh, min_soc 2.61kWh @ 08-18 23:55:00, load 16.65kWh, PV 0.0kWh
2026-08-18 01:30:12.982774: predict best10 end_record 08-19 01:30:00, final soc 1.12kWh, metric 204.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.65kWh, PV 0.0kWh
2026-08-18 01:30:13.059045: predict best end_record 08-19 01:30:00, final soc 1.12kWh, metric 187.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 15.92kWh, PV 0.0kWh
2026-08-18 01:30:13.059136: Saving plan best values to HA entities
2026-08-18 01:30:13.220942: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:30:13.225741: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:30:13.230574: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.76kWh, house 1.8kWh, export 0.0kWh, metric 187.32p, metric10 204.64p
2026-08-18 01:30:13.293325: Marginal costs baseline metric (no standing charge): 140.6838
2026-08-18 01:30:13.587373: Marginal energy costs matrix computed: min=8.0 max=33.44
2026-08-18 01:30:13.651136: Rate array import [{'start': 90, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1530, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 90, 'end': 1530, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:30:13.651652: - Your estimated bill for today is £1.29 and tomorrow is £2.31
2026-08-18 01:30:13.651712: - Import rates are cheap (8.0p) for the next 4 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:30:13.651754: - The battery is currently at 80% and is charging to 84% for the next 3 hours.
2026-08-18 01:30:13.651789: - For the next 48 hours there will be no solar generation.
2026-08-18 01:30:13.651832: - You will run out of battery in 22 hours.
2026-08-18 01:30:13.651869:
2026-08-18 01:30:13.708126: Plan calculation took 5.31 seconds
2026-08-18 01:30:13.708492: Inverter 0: Type SK Sunsynk
2026-08-18 01:30:13.708550: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:30:13.708839: Reserve min: 7%, battery_min: 7%
2026-08-18 01:30:13.708946: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:30:13.709370: Inverter 0 SoC: 13.11kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power -4537W, current battery voltage 51.2V, grid power -5395W, load power 398W, PV Power 0W
2026-08-18 01:30:13.709594: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:30:13.709694: Inverter 0 scheduled charge enable is True
2026-08-18 01:30:13.709749: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:30:13.709848: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 100.0%, power 5.0kW
2026-08-18 01:30:13.709994: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:30:13.710030: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:30:13.710066: Inverter 0 scheduled discharge enable is False
2026-08-18 01:30:13.710199: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:30:13.710235: Inverter 0 discharge windows currently []
2026-08-18 01:30:13.710258: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:30:13.710277: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:30:13.710298: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:30:13.764938: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:30:13.765103: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 82%, target 84%
2026-08-18 01:30:13.765276: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:30:13.765527: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:30:13.765772: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:30:13.765895: No export window planned
2026-08-18 01:30:13.766101: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:30:13.766144: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:30:13.766293: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:30:13.766402: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:30:13.766472: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 82% -> 84% total add is 0.33kWh and this battery needs to add 0.33kWh to get to 13.44kWh
2026-08-18 01:30:13.766523: Inverter 0 Current charge limit is 100% and new target is 84%
2026-08-18 01:30:18.866582: Inverter 0 write_and_poll_value: Wrote 84 to charge_limit, successfully now 84.0
2026-08-18 01:30:18.866903: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.866985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867164: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867283: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867346: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867402: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867451: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867491: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867554: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867612: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867737: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.867937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.868002: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.868041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.868102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:30:18.868135: Inverter 0 count register writes 1
2026-08-18 01:30:18.898627: Total inverter register writes now 864
2026-08-18 01:30:18.940461: Info: Completed run status Charging
2026-08-18 01:30:18.946466: Info: record_status Charging target 82%-84%
2026-08-18 01:30:18.952473: Saved current settings to /config/predbat_config.json
2026-08-18 01:30:18.952707: Compare, best tariff: current metric 129.87p
2026-08-18 01:30:49.075460: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:30:49.075733: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:30:49.075776: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:30:49.075993: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:30:49.076046: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:30:49.076069: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:30:49.076088: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:32:49.305449: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:32:49.305697: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:32:49.305761: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:32:49.305960: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:32:49.306018: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:32:49.306039: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:32:49.306057: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:34:49.521787: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:34:49.522123: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:34:49.522172: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:34:49.522354: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:34:49.522395: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:34:49.522419: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:34:49.522443: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:35:00.608300: --------------- PredBat - update at 2026-08-18 01:35:00+01:00 with clock skew 0 minutes, minutes now 95
2026-08-18 01:35:00.609042: Saved current settings to /config/predbat_config.json
2026-08-18 01:35:00.609172: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 01:35:00.609247: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:35:00.609347: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:35:00.625610: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:35:00.625727: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:35:00.625911: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:35:00.626444: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:35:00.626586: Predbat mode is set to Control charge & discharge
2026-08-18 01:35:00.813238: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:35:00.813369: Using load_power data to fill gaps in load_today data
2026-08-18 01:35:01.652562: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:35:01.652745: Zero load period starting at 2026-08-17T10:54:00+0100 (881 minutes) for 189 minutes with base value 210.85
2026-08-18 01:35:01.653558: Processing 721 30-minute periods for power integration
2026-08-18 01:35:01.849855: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:35:01.850198: Car charging hold False, threshold 6.0kWh
2026-08-18 01:35:01.850282: Current data so far today: load 0.65kWh, import 7.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:35:01.865081: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:35:01.865185: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:35:01.865829: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:35:01.865905: Standing charge is set to 46.63p
2026-08-18 01:35:01.973029: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:35:01.973296: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:35:01.973488: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:35:01.974835: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:35:01.974987: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:35:01.981508: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:35:01.981863: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:35:02.024990: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:35:02.025107: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:35:02.026402: High export rate found rates in range 99p to -99p
2026-08-18 01:35:02.050151: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:35:02.050260: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:35:02.062901: Battery level now 12.77kWh, -1hr ago 8.94kWh, at midnight 6.84kWh, battery value change in the last hour 26.34p, change today 40.74p, rate_forward 6.87p
2026-08-18 01:35:02.063246: Last hour: net energy 4.5kWh, import 4.5kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 36.0p, import 36.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:35:02.111089: Today's energy total net 7.2kWh, import 7.2kWh, export 0.0kWh, cost 104.23p, import 57.6p, export 0.0p, carbon 0.0kg
2026-08-18 01:35:02.111247: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:35:02.184953: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:35:02.211768: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:35:02.211860: Today's predicted so far 1.47kWh with 0.0kWh car/iBoost excluded, 6.61kWh import ignored, and 1.47kWh forecast extra.
2026-08-18 01:35:02.211959: Today's actual load so far 0.65kWh with 0.0kWh car/iBoost excluded, and 6.61kWh import ignored.
2026-08-18 01:35:02.250681: Inverter 0: Type SK Sunsynk
2026-08-18 01:35:02.251097: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:35:02.251300: Reserve min: 7%, battery_min: 7%
2026-08-18 01:35:02.251391: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:35:02.251639: Inverter 0 SoC: 13.11kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power -26W, current battery voltage 51.2V, grid power -568W, load power 548W, PV Power 0W
2026-08-18 01:35:02.251784: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:35:02.251866: Inverter 0 scheduled charge enable is True
2026-08-18 01:35:02.251986: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:35:02.252090: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 01:35:02.252214: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:35:02.252249: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:35:02.252285: Inverter 0 scheduled discharge enable is False
2026-08-18 01:35:02.252402: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:35:02.252438: Inverter 0 discharge windows currently []
2026-08-18 01:35:02.252459: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:35:02.252477: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:35:02.252494: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:35:02.305258: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:35:02.305360: Plan was last updated on 2026-08-18 01:30:00+01:00 and is now 5.0 minutes old
2026-08-18 01:35:02.305533: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:35:02.305572: Best export window [ ]
2026-08-18 01:35:02.306372: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:35:02.309510: Load divergence over 8.0 hours mean 387.41W, min 263.4W, max 504.0W, std dev 60.5W, divergence 7.81%
2026-08-18 01:35:02.328151: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:35:02.328261: LoadML is_calculating False
2026-08-18 01:35:02.328321: Creating pool of 12 processes to match your CPU count
2026-08-18 01:35:02.443592: predict base end_record 08-19 01:35:00, final soc 8.49kWh, metric 247.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 15.96kWh, PV 0.0kWh
2026-08-18 01:35:02.572437: Battery has 21.92 hours left - now at 13.11kWh
2026-08-18 01:35:02.620170: predict base10 end_record 08-19 01:35:00, final soc 7.26kWh, metric 255.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 16.68kWh, PV 0.0kWh
2026-08-18 01:35:02.699391: predict best10 end_record 08-19 01:35:00, final soc 1.44kWh, metric 204.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.68kWh, PV 0.0kWh
2026-08-18 01:35:02.779753: predict best end_record 08-19 01:35:00, final soc 1.51kWh, metric 187.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 15.96kWh, PV 0.0kWh
2026-08-18 01:35:02.779836: Saving plan best values to HA entities
2026-08-18 01:35:02.932376: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:35:02.938176: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:35:02.944208: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.81kWh, house 1.8kWh, export 0.0kWh, metric 187.75p, metric10 204.32p
2026-08-18 01:35:03.007029: Marginal costs baseline metric (no standing charge): 141.1202
2026-08-18 01:35:03.222897: Marginal energy costs matrix computed: min=8.0 max=33.41
2026-08-18 01:35:03.283160: Rate array import [{'start': 95, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1535, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 95, 'end': 1535, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:35:03.283647: - Your estimated bill for today is £1.25 and tomorrow is £2.31
2026-08-18 01:35:03.283700: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:35:03.284239: - The battery is currently at 82% and is charging to 84% for the next 2 hours.
2026-08-18 01:35:03.284277: - For the next 48 hours there will be no solar generation.
2026-08-18 01:35:03.284294: - You will run out of battery in 22 hours.
2026-08-18 01:35:03.284309:
2026-08-18 01:35:03.330718: Plan calculation took 1.03 seconds
2026-08-18 01:35:03.334063: No high rate period found
2026-08-18 01:35:03.388650: Import threshold used for optimisation was 8.0p
2026-08-18 01:35:03.429968: Low import rate windows [0: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 1: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 2: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 3: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 4: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 5: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 6: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 7: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 8: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 9: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 10: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 11: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 12: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 13: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 14: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 15: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 16: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 17: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 18: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 19: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 20: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 21: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 22: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 23: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 24: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0]
2026-08-18 01:35:03.434675: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:35:03.434769: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 82%, target 84%
2026-08-18 01:35:03.434920: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:35:03.435077: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:35:03.435281: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:35:03.435365: No export window planned
2026-08-18 01:35:03.435472: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:35:03.435501: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:35:03.435613: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:35:03.435709: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:35:03.435762: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 82% -> 84% total add is 0.33kWh and this battery needs to add 0.33kWh to get to 13.44kWh
2026-08-18 01:35:03.435814: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 01:35:03.435952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.435989: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436012: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436072: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436125: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436164: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436195: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436220: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436243: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436266: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436286: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436325: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436461: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:35:03.436580: Inverter 0 count register writes 0
2026-08-18 01:35:03.450160: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 01:35:03.454421: Total inverter register writes now 864
2026-08-18 01:35:03.483841: Info: Completed run status Charging
2026-08-18 01:35:03.489348: Info: record_status Charging target 82%-84%
2026-08-18 01:35:03.496550: Saved current settings to /config/predbat_config.json
2026-08-18 01:35:03.496953: Compare, best tariff: current metric 129.87p
2026-08-18 01:35:34.591180: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:35:34.591489: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:35:34.591538: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:35:34.591702: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:35:34.591753: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:35:34.591795: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:35:34.591813: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:37:48.837381: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:37:48.837678: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:37:48.837727: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:37:48.837922: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:37:48.837968: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:37:48.838007: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:37:48.838043: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:39:49.047664: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:39:49.048018: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:39:49.048074: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:39:49.048263: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:39:49.048319: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:39:49.048342: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:39:49.048365: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:40:00.130275: --------------- PredBat - update at 2026-08-18 01:40:00+01:00 with clock skew 0 minutes, minutes now 100
2026-08-18 01:40:00.131032: Saved current settings to /config/predbat_config.json
2026-08-18 01:40:00.131157: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 01:40:00.131230: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:40:00.131324: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:40:00.151692: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:40:00.151823: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:40:00.152071: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:40:00.152720: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:40:00.152865: Predbat mode is set to Control charge & discharge
2026-08-18 01:40:00.359766: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:40:00.359964: Using load_power data to fill gaps in load_today data
2026-08-18 01:40:01.206816: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:40:01.207001: Zero load period starting at 2026-08-17T10:54:00+0100 (886 minutes) for 189 minutes with base value 210.825
2026-08-18 01:40:01.207793: Processing 721 30-minute periods for power integration
2026-08-18 01:40:01.397107: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:40:01.397232: Car charging hold False, threshold 6.0kWh
2026-08-18 01:40:01.397277: Current data so far today: load 0.75kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:40:01.412313: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:40:01.412413: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:40:01.413150: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:40:01.413220: Standing charge is set to 46.63p
2026-08-18 01:40:01.518407: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:40:01.518653: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:40:01.518857: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:40:01.520219: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:40:01.520369: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:40:01.525620: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:40:01.525999: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:40:01.569942: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:40:01.570080: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:40:01.571361: High export rate found rates in range 99p to -99p
2026-08-18 01:40:01.594156: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:40:01.594284: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:40:01.606082: Battery level now 13.11kWh, -1hr ago 9.29kWh, at midnight 6.84kWh, battery value change in the last hour 26.28p, change today 43.11p, rate_forward 6.87p
2026-08-18 01:40:01.606465: Last hour: net energy 4.75kWh, import 4.75kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 38.0p, import 38.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:40:01.654402: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 109.83p, import 63.2p, export 0.0p, carbon 0.0kg
2026-08-18 01:40:01.654520: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:40:01.729043: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:40:01.755324: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:40:01.755632: Today's predicted so far 1.5kWh with 0.0kWh car/iBoost excluded, 7.25kWh import ignored, and 1.5kWh forecast extra.
2026-08-18 01:40:01.755678: Today's actual load so far 0.72kWh with 0.0kWh car/iBoost excluded, and 7.25kWh import ignored.
2026-08-18 01:40:01.789119: Inverter 0: Type SK Sunsynk
2026-08-18 01:40:01.789203: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:40:01.789382: Reserve min: 7%, battery_min: 7%
2026-08-18 01:40:01.789459: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:40:01.789721: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 5250W, current battery power -14W, current battery voltage 51.2V, grid power -575W, load power 575W, PV Power 0W
2026-08-18 01:40:01.789887: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:40:01.789974: Inverter 0 scheduled charge enable is True
2026-08-18 01:40:01.790021: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:40:01.790113: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 01:40:01.790233: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:40:01.790269: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:40:01.790306: Inverter 0 scheduled discharge enable is False
2026-08-18 01:40:01.790422: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:40:01.790478: Inverter 0 discharge windows currently []
2026-08-18 01:40:01.790503: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:40:01.790522: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:40:01.790539: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:40:01.850595: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:40:01.850706: Plan was last updated on 2026-08-18 01:30:00+01:00 and is now 10.0 minutes old
2026-08-18 01:40:01.850909: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 01:30:00 @ 8.0p 100% ]
2026-08-18 01:40:01.850952: Best export window [ ]
2026-08-18 01:40:01.851758: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:40:01.854942: Load divergence over 8.0 hours mean 385.86W, min 262.2W, max 502.8W, std dev 56.54W, divergence 7.33%
2026-08-18 01:40:01.873796: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:40:01.873910: LoadML is_calculating False
2026-08-18 01:40:01.873970: Creating pool of 12 processes to match your CPU count
2026-08-18 01:40:01.992176: predict base end_record 08-19 01:40:00, final soc 8.88kWh, metric 253.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.06kWh, PV 0.0kWh
2026-08-18 01:40:02.111760: Battery has 21.83 hours left - now at 13.44kWh
2026-08-18 01:40:02.161736: predict base10 end_record 08-19 01:40:00, final soc 7.59kWh, metric 261.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 16.78kWh, PV 0.0kWh
2026-08-18 01:40:02.235049: predict best10 end_record 08-19 01:40:00, final soc 1.77kWh, metric 209.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.78kWh, PV 0.0kWh
2026-08-18 01:40:02.314780: predict best end_record 08-19 01:40:00, final soc 1.9kWh, metric 193.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.06kWh, PV 0.0kWh
2026-08-18 01:40:02.314876: Saving plan best values to HA entities
2026-08-18 01:40:02.464248: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:40:02.469865: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:40:02.475815: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.88kWh, house 1.79kWh, export 0.0kWh, metric 193.87p, metric10 209.73p
2026-08-18 01:40:02.544341: Marginal costs baseline metric (no standing charge): 147.2332
2026-08-18 01:40:02.805553: Marginal energy costs matrix computed: min=8.0 max=33.39
2026-08-18 01:40:02.874890: Rate array import [{'start': 100, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1540, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 100, 'end': 1540, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:40:02.875281: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 01:40:02.875322: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:40:02.875346: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 01:40:02.875380: - For the next 48 hours there will be no solar generation.
2026-08-18 01:40:02.875399: - You will run out of battery in 21 hours.
2026-08-18 01:40:02.875416:
2026-08-18 01:40:02.927302: Plan calculation took 1.08 seconds
2026-08-18 01:40:02.930663: No high rate period found
2026-08-18 01:40:02.977352: Import threshold used for optimisation was 8.0p
2026-08-18 01:40:03.025948: Low import rate windows [0: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 1: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 2: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 3: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 4: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 5: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 6: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 7: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 8: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 9: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 10: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 11: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 12: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 13: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 14: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 15: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 16: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 17: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 18: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 19: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 20: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 21: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 22: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 23: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 24: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0]
2026-08-18 01:40:03.031594: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:40:03.031725: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 01:40:03.031928: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:40:03.032027: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 01:40:03.032184: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:40:03.032419: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:40:03.032542: Inverter 0 current discharge rate is 5000W and new target is 0W
2026-08-18 01:40:08.038324: Inverter 0 write_and_poll_value: Wrote 0 to discharge_rate, successfully now 0.0
2026-08-18 01:40:13.059220: Inverter 0 write_and_poll_value: Wrote 0.0 to timed_discharge_current, successfully now 0.0
2026-08-18 01:40:13.059355: No export window planned
2026-08-18 01:40:13.059539: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:40:13.059579: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:40:13.059775: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:40:13.059941: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:40:13.060036: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 01:40:13.060104: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 01:40:13.060224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060321: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060355: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060380: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060404: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060446: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060506: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060541: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060576: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060602: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060626: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060653: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060755: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060779: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:13.060958: Inverter 0 count register writes 1
2026-08-18 01:40:13.077183: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 01:40:13.077358: Recompute is saving previous plan...
2026-08-18 01:40:13.078267: Best charge window [ 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84% ]
2026-08-18 01:40:13.078325: Best export window [ ]
2026-08-18 01:40:13.079037: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:40:13.081761: Load divergence over 8.0 hours mean 385.86W, min 262.2W, max 502.8W, std dev 56.54W, divergence 7.33%
2026-08-18 01:40:13.096527: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:40:13.096634: LoadML is_calculating False
2026-08-18 01:40:13.096721: Creating pool of 12 processes to match your CPU count
2026-08-18 01:40:13.177989: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 01:40:13.178902: Optimise levels pass started at 2026-08-18 01:40:13
2026-08-18 01:40:13.178996: Optimise all windows, total charge 24 export 1
2026-08-18 01:40:13.514768: >> Region optimisation pass width 960 gives best_metric 280.43p, best_cost 286.22p, best_cycle 37.53kWh, best_import 22.05kWh
2026-08-18 01:40:13.666127: >> Region optimisation pass width 480 gives best_metric 280.43p, best_cost 286.22p, best_cycle 37.53kWh, best_import 22.05kWh
2026-08-18 01:40:13.865861: >> Region optimisation pass width 240 gives best_metric 280.43p, best_cost 286.22p, best_cycle 37.53kWh, best_import 22.05kWh
2026-08-18 01:40:14.411218: >> Region optimisation pass width 120 gives best_metric 280.43p, best_cost 286.22p, best_cycle 37.53kWh, best_import 22.05kWh
2026-08-18 01:40:14.411598: Calculated end_record as 08-19 02:00:00 based on best_price 8.0p, next_charge_start 08-18 02:00:00, max_windows 13
2026-08-18 01:40:14.411686: Optimise levels pass ended at 2026-08-18 01:40:14, duration 1.2 seconds tried 53 combinations
2026-08-18 01:40:14.411782: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 280.43p, best_keep 0kWh, best_cycle 37.53kWh, best_carbon 0kg, best_import 22.05kWh
2026-08-18 01:40:14.430993: Starting detailed optimisation end_record 08-19 02:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 01:40:16.501756: Tweak plan optimisation started metric 137.01p, cost 143.82p
2026-08-18 01:40:16.763091: Tweak optimisation finished metric 136.44p, cost 143.25p, metric_keep 0kWh, cycle 13.07kWh, carbon 0kg, import 4.18kWh, changed 8 window(s)
2026-08-18 01:40:16.782010: Swap charge optimisation started metric 136.44p, cost 143.25p, min_improvement_swap 0.1p
2026-08-18 01:40:17.077489: Swap charge optimisation finished metric 136.44p, cost 143.25p
2026-08-18 01:40:17.154582: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 135.55p -> 134.98p, plan now metric 137.54p, cost 142.68p, cycle 12.07kWh, import 4.11kWh
2026-08-18 01:40:17.163027: Raw charge windows [ 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:40:17.163276: Unclipped charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:40:17.163417: Unfiltered charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:40:17.163531: Filtered charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:40:17.192536: Previous plan best metric is 140.34 (cost 163.25) and new plan best metric is 136.44 (cost 143.25)
2026-08-18 01:40:17.192701: New plan metric is significantly better from previous plan, using new plan
2026-08-18 01:40:17.192729: Plan valid is now true after recompute was False
2026-08-18 01:40:17.219160: predict base end_record 08-19 02:00:00, final soc 10.43kWh, metric 269.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.32kWh, PV 0.0kWh
2026-08-18 01:40:17.329558: Battery has 21.83 hours left - now at 13.44kWh
2026-08-18 01:40:17.368304: predict base10 end_record 08-19 02:00:00, final soc 8.88kWh, metric 274.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.06kWh, PV 0.0kWh
2026-08-18 01:40:17.434748: predict best10 end_record 08-19 02:00:00, final soc 1.12kWh, metric 206.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 17.06kWh, PV 0.0kWh
2026-08-18 01:40:17.514229: predict best end_record 08-19 02:00:00, final soc 1.12kWh, metric 189.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.32kWh, PV 0.0kWh
2026-08-18 01:40:17.514322: Saving plan best values to HA entities
2026-08-18 01:40:17.657061: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:40:17.662414: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:40:17.667570: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.92kWh, house 2.19kWh, export 0.0kWh, metric 189.31p, metric10 206.39p
2026-08-18 01:40:17.740518: Marginal costs baseline metric (no standing charge): 142.6786
2026-08-18 01:40:17.972620: Marginal energy costs matrix computed: min=8.0 max=33.39
2026-08-18 01:40:18.030364: Rate array import [{'start': 100, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1560, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 100, 'end': 1560, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:40:18.030744: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 01:40:18.030789: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:40:18.030816: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 01:40:18.030862: - For the next 48 hours there will be no solar generation.
2026-08-18 01:40:18.030897: - You will run out of battery in 21 hours.
2026-08-18 01:40:18.030914:
2026-08-18 01:40:18.077271: Plan calculation took 5.00 seconds
2026-08-18 01:40:18.077640: Inverter 0: Type SK Sunsynk
2026-08-18 01:40:18.077690: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:40:18.077895: Reserve min: 7%, battery_min: 7%
2026-08-18 01:40:18.077961: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:40:18.078231: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -14W, current battery voltage 51.2V, grid power -575W, load power 575W, PV Power 0W
2026-08-18 01:40:18.078438: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:40:18.078524: Inverter 0 scheduled charge enable is True
2026-08-18 01:40:18.078569: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:40:18.078648: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 01:40:18.078746: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:40:18.078778: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:40:18.078808: Inverter 0 scheduled discharge enable is False
2026-08-18 01:40:18.078980: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:40:18.079021: Inverter 0 discharge windows currently []
2026-08-18 01:40:18.079042: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:40:18.079057: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:40:18.079075: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:40:18.134050: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:40:18.134181: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 01:40:18.134308: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:40:18.134398: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 01:40:18.134518: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:40:18.134699: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:40:18.134807: No export window planned
2026-08-18 01:40:18.134942: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:40:18.134979: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:40:18.135117: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:40:18.135202: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:40:18.135259: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 01:40:18.135314: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 01:40:18.135432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135529: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135553: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135582: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135654: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135692: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135743: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135770: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135805: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135854: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.135926: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136136: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136160: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136190: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:40:18.136238: Inverter 0 count register writes 0
2026-08-18 01:40:18.163592: Total inverter register writes now 865
2026-08-18 01:40:18.211213: Info: Completed run status Hold charging
2026-08-18 01:40:18.492389: Info: record_status Hold charging target 84%-84%
2026-08-18 01:40:18.498817: Saved current settings to /config/predbat_config.json
2026-08-18 01:40:18.499214: Compare, best tariff: current metric 129.87p
2026-08-18 01:40:49.604645: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:40:49.604957: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:40:49.605006: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:40:49.605143: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:40:49.605181: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:40:49.605203: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:40:49.605220: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:43:03.832072: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:43:03.832324: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:43:03.832366: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:43:03.832497: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:43:03.832535: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:43:03.832556: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:43:03.832573: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:45:00.028852: --------------- PredBat - update at 2026-08-18 01:45:00+01:00 with clock skew 0 minutes, minutes now 105
2026-08-18 01:45:00.029641: Saved current settings to /config/predbat_config.json
2026-08-18 01:45:00.029790: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 01:45:00.029947: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:45:00.030043: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:45:00.050165: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:45:00.050277: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:45:00.050449: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:45:00.050964: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:45:00.051083: Predbat mode is set to Control charge & discharge
2026-08-18 01:45:00.248504: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:45:00.248658: Using load_power data to fill gaps in load_today data
2026-08-18 01:45:01.083757: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:45:01.084005: Zero load period starting at 2026-08-17T10:54:00+0100 (891 minutes) for 189 minutes with base value 210.8
2026-08-18 01:45:01.084812: Processing 721 30-minute periods for power integration
2026-08-18 01:45:01.271231: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:45:01.271751: Car charging hold False, threshold 6.0kWh
2026-08-18 01:45:01.271810: Current data so far today: load 0.8kWh, import 7.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:45:01.289206: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:45:01.289563: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:45:01.290369: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:45:01.290769: Standing charge is set to 46.63p
2026-08-18 01:45:01.394609: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:45:01.394973: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:45:01.395455: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:45:01.396605: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:45:01.396719: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:45:01.401854: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:45:01.402192: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:45:01.447145: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:45:01.447289: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:45:01.448629: High export rate found rates in range 99p to -99p
2026-08-18 01:45:01.472180: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:45:01.472287: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:45:01.484009: Battery level now 13.44kWh, -1hr ago 9.64kWh, at midnight 6.84kWh, battery value change in the last hour 26.12p, change today 45.36p, rate_forward 6.87p
2026-08-18 01:45:01.484436: Last hour: net energy 4.3kWh, import 4.3kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 34.4p, import 34.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:45:01.524436: Today's energy total net 7.9kWh, import 7.9kWh, export 0.0kWh, cost 109.83p, import 63.2p, export 0.0p, carbon 0.0kg
2026-08-18 01:45:01.524546: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:45:01.590118: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:45:01.616582: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:45:01.616669: Today's predicted so far 1.54kWh with 0.0kWh car/iBoost excluded, 7.27kWh import ignored, and 1.54kWh forecast extra.
2026-08-18 01:45:01.616701: Today's actual load so far 0.76kWh with 0.0kWh car/iBoost excluded, and 7.27kWh import ignored.
2026-08-18 01:45:01.650062: Inverter 0: Type SK Sunsynk
2026-08-18 01:45:01.650549: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:45:01.650774: Reserve min: 7%, battery_min: 7%
2026-08-18 01:45:01.650865: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:45:01.651190: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -11W, current battery voltage 51.2V, grid power -590W, load power 554W, PV Power 0W
2026-08-18 01:45:01.651374: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:45:01.651486: Inverter 0 scheduled charge enable is True
2026-08-18 01:45:01.651733: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:45:01.651865: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 01:45:01.652061: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:45:01.652103: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:45:01.652144: Inverter 0 scheduled discharge enable is False
2026-08-18 01:45:01.652269: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:45:01.652298: Inverter 0 discharge windows currently []
2026-08-18 01:45:01.652320: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:45:01.652339: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:45:01.652356: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:45:01.699710: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:45:01.699800: Plan was last updated on 2026-08-18 01:40:00+01:00 and is now 5.0 minutes old
2026-08-18 01:45:01.700021: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ]
2026-08-18 01:45:01.700063: Best export window [ ]
2026-08-18 01:45:01.700656: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:45:01.703162: Load divergence over 8.0 hours mean 384.34W, min 274.2W, max 502.2W, std dev 54.15W, divergence 7.04%
2026-08-18 01:45:01.718410: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:45:01.718495: LoadML is_calculating False
2026-08-18 01:45:01.718543: Creating pool of 12 processes to match your CPU count
2026-08-18 01:45:01.820565: predict base end_record 08-19 02:05:00, final soc 10.82kWh, metric 272.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.36kWh, PV 0.0kWh
2026-08-18 01:45:01.938315: Battery has 21.75 hours left - now at 13.44kWh
2026-08-18 01:45:01.981746: predict base10 end_record 08-19 02:05:00, final soc 9.2kWh, metric 277.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.1kWh, PV 0.0kWh
2026-08-18 01:45:02.062267: predict best10 end_record 08-19 02:05:00, final soc 1.44kWh, metric 209.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 17.1kWh, PV 0.0kWh
2026-08-18 01:45:02.137474: predict best end_record 08-19 02:05:00, final soc 1.51kWh, metric 192.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.36kWh, PV 0.0kWh
2026-08-18 01:45:02.137557: Saving plan best values to HA entities
2026-08-18 01:45:02.289534: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:45:02.294378: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:45:02.299072: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.32kWh, house 2.19kWh, export 0.0kWh, metric 192.6p, metric10 209.3p
2026-08-18 01:45:02.365271: Marginal costs baseline metric (no standing charge): 145.9663
2026-08-18 01:45:02.629965: Marginal energy costs matrix computed: min=8.0 max=33.42
2026-08-18 01:45:02.690023: Rate array import [{'start': 105, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1565, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 105, 'end': 1565, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:45:02.690500: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 01:45:02.690550: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:45:02.690575: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 01:45:02.690609: - For the next 48 hours there will be no solar generation.
2026-08-18 01:45:02.690648: - You will run out of battery in 21 hours.
2026-08-18 01:45:02.690669:
2026-08-18 01:45:02.735247: Plan calculation took 1.04 seconds
2026-08-18 01:45:02.738306: No high rate period found
2026-08-18 01:45:02.781369: Import threshold used for optimisation was 8.0p
2026-08-18 01:45:02.829462: Low import rate windows [0: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 1: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 2: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 3: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 4: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 5: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 6: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 7: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 8: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 9: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 10: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 11: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 12: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 13: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 14: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 15: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 16: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 17: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 18: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 19: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 20: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 21: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 22: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 23: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 24: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0]
2026-08-18 01:45:02.834634: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:45:02.834734: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 01:45:02.834893: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:45:02.835025: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 01:45:02.835178: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:45:02.835438: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:45:02.835613: No export window planned
2026-08-18 01:45:02.835766: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:45:02.835801: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:45:02.836019: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:45:02.836113: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:45:02.836174: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 01:45:02.836237: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 01:45:02.836346: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836387: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836502: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836527: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836577: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836610: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836639: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836674: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836703: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836733: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836761: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836864: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836938: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.836990: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.837023: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:45:02.837044: Inverter 0 count register writes 0
2026-08-18 01:45:02.851816: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 01:45:02.856979: Total inverter register writes now 865
2026-08-18 01:45:02.886787: Info: Completed run status Hold charging
2026-08-18 01:45:02.892580: Info: record_status Hold charging target 84%-84%
2026-08-18 01:45:02.898464: Saved current settings to /config/predbat_config.json
2026-08-18 01:45:02.898800: Compare, best tariff: current metric 129.87p
2026-08-18 01:45:34.005246: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:45:34.005624: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:45:34.005683: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:45:34.005865: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:45:34.005933: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:45:34.005972: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:45:34.005998: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:46:31.527157: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 01:46:32.417033: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:46:32.417199: Zero load period starting at 2026-08-17T10:54:00+0100 (891 minutes) for 189 minutes with base value 404.2
2026-08-18 01:46:32.417854: Processing 1345 30-minute periods for power integration
2026-08-18 01:46:32.503721: ML Component: Car charging hold False, car energy reported load False
2026-08-18 01:46:32.594171: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:46:32.694475: ML Temperature data points: 48856
2026-08-18 01:46:32.963349: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 01:46:33.001790: ML Component: Data fetch completed, load data age 59.0 days, 17133 data points
2026-08-18 01:46:33.001894: ML Component: No training needed, model age is 1.66 hours
2026-08-18 01:46:33.001955: ML Component: Generating predictions load data age 59.0 days, 17133 data points
2026-08-18 01:46:33.141635: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0487 max_dow {0: 0.08633055561814043, 1: 0.09440625054407865, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 01:46:33.606019: ML Component: Generated 576 predictions (total 29.76 kWh over 48h)
2026-08-18 01:46:33.640459: ML Component: Prediction cycle completed
2026-08-18 01:46:33.734962: ML Component: Saved 17133 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 01:47:34.218829: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:47:34.219103: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:47:34.219177: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:47:34.219329: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:47:34.219367: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:47:34.219388: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:47:34.219411: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:49:34.419335: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:49:34.419587: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:49:34.419630: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:49:34.419768: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:49:34.419807: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:49:34.419829: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:49:34.419864: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:50:00.523714: --------------- PredBat - update at 2026-08-18 01:50:00+01:00 with clock skew 0 minutes, minutes now 110
2026-08-18 01:50:00.524434: Saved current settings to /config/predbat_config.json
2026-08-18 01:50:00.524555: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 01:50:00.524617: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:50:00.524714: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:50:00.542997: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:50:00.543127: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:50:00.543313: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:50:00.543780: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:50:00.543951: Predbat mode is set to Control charge & discharge
2026-08-18 01:50:00.714453: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:50:00.714571: Using load_power data to fill gaps in load_today data
2026-08-18 01:50:01.411225: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:50:01.411376: Zero load period starting at 2026-08-17T10:54:00+0100 (896 minutes) for 189 minutes with base value 210.775
2026-08-18 01:50:01.412068: Processing 721 30-minute periods for power integration
2026-08-18 01:50:01.563839: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:50:01.563996: Car charging hold False, threshold 6.0kWh
2026-08-18 01:50:01.564040: Current data so far today: load 0.85kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:50:01.575923: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:50:01.576015: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:50:01.576638: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:50:01.576696: Standing charge is set to 46.63p
2026-08-18 01:50:01.670656: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:50:01.670851: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:50:01.671002: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:50:01.671835: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:50:01.671968: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:50:01.676172: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:50:01.676434: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:50:01.712800: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:50:01.712949: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:50:01.714052: High export rate found rates in range 99p to -99p
2026-08-18 01:50:01.734149: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:50:01.734279: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:50:01.745054: Battery level now 13.44kWh, -1hr ago 10.34kWh, at midnight 6.84kWh, battery value change in the last hour 21.28p, change today 45.36p, rate_forward 6.87p
2026-08-18 01:50:01.745382: Last hour: net energy 3.95kWh, import 3.95kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 31.6p, import 31.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:50:01.792669: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 110.63p, import 64.0p, export 0.0p, carbon 0.0kg
2026-08-18 01:50:01.792819: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:50:01.867619: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:50:01.894270: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:50:01.894579: Today's predicted so far 1.58kWh with 0.0kWh car/iBoost excluded, 7.29kWh import ignored, and 1.58kWh forecast extra.
2026-08-18 01:50:01.894625: Today's actual load so far 0.8kWh with 0.0kWh car/iBoost excluded, and 7.29kWh import ignored.
2026-08-18 01:50:01.930376: Inverter 0: Type SK Sunsynk
2026-08-18 01:50:01.930460: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:50:01.930642: Reserve min: 7%, battery_min: 7%
2026-08-18 01:50:01.930715: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:50:01.930987: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -17W, current battery voltage 51.2V, grid power -556W, load power 551W, PV Power 0W
2026-08-18 01:50:01.931138: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:50:01.931222: Inverter 0 scheduled charge enable is True
2026-08-18 01:50:01.931266: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:50:01.931350: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 01:50:01.931468: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:50:01.931503: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:50:01.931539: Inverter 0 scheduled discharge enable is False
2026-08-18 01:50:01.931657: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:50:01.931693: Inverter 0 discharge windows currently []
2026-08-18 01:50:01.931715: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:50:01.931736: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:50:01.931753: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:50:01.987529: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:50:01.987628: Plan was last updated on 2026-08-18 01:40:00+01:00 and is now 10.0 minutes old
2026-08-18 01:50:01.987847: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ]
2026-08-18 01:50:01.987893: Best export window [ ]
2026-08-18 01:50:01.988851: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:50:01.991951: Load divergence over 8.0 hours mean 385.91W, min 297.6W, max 482.4W, std dev 40.12W, divergence 5.2%
2026-08-18 01:50:02.009440: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:50:02.009541: LoadML is_calculating False
2026-08-18 01:50:02.009592: Creating pool of 12 processes to match your CPU count
2026-08-18 01:50:02.118682: predict base end_record 08-19 02:10:00, final soc 11.21kWh, metric 276.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.4kWh, PV 0.0kWh
2026-08-18 01:50:02.233738: Battery has 21.67 hours left - now at 13.44kWh
2026-08-18 01:50:02.276749: predict base10 end_record 08-19 02:10:00, final soc 9.53kWh, metric 280.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.14kWh, PV 0.0kWh
2026-08-18 01:50:02.348834: predict best10 end_record 08-19 02:10:00, final soc 1.77kWh, metric 212.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 17.14kWh, PV 0.0kWh
2026-08-18 01:50:02.422419: predict best end_record 08-19 02:10:00, final soc 1.9kWh, metric 196.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.4kWh, PV 0.0kWh
2026-08-18 01:50:02.422495: Saving plan best values to HA entities
2026-08-18 01:50:02.570009: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:50:02.575176: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:50:02.580514: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.74kWh, house 2.19kWh, export 0.0kWh, metric 196.65p, metric10 212.68p
2026-08-18 01:50:02.648020: Marginal costs baseline metric (no standing charge): 150.014
2026-08-18 01:50:02.852460: Marginal energy costs matrix computed: min=8.0 max=33.4
2026-08-18 01:50:02.910103: Rate array import [{'start': 110, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1570, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 110, 'end': 1570, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:50:02.910514: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 01:50:02.910559: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:50:02.910578: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 01:50:02.910593: - For the next 48 hours there will be no solar generation.
2026-08-18 01:50:02.910607: - You will run out of battery in 21 hours.
2026-08-18 01:50:02.910624:
2026-08-18 01:50:02.952238: Plan calculation took 0.96 seconds
2026-08-18 01:50:02.956638: No high rate period found
2026-08-18 01:50:02.999117: Import threshold used for optimisation was 8.0p
2026-08-18 01:50:03.049165: Low import rate windows [0: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 1: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 2: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 3: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 4: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 5: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 6: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 7: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 8: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 9: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 10: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 11: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 12: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 13: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 14: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 15: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 16: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 17: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 18: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 19: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 20: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 21: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 22: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 23: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 24: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0]
2026-08-18 01:50:03.053895: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:50:03.054030: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 01:50:03.054225: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:50:03.054327: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 01:50:03.054515: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:50:03.054758: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:50:03.054904: No export window planned
2026-08-18 01:50:03.055157: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:50:03.055213: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:50:03.055412: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:50:03.055535: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:50:03.055623: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 01:50:03.055730: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 01:50:03.055886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056290: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056330: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056366: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056396: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056430: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056461: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056490: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056564: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:03.056781: Inverter 0 count register writes 0
2026-08-18 01:50:03.072477: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 01:50:03.072674: Recompute is saving previous plan...
2026-08-18 01:50:03.073664: Best charge window [ 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84% ]
2026-08-18 01:50:03.073726: Best export window [ ]
2026-08-18 01:50:03.074627: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:50:03.077798: Load divergence over 8.0 hours mean 385.91W, min 297.6W, max 482.4W, std dev 40.12W, divergence 5.2%
2026-08-18 01:50:03.096314: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:50:03.096416: LoadML is_calculating False
2026-08-18 01:50:03.096469: Creating pool of 12 processes to match your CPU count
2026-08-18 01:50:03.175447: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 01:50:03.176297: Optimise levels pass started at 2026-08-18 01:50:03
2026-08-18 01:50:03.176362: Optimise all windows, total charge 24 export 1
2026-08-18 01:50:03.508400: >> Region optimisation pass width 960 gives best_metric 281.32p, best_cost 287.11p, best_cycle 37.53kWh, best_import 22.06kWh
2026-08-18 01:50:03.645659: >> Region optimisation pass width 480 gives best_metric 281.32p, best_cost 287.11p, best_cycle 37.53kWh, best_import 22.06kWh
2026-08-18 01:50:03.838988: >> Region optimisation pass width 240 gives best_metric 281.32p, best_cost 287.11p, best_cycle 37.53kWh, best_import 22.06kWh
2026-08-18 01:50:04.378872: >> Region optimisation pass width 120 gives best_metric 281.32p, best_cost 287.11p, best_cycle 37.53kWh, best_import 22.06kWh
2026-08-18 01:50:04.379386: Calculated end_record as 08-19 02:00:00 based on best_price 8.0p, next_charge_start 08-18 02:00:00, max_windows 13
2026-08-18 01:50:04.379500: Optimise levels pass ended at 2026-08-18 01:50:04, duration 1.2 seconds tried 53 combinations
2026-08-18 01:50:04.379593: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 281.32p, best_keep 0kWh, best_cycle 37.53kWh, best_carbon 0kg, best_import 22.06kWh
2026-08-18 01:50:04.394891: Starting detailed optimisation end_record 08-19 02:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 01:50:06.216295: Tweak plan optimisation started metric 136.68p, cost 143.5p
2026-08-18 01:50:06.453297: Tweak optimisation finished metric 136.11p, cost 142.93p, metric_keep 0kWh, cycle 13.07kWh, carbon 0kg, import 4.04kWh, changed 8 window(s)
2026-08-18 01:50:06.472500: Swap charge optimisation started metric 136.11p, cost 142.93p, min_improvement_swap 0.1p
2026-08-18 01:50:06.775536: Swap charge optimisation finished metric 136.11p, cost 142.93p
2026-08-18 01:50:06.850293: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 135.23p -> 134.66p, plan now metric 137.22p, cost 142.36p, cycle 12.07kWh, import 3.97kWh
2026-08-18 01:50:06.858488: Raw charge windows [ 18-08 01:30:00 - 18-08 02:00:00 @ 8.0p 84%, 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:50:06.858733: Unclipped charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:50:06.858872: Unfiltered charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:50:06.859058: Filtered charge windows [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 01:50:06.888516: Previous plan best metric is 136.11 (cost 142.93) and new plan best metric is 136.11 (cost 142.93)
2026-08-18 01:50:06.888714: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 01:50:06.888874: Plan valid is now true after recompute was False
2026-08-18 01:50:06.914025: predict base end_record 08-19 02:00:00, final soc 10.43kWh, metric 268.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.28kWh, PV 0.0kWh
2026-08-18 01:50:07.012837: Battery has 21.67 hours left - now at 13.44kWh
2026-08-18 01:50:07.048380: predict base10 end_record 08-19 02:00:00, final soc 8.88kWh, metric 274.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.01kWh, PV 0.0kWh
2026-08-18 01:50:07.111892: predict best10 end_record 08-19 02:00:00, final soc 1.12kWh, metric 206.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 17.01kWh, PV 0.0kWh
2026-08-18 01:50:07.178778: predict best end_record 08-19 02:00:00, final soc 1.12kWh, metric 188.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.28kWh, PV 0.0kWh
2026-08-18 01:50:07.178855: Saving plan best values to HA entities
2026-08-18 01:50:07.316899: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:50:07.322087: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:50:07.326937: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.78kWh, house 2.19kWh, export 0.0kWh, metric 188.99p, metric10 206.09p
2026-08-18 01:50:07.389540: Marginal costs baseline metric (no standing charge): 142.3562
2026-08-18 01:50:07.605783: Marginal energy costs matrix computed: min=8.0 max=33.4
2026-08-18 01:50:07.659493: Rate array import [{'start': 110, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1560, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 110, 'end': 1560, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:50:07.659799: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 01:50:07.659836: - Import rates are cheap (8.0p) for the next 3 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:50:07.659854: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 01:50:07.659869: - For the next 48 hours there will be no solar generation.
2026-08-18 01:50:07.659884: - You will run out of battery in 21 hours.
2026-08-18 01:50:07.659922:
2026-08-18 01:50:07.700915: Plan calculation took 4.63 seconds
2026-08-18 01:50:07.701240: Inverter 0: Type SK Sunsynk
2026-08-18 01:50:07.701302: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:50:07.701567: Reserve min: 7%, battery_min: 7%
2026-08-18 01:50:07.701652: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:50:07.702050: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -12W, current battery voltage 51.2V, grid power -555W, load power 554W, PV Power 0W
2026-08-18 01:50:07.702293: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:50:07.702395: Inverter 0 scheduled charge enable is True
2026-08-18 01:50:07.702448: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:50:07.702582: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 01:50:07.702731: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:50:07.702790: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:50:07.702835: Inverter 0 scheduled discharge enable is False
2026-08-18 01:50:07.703000: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:50:07.703041: Inverter 0 discharge windows currently []
2026-08-18 01:50:07.703065: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:50:07.703084: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:50:07.703103: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:50:07.756621: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:50:07.756779: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 01:50:07.756979: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:50:07.757128: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 01:50:07.757311: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:50:07.757580: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:50:07.757833: No export window planned
2026-08-18 01:50:07.758016: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:50:07.758059: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:50:07.758220: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:50:07.758342: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:50:07.758422: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 01:50:07.758476: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 01:50:07.758583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758623: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758651: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758802: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758839: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758870: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758898: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758931: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.758975: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759011: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:50:07.759270: Inverter 0 count register writes 0
2026-08-18 01:50:07.778449: Total inverter register writes now 865
2026-08-18 01:50:07.810482: Info: Completed run status Hold charging
2026-08-18 01:50:07.816146: Info: record_status Hold charging target 84%-84%
2026-08-18 01:50:07.822264: Saved current settings to /config/predbat_config.json
2026-08-18 01:50:07.822569: Compare, best tariff: current metric 129.87p
2026-08-18 01:50:48.939296: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:50:48.939547: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:50:48.939590: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:50:48.939718: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:50:48.939756: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:50:48.939777: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:50:48.939795: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:52:49.141175: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:52:49.141453: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:52:49.141503: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:52:49.141665: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:52:49.141704: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:52:49.141726: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:52:49.141761: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:54:49.337521: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:54:49.337776: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:54:49.337817: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:54:49.337949: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:54:49.338004: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:54:49.338028: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:54:49.338049: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:55:00.420066: --------------- PredBat - update at 2026-08-18 01:55:00+01:00 with clock skew 0 minutes, minutes now 115
2026-08-18 01:55:00.420752: Saved current settings to /config/predbat_config.json
2026-08-18 01:55:00.420868: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 01:55:00.420960: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 01:55:00.421039: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 01:55:00.437904: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 01:55:00.438041: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 01:55:00.438205: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 01:55:00.438725: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 01:55:00.438841: Predbat mode is set to Control charge & discharge
2026-08-18 01:55:00.634192: Found 21602 load_today datapoints going back 28 days
2026-08-18 01:55:00.634327: Using load_power data to fill gaps in load_today data
2026-08-18 01:55:01.392615: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 01:55:01.392793: Zero load period starting at 2026-08-17T10:54:00+0100 (901 minutes) for 189 minutes with base value 210.75
2026-08-18 01:55:01.393630: Processing 721 30-minute periods for power integration
2026-08-18 01:55:01.583759: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 01:55:01.583883: Car charging hold False, threshold 6.0kWh
2026-08-18 01:55:01.583964: Current data so far today: load 0.9kWh, import 8.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 01:55:01.596171: Car 0 using Octopus Intelligent is unplugged
2026-08-18 01:55:01.596257: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 01:55:01.596899: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 01:55:01.596990: Standing charge is set to 46.63p
2026-08-18 01:55:01.695676: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:55:01.695872: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:55:01.696064: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 01:55:01.696883: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 01:55:01.696966: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 01:55:01.701250: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 01:55:01.701517: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 01:55:01.737775: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 01:55:01.737880: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 01:55:01.738919: High export rate found rates in range 99p to -99p
2026-08-18 01:55:01.756932: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 01:55:01.757051: Car 0 on Octopus Intelligent, no active plan
2026-08-18 01:55:01.767839: Battery level now 13.44kWh, -1hr ago 10.34kWh, at midnight 6.84kWh, battery value change in the last hour 21.28p, change today 45.36p, rate_forward 6.87p
2026-08-18 01:55:01.768161: Last hour: net energy 3.5kWh, import 3.5kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 28.0p, import 28.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 01:55:01.811672: Today's energy total net 8.0kWh, import 8.0kWh, export 0.0kWh, cost 110.63p, import 64.0p, export 0.0p, carbon 0.0kg
2026-08-18 01:55:01.811788: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 01:55:01.885922: Using weighted-bucket historical load forecast over 14 days
2026-08-18 01:55:01.912816: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 01:55:01.913143: Today's predicted so far 1.62kWh with 0.0kWh car/iBoost excluded, 7.3kWh import ignored, and 1.62kWh forecast extra.
2026-08-18 01:55:01.913191: Today's actual load so far 0.85kWh with 0.0kWh car/iBoost excluded, and 7.3kWh import ignored.
2026-08-18 01:55:01.952443: Inverter 0: Type SK Sunsynk
2026-08-18 01:55:01.952519: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 01:55:01.952746: Reserve min: 7%, battery_min: 7%
2026-08-18 01:55:01.952832: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 01:55:01.953201: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -11W, current battery voltage 51.2V, grid power -554W, load power 554W, PV Power 0W
2026-08-18 01:55:01.953398: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:55:01.953498: Inverter 0 scheduled charge enable is True
2026-08-18 01:55:01.953563: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 01:55:01.953710: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 01:55:01.953875: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:55:01.953917: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:55:01.953962: Inverter 0 scheduled discharge enable is False
2026-08-18 01:55:01.954168: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:55:01.954209: Inverter 0 discharge windows currently []
2026-08-18 01:55:01.954237: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:55:01.954279: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:55:01.954315: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:55:02.010297: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 01:55:02.010430: Plan was last updated on 2026-08-18 01:50:00+01:00 and is now 5.0 minutes old
2026-08-18 01:55:02.010639: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ]
2026-08-18 01:55:02.010685: Best export window [ ]
2026-08-18 01:55:02.011609: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 01:55:02.014737: Load divergence over 8.0 hours mean 387.49W, min 292.8W, max 514.8W, std dev 44.22W, divergence 5.71%
2026-08-18 01:55:02.033483: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 01:55:02.033931: LoadML is_calculating False
2026-08-18 01:55:02.034027: Creating pool of 12 processes to match your CPU count
2026-08-18 01:55:02.156749: predict base end_record 08-19 02:05:00, final soc 10.82kWh, metric 272.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.34kWh, PV 0.0kWh
2026-08-18 01:55:02.280157: Battery has 21.58 hours left - now at 13.44kWh
2026-08-18 01:55:02.318226: predict base10 end_record 08-19 02:05:00, final soc 9.2kWh, metric 277.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.08kWh, PV 0.0kWh
2026-08-18 01:55:02.406958: predict best10 end_record 08-19 02:05:00, final soc 1.44kWh, metric 209.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.08kWh, PV 0.0kWh
2026-08-18 01:55:02.484249: predict best end_record 08-19 02:05:00, final soc 1.51kWh, metric 192.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.34kWh, PV 0.0kWh
2026-08-18 01:55:02.484347: Saving plan best values to HA entities
2026-08-18 01:55:02.631356: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 01:55:02.637221: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 01:55:02.642195: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.19kWh, house 2.21kWh, export 0.0kWh, metric 192.45p, metric10 209.81p
2026-08-18 01:55:02.707826: Marginal costs baseline metric (no standing charge): 145.8119
2026-08-18 01:55:02.964680: Marginal energy costs matrix computed: min=8.0 max=33.5
2026-08-18 01:55:03.025436: Rate array import [{'start': 115, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1565, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 115, 'end': 1565, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 01:55:03.025828: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 01:55:03.025871: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 01:55:03.025893: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 01:55:03.025911: - For the next 48 hours there will be no solar generation.
2026-08-18 01:55:03.025930: - You will run out of battery in 21 hours.
2026-08-18 01:55:03.025948:
2026-08-18 01:55:03.069914: Plan calculation took 1.06 seconds
2026-08-18 01:55:03.073124: No high rate period found
2026-08-18 01:55:03.118156: Import threshold used for optimisation was 8.0p
2026-08-18 01:55:03.165362: Low import rate windows [0: 08-18 01:30:00 - 08-18 02:00:00 @ 8.0, 1: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 2: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 3: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 4: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 5: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 6: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 7: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 8: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 9: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 10: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 11: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 12: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 13: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 14: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 15: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 16: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 17: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 18: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 19: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 20: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 21: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 22: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 23: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 24: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0]
2026-08-18 01:55:03.170678: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 01:55:03.170790: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 01:55:03.170965: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 01:55:03.171150: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 01:55:03.171327: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:55:03.171568: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:55:03.171695: No export window planned
2026-08-18 01:55:03.171819: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 01:55:03.171853: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 01:55:03.172049: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 01:55:03.172144: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 01:55:03.172199: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 01:55:03.172258: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 01:55:03.172371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172496: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172647: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172699: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172731: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172765: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172800: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172829: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172859: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172890: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.172952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.173000: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.173028: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.173059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.173083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.173107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.173130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 01:55:03.173150: Inverter 0 count register writes 0
2026-08-18 01:55:03.187846: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 01:55:03.193172: Total inverter register writes now 865
2026-08-18 01:55:03.222856: Info: Completed run status Hold charging
2026-08-18 01:55:03.228600: Info: record_status Hold charging target 84%-84%
2026-08-18 01:55:03.234577: Saved current settings to /config/predbat_config.json
2026-08-18 01:55:03.234929: Compare, best tariff: current metric 129.87p
2026-08-18 01:55:33.857722: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 01:55:34.010487: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 01:55:34.414426: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:55:34.414692: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:55:34.414760: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:55:34.414913: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:55:34.414955: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:55:34.414994: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:55:34.415014: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:57:34.616072: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:57:34.616326: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:57:34.616368: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:57:34.616500: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:57:34.616537: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:57:34.616559: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:57:34.616577: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 01:57:47.844964: Info: HAHistory: Pruning history data started.
2026-08-18 01:57:47.847350: Info: HAHistory: Pruning history data completed.
2026-08-18 01:59:48.841408: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 01:59:48.841666: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 01:59:48.841709: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 01:59:48.841871: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 01:59:48.841909: Note: Inverter does not support discharge freeze - disabled
2026-08-18 01:59:48.841930: Note: Inverter does not support charge freeze - disabled
2026-08-18 01:59:48.841948: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:00:00.938174: --------------- PredBat - update at 2026-08-18 02:00:00+01:00 with clock skew 0 minutes, minutes now 120
2026-08-18 02:00:00.939027: Saved current settings to /config/predbat_config.json
2026-08-18 02:00:00.939185: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 02:00:00.939295: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:00:00.939375: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:00:00.958545: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:00:00.958669: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:00:00.958829: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:00:00.959359: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:00:00.959508: Predbat mode is set to Control charge & discharge
2026-08-18 02:00:01.174910: Found 21602 load_today datapoints going back 27 days
2026-08-18 02:00:01.175104: Using load_power data to fill gaps in load_today data
2026-08-18 02:00:02.040533: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:00:02.040753: Zero load period starting at 2026-08-17T10:54:00+0100 (906 minutes) for 189 minutes with base value 210.725
2026-08-18 02:00:02.042043: Processing 721 30-minute periods for power integration
2026-08-18 02:00:02.238032: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:00:02.238168: Car charging hold False, threshold 6.0kWh
2026-08-18 02:00:02.238213: Current data so far today: load 0.95kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:00:02.254773: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:00:02.254879: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:00:02.255622: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:00:02.255699: Standing charge is set to 46.63p
2026-08-18 02:00:02.361337: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:00:02.361574: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:00:02.361754: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:00:02.362820: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:00:02.362923: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:00:02.368059: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:00:02.368394: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:00:02.416959: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:00:02.417147: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:00:02.418479: High export rate found rates in range 99p to -99p
2026-08-18 02:00:02.439452: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:00:02.439560: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:00:02.452181: Battery level now 13.44kWh, -1hr ago 11.03kWh, at midnight 6.84kWh, battery value change in the last hour 16.55p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:00:02.452467: Last hour: net energy 3.15kWh, import 3.15kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 25.2p, import 25.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:00:02.500473: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 111.43p, import 64.8p, export 0.0p, carbon 0.0kg
2026-08-18 02:00:02.500587: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:00:02.558808: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:00:02.582024: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:00:02.582122: Today's predicted so far 1.74kWh with 0.0kWh car/iBoost excluded, 7.25kWh import ignored, and 1.74kWh forecast extra.
2026-08-18 02:00:02.582156: Today's actual load so far 0.93kWh with 0.0kWh car/iBoost excluded, and 7.25kWh import ignored.
2026-08-18 02:00:02.617656: Inverter 0: Type SK Sunsynk
2026-08-18 02:00:02.617739: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:00:02.617916: Reserve min: 7%, battery_min: 7%
2026-08-18 02:00:02.618009: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:00:02.618261: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -11W, current battery voltage 51.2V, grid power -553W, load power 553W, PV Power 0W
2026-08-18 02:00:02.618408: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:00:02.618491: Inverter 0 scheduled charge enable is True
2026-08-18 02:00:02.618538: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 02:00:02.618646: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 02:00:02.618767: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:00:02.618803: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:00:02.618838: Inverter 0 scheduled discharge enable is False
2026-08-18 02:00:02.618957: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:00:02.619010: Inverter 0 discharge windows currently []
2026-08-18 02:00:02.619034: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:00:02.619053: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:00:02.619071: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:00:02.676328: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:00:02.676442: Plan was last updated on 2026-08-18 01:50:00+01:00 and is now 10.0 minutes old
2026-08-18 02:00:02.676685: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ]
2026-08-18 02:00:02.676741: Best export window [ ]
2026-08-18 02:00:02.677539: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:00:02.680873: Load divergence over 8.0 hours mean 386.0W, min 281.4W, max 482.4W, std dev 46.84W, divergence 6.07%
2026-08-18 02:00:02.701104: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:00:02.701196: LoadML is_calculating False
2026-08-18 02:00:02.701248: Creating pool of 12 processes to match your CPU count
2026-08-18 02:00:02.822875: predict base end_record 08-19 02:10:00, final soc 11.21kWh, metric 276.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.4kWh, PV 0.0kWh
2026-08-18 02:00:02.951664: Battery has 21.5 hours left - now at 13.44kWh
2026-08-18 02:00:02.998119: predict base10 end_record 08-19 02:10:00, final soc 9.53kWh, metric 280.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.14kWh, PV 0.0kWh
2026-08-18 02:00:03.080540: predict best10 end_record 08-19 02:10:00, final soc 1.77kWh, metric 212.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 17.14kWh, PV 0.0kWh
2026-08-18 02:00:03.150529: predict best end_record 08-19 02:10:00, final soc 1.9kWh, metric 196.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.4kWh, PV 0.0kWh
2026-08-18 02:00:03.150610: Saving plan best values to HA entities
2026-08-18 02:00:03.314125: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:00:03.319144: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:00:03.323676: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.63kWh, house 2.19kWh, export 0.0kWh, metric 196.63p, metric10 212.91p
2026-08-18 02:00:03.407942: Marginal costs baseline metric (no standing charge): 149.9996
2026-08-18 02:00:03.642949: Marginal energy costs matrix computed: min=8.0 max=33.44
2026-08-18 02:00:03.699577: Rate array import [{'start': 120, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1570, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 120, 'end': 1570, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:00:03.700035: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 02:00:03.700087: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:00:03.700127: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 02:00:03.700147: - For the next 48 hours there will be no solar generation.
2026-08-18 02:00:03.700170: - You will run out of battery in 21 hours.
2026-08-18 02:00:03.700187:
2026-08-18 02:00:03.749077: Plan calculation took 1.07 seconds
2026-08-18 02:00:03.752196: No high rate period found
2026-08-18 02:00:03.801708: Import threshold used for optimisation was 8.0p
2026-08-18 02:00:03.856449: Low import rate windows [0: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 1: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 2: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 3: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 4: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 5: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 6: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 7: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 8: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 9: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 10: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 11: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 12: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 13: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 14: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 15: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 16: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 17: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 18: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 19: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 20: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 21: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 22: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 23: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0]
2026-08-18 02:00:03.862086: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 02:00:03.862205: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:00:03.862376: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:00:03.862454: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:00:03.862605: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:00:03.862837: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:00:03.862960: No export window planned
2026-08-18 02:00:03.863104: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:00:03.863140: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:00:03.863275: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:00:03.863361: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:00:03.863416: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:00:03.863478: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:00:03.863580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863679: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863703: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863737: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863825: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863859: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.863889: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864015: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864065: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864101: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864132: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864238: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864291: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:03.864396: Inverter 0 count register writes 0
2026-08-18 02:00:03.878586: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 02:00:03.878754: Recompute is saving previous plan...
2026-08-18 02:00:03.879529: Best charge window [ 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84% ]
2026-08-18 02:00:03.879572: Best export window [ ]
2026-08-18 02:00:03.880383: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:00:03.882885: Load divergence over 8.0 hours mean 386.0W, min 281.4W, max 482.4W, std dev 46.84W, divergence 6.07%
2026-08-18 02:00:03.896731: Calculating data from yesterday for savings calculation
2026-08-18 02:00:03.906215: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1560, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 02:00:03.947175: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 02:00:03.963070: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 02:00:03.986372: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 02:00:04.021826: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 02:00:04.083058: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 02:00:04.083188: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 02:00:04.092694: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:00:04.092791: LoadML is_calculating False
2026-08-18 02:00:04.092930: Creating pool of 12 processes to match your CPU count
2026-08-18 02:00:04.169619: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 02:00:04.170298: Optimise levels pass started at 2026-08-18 02:00:04
2026-08-18 02:00:04.170359: Optimise all windows, total charge 24 export 1
2026-08-18 02:00:04.537492: >> Region optimisation pass width 960 gives best_metric 282.23p, best_cost 288.02p, best_cycle 37.55kWh, best_import 22.07kWh
2026-08-18 02:00:04.690522: >> Region optimisation pass width 480 gives best_metric 282.23p, best_cost 288.02p, best_cycle 37.55kWh, best_import 22.07kWh
2026-08-18 02:00:04.955121: >> Region optimisation pass width 240 gives best_metric 282.23p, best_cost 288.02p, best_cycle 37.55kWh, best_import 22.07kWh
2026-08-18 02:00:05.515131: >> Region optimisation pass width 120 gives best_metric 282.23p, best_cost 288.02p, best_cycle 37.55kWh, best_import 22.07kWh
2026-08-18 02:00:05.515352: Calculated end_record as 08-19 02:00:00 based on best_price 8.0p, next_charge_start 08-18 02:00:00, max_windows 12
2026-08-18 02:00:05.515419: Optimise levels pass ended at 2026-08-18 02:00:05, duration 1.3 seconds tried 53 combinations
2026-08-18 02:00:05.515485: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 282.23p, best_keep 0kWh, best_cycle 37.55kWh, best_carbon 0kg, best_import 22.07kWh
2026-08-18 02:00:05.530695: Starting detailed optimisation end_record 08-19 02:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 02:00:07.550647: Tweak plan optimisation started metric 136.66p, cost 143.48p
2026-08-18 02:00:07.819067: Tweak optimisation finished metric 136.09p, cost 142.91p, metric_keep 0kWh, cycle 13.07kWh, carbon 0kg, import 3.93kWh, changed 8 window(s)
2026-08-18 02:00:07.837399: Swap charge optimisation started metric 136.09p, cost 142.91p, min_improvement_swap 0.1p
2026-08-18 02:00:08.127362: Swap charge optimisation finished metric 136.09p, cost 142.91p
2026-08-18 02:00:08.211146: Pruned 1 dead plan slot(s) in 6 trial(s), nominal metric 135.21p -> 134.64p, plan now metric 137.24p, cost 142.34p, cycle 12.07kWh, import 3.86kWh
2026-08-18 02:00:08.220671: Raw charge windows [ 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 0%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 100%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:00:08.221073: Unclipped charge windows [ 18-08 02:00:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:00:08.221328: Unfiltered charge windows [ 18-08 02:00:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:00:08.221553: Filtered charge windows [ 18-08 02:00:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:00:08.256722: Previous plan best metric is 136.09 (cost 142.91) and new plan best metric is 136.09 (cost 142.91)
2026-08-18 02:00:08.256951: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 02:00:08.257167: Plan valid is now true after recompute was False
2026-08-18 02:00:08.289842: predict base end_record 08-19 02:00:00, final soc 10.43kWh, metric 268.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.28kWh, PV 0.0kWh
2026-08-18 02:00:08.411708: Battery has 21.5 hours left - now at 13.44kWh
2026-08-18 02:00:08.460123: predict base10 end_record 08-19 02:00:00, final soc 8.88kWh, metric 274.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.01kWh, PV 0.0kWh
2026-08-18 02:00:08.535546: predict best10 end_record 08-19 02:00:00, final soc 1.12kWh, metric 206.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 17.01kWh, PV 0.0kWh
2026-08-18 02:00:08.619648: predict best end_record 08-19 02:00:00, final soc 1.12kWh, metric 188.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.28kWh, PV 0.0kWh
2026-08-18 02:00:08.619729: Saving plan best values to HA entities
2026-08-18 02:00:08.777249: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:00:08.781791: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:00:08.786400: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.67kWh, house 2.19kWh, export 0.0kWh, metric 188.97p, metric10 206.31p
2026-08-18 02:00:08.863066: Marginal costs baseline metric (no standing charge): 142.3378
2026-08-18 02:00:09.117789: Marginal energy costs matrix computed: min=8.0 max=33.44
2026-08-18 02:00:09.182625: Rate array import [{'start': 120, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1560, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 120, 'end': 1560, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:00:09.183080: - Your estimated bill for today is £1.28 and tomorrow is £2.31
2026-08-18 02:00:09.183130: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:00:09.183153: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 02:00:09.183182: - For the next 48 hours there will be no solar generation.
2026-08-18 02:00:09.183216: - You will run out of battery in 21 hours.
2026-08-18 02:00:09.183249:
2026-08-18 02:00:09.231680: Plan calculation took 5.35 seconds
2026-08-18 02:00:09.231991: Inverter 0: Type SK Sunsynk
2026-08-18 02:00:09.232035: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:00:09.232218: Reserve min: 7%, battery_min: 7%
2026-08-18 02:00:09.232280: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:00:09.232671: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -555W, load power 555W, PV Power 0W
2026-08-18 02:00:09.232864: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:00:09.232947: Inverter 0 scheduled charge enable is True
2026-08-18 02:00:09.233002: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 02:00:09.233091: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 02:00:09.233190: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:00:09.233222: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:00:09.233251: Inverter 0 scheduled discharge enable is False
2026-08-18 02:00:09.233347: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:00:09.233376: Inverter 0 discharge windows currently []
2026-08-18 02:00:09.233395: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:00:09.233413: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:00:09.233427: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:00:09.283751: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 02:00:09.283857: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:00:09.284031: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:00:09.284098: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:00:09.284195: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:00:09.284366: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:00:09.284460: No export window planned
2026-08-18 02:00:09.284553: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:00:09.284575: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:00:09.284685: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:00:09.284756: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:00:09.284824: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:00:09.284865: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:00:09.284951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285051: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285097: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285156: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285186: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285211: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285231: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285253: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285272: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285295: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285376: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285421: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285494: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:00:09.285558: Inverter 0 count register writes 0
2026-08-18 02:00:09.310568: Total inverter register writes now 865
2026-08-18 02:00:09.348013: Info: Completed run status Hold charging
2026-08-18 02:00:09.355754: Info: record_status Hold charging target 84%-84%
2026-08-18 02:00:09.364893: Saved current settings to /config/predbat_config.json
2026-08-18 02:00:09.365219: Compare, best tariff: current metric 129.87p
2026-08-18 02:00:49.480431: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:00:49.480720: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:00:49.480763: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:00:49.480901: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:00:49.480938: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:00:49.480959: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:00:49.481037: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:03:03.723625: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:03:03.723879: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:03:03.723954: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:03:03.724161: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:03:03.724201: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:03:03.724223: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:03:03.724242: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:05:00.933864: --------------- PredBat - update at 2026-08-18 02:05:00+01:00 with clock skew 0 minutes, minutes now 125
2026-08-18 02:05:00.934676: Saved current settings to /config/predbat_config.json
2026-08-18 02:05:00.934821: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 02:05:00.934946: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:05:00.935050: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:05:00.952356: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:05:00.952473: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:05:00.952633: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:05:00.953141: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:05:00.953258: Predbat mode is set to Control charge & discharge
2026-08-18 02:05:01.129429: Found 21602 load_today datapoints going back 27 days
2026-08-18 02:05:01.129570: Using load_power data to fill gaps in load_today data
2026-08-18 02:05:01.866609: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:05:01.866766: Zero load period starting at 2026-08-17T10:54:00+0100 (911 minutes) for 189 minutes with base value 210.7
2026-08-18 02:05:01.867443: Processing 721 30-minute periods for power integration
2026-08-18 02:05:02.035496: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:05:02.035612: Car charging hold False, threshold 6.0kWh
2026-08-18 02:05:02.035651: Current data so far today: load 1.0kWh, import 8.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:05:02.048527: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:05:02.048611: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:05:02.049249: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:05:02.049309: Standing charge is set to 46.63p
2026-08-18 02:05:02.145730: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:05:02.146033: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:05:02.146244: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:05:02.147177: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:05:02.147302: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:05:02.152025: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:05:02.152337: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:05:02.188298: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:05:02.188402: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:05:02.189463: High export rate found rates in range 99p to -99p
2026-08-18 02:05:02.208602: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:05:02.208707: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:05:02.219655: Battery level now 13.44kWh, -1hr ago 11.37kWh, at midnight 6.84kWh, battery value change in the last hour 14.24p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:05:02.220076: Last hour: net energy 2.7kWh, import 2.7kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 21.6p, import 21.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:05:02.273175: Today's energy total net 8.1kWh, import 8.1kWh, export 0.0kWh, cost 111.43p, import 64.8p, export 0.0p, carbon 0.0kg
2026-08-18 02:05:02.273273: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:05:02.333565: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:05:02.356112: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:05:02.356194: Today's predicted so far 1.85kWh with 0.0kWh car/iBoost excluded, 7.23kWh import ignored, and 1.85kWh forecast extra.
2026-08-18 02:05:02.356222: Today's actual load so far 0.99kWh with 0.0kWh car/iBoost excluded, and 7.23kWh import ignored.
2026-08-18 02:05:02.388355: Inverter 0: Type SK Sunsynk
2026-08-18 02:05:02.388423: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:05:02.388568: Reserve min: 7%, battery_min: 7%
2026-08-18 02:05:02.388624: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:05:02.388837: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -555W, load power 555W, PV Power 0W
2026-08-18 02:05:02.388959: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:05:02.389043: Inverter 0 scheduled charge enable is True
2026-08-18 02:05:02.389079: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 02:05:02.389159: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 02:05:02.389259: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:05:02.389288: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:05:02.389318: Inverter 0 scheduled discharge enable is False
2026-08-18 02:05:02.389436: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:05:02.389478: Inverter 0 discharge windows currently []
2026-08-18 02:05:02.389507: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:05:02.389549: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:05:02.389566: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:05:02.444613: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:05:02.444704: Plan was last updated on 2026-08-18 02:00:00+01:00 and is now 5.0 minutes old
2026-08-18 02:05:02.444878: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ]
2026-08-18 02:05:02.444915: Best export window [ ]
2026-08-18 02:05:02.445648: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:05:02.448356: Load divergence over 8.0 hours mean 381.88W, min 263.4W, max 504.0W, std dev 54.14W, divergence 7.09%
2026-08-18 02:05:02.463874: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:05:02.464013: LoadML is_calculating False
2026-08-18 02:05:02.464071: Creating pool of 12 processes to match your CPU count
2026-08-18 02:05:02.571420: predict base end_record 08-19 02:05:00, final soc 10.82kWh, metric 272.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.33kWh, PV 0.0kWh
2026-08-18 02:05:02.697200: Battery has 21.42 hours left - now at 13.44kWh
2026-08-18 02:05:02.740715: predict base10 end_record 08-19 02:05:00, final soc 9.2kWh, metric 276.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.06kWh, PV 0.0kWh
2026-08-18 02:05:02.817398: predict best10 end_record 08-19 02:05:00, final soc 1.44kWh, metric 208.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 17.06kWh, PV 0.0kWh
2026-08-18 02:05:02.892943: predict best end_record 08-19 02:05:00, final soc 1.51kWh, metric 192.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.33kWh, PV 0.0kWh
2026-08-18 02:05:02.893047: Saving plan best values to HA entities
2026-08-18 02:05:03.049963: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:05:03.055504: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:05:03.060966: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.09kWh, house 2.19kWh, export 0.0kWh, metric 192.36p, metric10 208.94p
2026-08-18 02:05:03.132298: Marginal costs baseline metric (no standing charge): 145.7271
2026-08-18 02:05:03.379559: Marginal energy costs matrix computed: min=8.0 max=33.41
2026-08-18 02:05:03.452788: Rate array import [{'start': 125, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1565, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 125, 'end': 1565, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:05:03.453292: - Your estimated bill for today is £1.27 and tomorrow is £2.31
2026-08-18 02:05:03.453356: - Import rates are cheap (8.0p) for the next 3 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:05:03.453400: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 02:05:03.453447: - For the next 48 hours there will be no solar generation.
2026-08-18 02:05:03.453481: - You will run out of battery in 21 hours.
2026-08-18 02:05:03.453500:
2026-08-18 02:05:03.516472: Plan calculation took 1.07 seconds
2026-08-18 02:05:03.519400: No high rate period found
2026-08-18 02:05:03.576296: Import threshold used for optimisation was 8.0p
2026-08-18 02:05:03.623076: Low import rate windows [0: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 1: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 2: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 3: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 4: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 5: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 6: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 7: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 8: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 9: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 10: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 11: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 12: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 13: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 14: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 15: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 16: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 17: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 18: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 19: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 20: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 21: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 22: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 23: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 24: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0]
2026-08-18 02:05:03.629295: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 02:05:03.629417: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:05:03.629580: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:05:03.629660: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:05:03.629809: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:05:03.630065: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:05:03.630194: No export window planned
2026-08-18 02:05:03.630325: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:05:03.630361: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:05:03.630497: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:05:03.630583: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:05:03.630640: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:05:03.630711: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:05:03.630818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.630859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.630887: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.630912: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.630941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.630968: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631059: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631097: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631136: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631172: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631223: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631250: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631284: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631383: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631571: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:05:03.631647: Inverter 0 count register writes 0
2026-08-18 02:05:03.647077: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 02:05:03.653516: Total inverter register writes now 865
2026-08-18 02:05:03.687347: Info: Completed run status Hold charging
2026-08-18 02:05:03.693075: Info: record_status Hold charging target 84%-84%
2026-08-18 02:05:03.699787: Saved current settings to /config/predbat_config.json
2026-08-18 02:05:03.700181: Compare, best tariff: current metric 129.87p
2026-08-18 02:05:33.799830: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:05:33.800220: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:05:33.800278: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:05:33.800428: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:05:33.800514: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:05:33.800536: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:05:33.800554: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:07:34.012512: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:07:34.012776: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:07:34.012825: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:07:34.013022: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:07:34.013058: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:07:34.013101: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:07:34.013118: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:09:34.222889: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:09:34.223206: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:09:34.223280: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:09:34.223499: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:09:34.223537: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:09:34.223555: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:09:34.223589: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:10:00.314936: --------------- PredBat - update at 2026-08-18 02:10:00+01:00 with clock skew 0 minutes, minutes now 130
2026-08-18 02:10:00.315670: Saved current settings to /config/predbat_config.json
2026-08-18 02:10:00.315785: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 02:10:00.315858: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:10:00.316035: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:10:00.335609: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:10:00.335772: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:10:00.336043: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:10:00.336620: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:10:00.336798: Predbat mode is set to Control charge & discharge
2026-08-18 02:10:00.512000: Found 21602 load_today datapoints going back 27 days
2026-08-18 02:10:00.512479: Using load_power data to fill gaps in load_today data
2026-08-18 02:10:01.338094: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:10:01.338260: Zero load period starting at 2026-08-17T10:54:00+0100 (916 minutes) for 189 minutes with base value 210.675
2026-08-18 02:10:01.339079: Processing 721 30-minute periods for power integration
2026-08-18 02:10:01.520702: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:10:01.520828: Car charging hold False, threshold 6.0kWh
2026-08-18 02:10:01.520873: Current data so far today: load 0.9kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:10:01.535414: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:10:01.535513: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:10:01.536267: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:10:01.536339: Standing charge is set to 46.63p
2026-08-18 02:10:01.638122: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:10:01.638359: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:10:01.638545: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:10:01.639646: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:10:01.639751: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:10:01.644980: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:10:01.645322: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:10:01.689498: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:10:01.689609: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:10:01.690768: High export rate found rates in range 99p to -99p
2026-08-18 02:10:01.714617: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:10:01.714735: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:10:01.726266: Battery level now 13.44kWh, -1hr ago 11.72kWh, at midnight 6.84kWh, battery value change in the last hour 11.82p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:10:01.726612: Last hour: net energy 2.35kWh, import 2.35kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 18.8p, import 18.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:10:01.774573: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 112.23p, import 65.6p, export 0.0p, carbon 0.0kg
2026-08-18 02:10:01.774733: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:10:01.846671: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:10:01.873338: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:10:01.873672: Today's predicted so far 1.87kWh with 0.0kWh car/iBoost excluded, 7.36kWh import ignored, and 1.87kWh forecast extra.
2026-08-18 02:10:01.873719: Today's actual load so far 0.89kWh with 0.0kWh car/iBoost excluded, and 7.36kWh import ignored.
2026-08-18 02:10:01.907101: Inverter 0: Type SK Sunsynk
2026-08-18 02:10:01.907184: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:10:01.907360: Reserve min: 7%, battery_min: 7%
2026-08-18 02:10:01.907436: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:10:01.907689: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -558W, load power 558W, PV Power 0W
2026-08-18 02:10:01.907834: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:10:01.907979: Inverter 0 scheduled charge enable is True
2026-08-18 02:10:01.908037: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 02:10:01.908129: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 02:10:01.908244: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:10:01.908280: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:10:01.908316: Inverter 0 scheduled discharge enable is False
2026-08-18 02:10:01.908432: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:10:01.908467: Inverter 0 discharge windows currently []
2026-08-18 02:10:01.908490: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:10:01.908512: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:10:01.908529: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:10:01.964210: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:10:01.964309: Plan was last updated on 2026-08-18 02:00:00+01:00 and is now 10.0 minutes old
2026-08-18 02:10:01.964486: Best charge window [ 18-08 01:30:00 - 18-08 04:30:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:00:00 @ 8.0p 100% ]
2026-08-18 02:10:01.964527: Best export window [ ]
2026-08-18 02:10:01.965355: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:10:01.968537: Load divergence over 8.0 hours mean 384.55W, min 262.2W, max 702.6W, std dev 59.91W, divergence 7.79%
2026-08-18 02:10:01.988764: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:10:01.988884: LoadML is_calculating False
2026-08-18 02:10:01.988946: Creating pool of 12 processes to match your CPU count
2026-08-18 02:10:02.110591: predict base end_record 08-19 02:10:00, final soc 11.21kWh, metric 276.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.23kWh, PV 0.0kWh
2026-08-18 02:10:02.232115: Battery has 21.33 hours left - now at 13.44kWh
2026-08-18 02:10:02.276354: predict base10 end_record 08-19 02:10:00, final soc 9.53kWh, metric 280.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 16.96kWh, PV 0.0kWh
2026-08-18 02:10:02.347771: predict best10 end_record 08-19 02:10:00, final soc 1.77kWh, metric 212.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:05:00, load 16.96kWh, PV 0.0kWh
2026-08-18 02:10:02.422716: predict best end_record 08-19 02:10:00, final soc 1.9kWh, metric 196.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 16.23kWh, PV 0.0kWh
2026-08-18 02:10:02.422803: Saving plan best values to HA entities
2026-08-18 02:10:02.574557: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:10:02.579512: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:10:02.583860: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.51kWh, house 2.19kWh, export 0.0kWh, metric 196.48p, metric10 212.35p
2026-08-18 02:10:02.650754: Marginal costs baseline metric (no standing charge): 149.8468
2026-08-18 02:10:02.869662: Marginal energy costs matrix computed: min=8.0 max=33.39
2026-08-18 02:10:02.920232: Rate array import [{'start': 130, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1570, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 130, 'end': 1570, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:10:02.920575: - Your estimated bill for today is £1.27 and tomorrow is £2.31
2026-08-18 02:10:02.920610: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:10:02.920628: - The battery is currently at 84% and is charging to 84% for the next 2 and a quarter hours.
2026-08-18 02:10:02.920644: - For the next 48 hours there will be no solar generation.
2026-08-18 02:10:02.920658: - You will run out of battery in 21 hours.
2026-08-18 02:10:02.920673:
2026-08-18 02:10:02.961142: Plan calculation took 1.00 seconds
2026-08-18 02:10:02.963669: No high rate period found
2026-08-18 02:10:03.005691: Import threshold used for optimisation was 8.0p
2026-08-18 02:10:03.051946: Low import rate windows [0: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 1: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 2: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 3: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 4: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 5: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 6: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 7: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 8: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 9: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 10: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 11: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 12: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 13: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 14: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 15: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 16: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 17: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 18: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 19: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 20: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 21: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 22: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 23: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 24: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0]
2026-08-18 02:10:03.057882: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 01:30:00
2026-08-18 02:10:03.058023: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 04:30:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:10:03.058210: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:10:03.058295: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:10:03.058437: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:10:03.058677: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:10:03.058805: No export window planned
2026-08-18 02:10:03.058942: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:10:03.058994: Adjust idle time, charge 23:30:00-04:30:00 discharge 00:00:00-00:00:00
2026-08-18 02:10:03.059136: Adjust demand (idle) time computed is 04:30:00-23:59:00
2026-08-18 02:10:03.059223: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:10:03.059283: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:10:03.059343: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:10:03.059450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059528: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059608: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059726: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059778: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059817: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059848: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059877: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.059996: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060059: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060089: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060196: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:03.060406: Inverter 0 count register writes 0
2026-08-18 02:10:03.076895: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 02:10:03.077043: Recompute is saving previous plan...
2026-08-18 02:10:03.077872: Best charge window [ 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84% ]
2026-08-18 02:10:03.077916: Best export window [ ]
2026-08-18 02:10:03.078643: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:10:03.081907: Load divergence over 8.0 hours mean 384.55W, min 262.2W, max 702.6W, std dev 59.91W, divergence 7.79%
2026-08-18 02:10:03.098334: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:10:03.098429: LoadML is_calculating False
2026-08-18 02:10:03.098489: Creating pool of 12 processes to match your CPU count
2026-08-18 02:10:03.176252: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 02:10:03.179155: Optimise levels pass started at 2026-08-18 02:10:03
2026-08-18 02:10:03.179214: Optimise all windows, total charge 24 export 1
2026-08-18 02:10:03.505039: >> Region optimisation pass width 960 gives best_metric 283.04p, best_cost 288.83p, best_cycle 37.53kWh, best_import 22.07kWh
2026-08-18 02:10:03.640138: >> Region optimisation pass width 480 gives best_metric 283.04p, best_cost 288.83p, best_cycle 37.53kWh, best_import 22.07kWh
2026-08-18 02:10:03.852786: >> Region optimisation pass width 240 gives best_metric 283.04p, best_cost 288.83p, best_cycle 37.53kWh, best_import 22.07kWh
2026-08-18 02:10:04.391648: >> Region optimisation pass width 120 gives best_metric 283.04p, best_cost 288.83p, best_cycle 37.53kWh, best_import 22.07kWh
2026-08-18 02:10:04.392017: Calculated end_record as 08-19 02:30:00 based on best_price 8.0p, next_charge_start 08-18 02:30:00, max_windows 13
2026-08-18 02:10:04.392204: Optimise levels pass ended at 2026-08-18 02:10:04, duration 1.2 seconds tried 63 combinations
2026-08-18 02:10:04.392291: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 283.04p, best_keep 0kWh, best_cycle 37.53kWh, best_carbon 0kg, best_import 22.07kWh
2026-08-18 02:10:04.407292: Starting detailed optimisation end_record 08-19 02:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 02:10:06.270507: Tweak plan optimisation started metric 139.6p, cost 146.41p
2026-08-18 02:10:06.502771: Tweak optimisation finished metric 138.46p, cost 145.27p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.13kWh, changed 8 window(s)
2026-08-18 02:10:06.522553: Swap charge optimisation started metric 138.46p, cost 145.27p, min_improvement_swap 0.1p
2026-08-18 02:10:06.644538: Swap charge optimisation finished metric 138.46p, cost 145.27p
2026-08-18 02:10:06.732421: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 137.57p -> 137.57p, plan now metric 139.06p, cost 145.27p, cycle 12.07kWh, import 4.13kWh
2026-08-18 02:10:06.742158: Raw charge windows [ 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:10:06.742466: Unclipped charge windows [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:10:06.742640: Unfiltered charge windows [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:10:06.742785: Filtered charge windows [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:10:06.778257: Previous plan best metric is 142.93 (cost 165.84) and new plan best metric is 138.46 (cost 145.27)
2026-08-18 02:10:06.778455: New plan metric is significantly better from previous plan, using new plan
2026-08-18 02:10:06.778487: Plan valid is now true after recompute was False
2026-08-18 02:10:06.807521: predict base end_record 08-19 02:30:00, final soc 12.76kWh, metric 291.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 16.49kWh, PV 0.0kWh
2026-08-18 02:10:06.918826: Battery has 21.33 hours left - now at 13.44kWh
2026-08-18 02:10:06.955012: predict base10 end_record 08-19 02:30:00, final soc 10.82kWh, metric 293.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:00:00, load 17.24kWh, PV 0.0kWh
2026-08-18 02:10:07.032563: predict best10 end_record 08-19 02:30:00, final soc 1.12kWh, metric 201.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.24kWh, PV 0.0kWh
2026-08-18 02:10:07.112906: predict best end_record 08-19 02:30:00, final soc 1.12kWh, metric 191.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.49kWh, PV 0.0kWh
2026-08-18 02:10:07.113013: Saving plan best values to HA entities
2026-08-18 02:10:07.250341: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:10:07.256274: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:10:07.261988: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.82kWh, house 2.31kWh, export 0.0kWh, metric 191.9p, metric10 201.84p
2026-08-18 02:10:07.337357: Marginal costs baseline metric (no standing charge): 145.2674
2026-08-18 02:10:07.564563: Marginal energy costs matrix computed: min=8.0 max=32.54
2026-08-18 02:10:07.625106: Rate array import [{'start': 130, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1590, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 130, 'end': 1590, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:10:07.626273: - Your estimated bill for today is £1.27 and tomorrow is £2.23
2026-08-18 02:10:07.626321: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:10:07.626344: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 02:10:07.626363: - For the next 48 hours there will be no solar generation.
2026-08-18 02:10:07.626386: - You will run out of battery in 21 hours.
2026-08-18 02:10:07.626405:
2026-08-18 02:10:07.672884: Plan calculation took 4.60 seconds
2026-08-18 02:10:07.673207: Inverter 0: Type SK Sunsynk
2026-08-18 02:10:07.673245: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:10:07.673423: Reserve min: 7%, battery_min: 7%
2026-08-18 02:10:07.673484: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:10:07.673766: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -558W, load power 557W, PV Power 0W
2026-08-18 02:10:07.673952: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:10:07.674056: Inverter 0 scheduled charge enable is True
2026-08-18 02:10:07.674095: Inverter 0 charge windows currently [{'start': 0, 'end': 270, 'average': 0}, {'start': 1440, 'end': 1710, 'average': 0}, {'start': 2880, 'end': 3150, 'average': 0}]
2026-08-18 02:10:07.674174: Inverter 0 Charge settings: 08-17 23:30:00-08-18 04:30:00, limit 84.0%, power 5.0kW
2026-08-18 02:10:07.674272: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:10:07.674304: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:10:07.674335: Inverter 0 scheduled discharge enable is False
2026-08-18 02:10:07.674431: Inverter 0 idle time is 08-18 04:30:00-08-18 23:59:00
2026-08-18 02:10:07.674461: Inverter 0 discharge windows currently []
2026-08-18 02:10:07.674480: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:10:07.674495: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:10:07.674509: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:10:07.717446: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:10:07.717549: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:10:07.717654: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:10:07.717741: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:10:07.717837: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:10:07.718001: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:10:07.718060: Inverter 0 set new demand (idle) start time to 05:00:00 was 04:30:00
2026-08-18 02:10:12.723478: Inverter 0 write_and_poll_value: Wrote 05:00:00 to idle_start_time, successfully now 05:00:00
2026-08-18 02:10:17.730795: Inverter 0 write_and_poll_value: Wrote 05:00:00 to charge_end_time, successfully now 05:00:00
2026-08-18 02:10:17.730935: Inverter 0 Updated start and end charge window to 23:30:00 - 05:00:00 (old 23:30:00 - 04:30:00)
2026-08-18 02:10:17.731040: No export window planned
2026-08-18 02:10:17.731221: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:10:17.731260: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:10:17.731491: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:10:17.731586: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:10:17.731653: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:10:17.731706: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:10:17.731878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:17.731983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:17.732032: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:17.732060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:17.732085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:17.732110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:17.732140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:17.732214: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 02:10:17.773552: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 02:10:17.877605: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 02:10:17.926286: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 02:10:17.952304: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 02:10:18.000247: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Grid & Gen'}
2026-08-18 02:10:18.047471: Inverter 0 Calling service charge_start_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-18 02:10:18.132678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:18.132762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:18.132795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:18.132822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:18.132847: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:18.132877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:18.132902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:10:18.132928: Inverter 0 count register writes 0
2026-08-18 02:10:18.153658: Total inverter register writes now 865
2026-08-18 02:10:18.186601: Info: Completed run status Hold charging
2026-08-18 02:10:18.192063: Info: record_status Hold charging target 84%-84%
2026-08-18 02:10:18.198360: Saved current settings to /config/predbat_config.json
2026-08-18 02:10:18.198701: Compare, best tariff: current metric 129.87p
2026-08-18 02:10:35.016076: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 02:10:36.068066: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:10:36.068228: Zero load period starting at 2026-08-17T10:54:00+0100 (916 minutes) for 189 minutes with base value 390.05
2026-08-18 02:10:36.069078: Processing 1297 30-minute periods for power integration
2026-08-18 02:10:36.168646: ML Component: Car charging hold False, car energy reported load False
2026-08-18 02:10:36.264840: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:10:36.360723: ML Temperature data points: 48831
2026-08-18 02:10:36.620769: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-18 02:10:36.660102: ML Component: Data fetch completed, load data age 59.0 days, 17138 data points
2026-08-18 02:10:36.660196: ML Component: Starting fine-tune training (2h interval), model age is 2.0792143102777776 hours
2026-08-18 02:10:36.660222: ML Component: Doing training...
2026-08-18 02:10:36.675083: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-18 02:10:36.675189: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.5 days)
2026-08-18 02:10:36.730541: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-18 02:10:36.730649: ML Predictor: Starting initial training with 30 epochs
2026-08-18 02:10:37.337058: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-18 02:10:42.423780: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-18 02:10:42.610004: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7268 std=4.5888) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1925 std=0.5271)
2026-08-18 02:10:49.433398: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:10:49.433882: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:10:49.434058: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:10:49.434415: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:10:49.434613: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:10:49.434694: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:10:49.434725: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:10:57.961444: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0112 val_mae=0.0041 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-18 02:11:10.438194: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0129 val_mae=0.0057 kWh val_bias=+0.0013 kWh (+1.5%) combined=0.0042 kWh ema_combined=0.0033 kWh
2026-08-18 02:11:23.837061: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0140 val_mae=0.0058 kWh val_bias=-0.0037 kWh (-4.1%) combined=0.0048 kWh ema_combined=0.0037 kWh
2026-08-18 02:11:38.935760: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0149 val_mae=0.0046 kWh val_bias=-0.0003 kWh (-0.3%) combined=0.0028 kWh ema_combined=0.0034 kWh
2026-08-18 02:11:51.420061: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0149 val_mae=0.0041 kWh val_bias=-0.0024 kWh (-2.7%) combined=0.0039 kWh ema_combined=0.0036 kWh
2026-08-18 02:12:04.580155: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0130 val_mae=0.0046 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0026 kWh ema_combined=0.0033 kWh
2026-08-18 02:12:17.402055: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0109 val_mae=0.0034 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0018 kWh ema_combined=0.0028 kWh
2026-08-18 02:12:30.583063: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0116 val_mae=0.0053 kWh val_bias=-0.0043 kWh (-4.8%) combined=0.0052 kWh ema_combined=0.0035 kWh
2026-08-18 02:12:43.061291: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0101 val_mae=0.0031 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0021 kWh ema_combined=0.0031 kWh
2026-08-18 02:12:55.983202: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0086 val_mae=0.0031 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0027 kWh ema_combined=0.0030 kWh
2026-08-18 02:13:03.823714: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:13:03.824149: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:13:03.824276: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:13:03.824509: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:13:03.824622: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:13:03.824709: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:13:03.824789: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:13:09.813185: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0080 val_mae=0.0034 kWh val_bias=+0.0011 kWh (+1.2%) combined=0.0026 kWh ema_combined=0.0029 kWh
2026-08-18 02:13:22.947201: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0078 val_mae=0.0031 kWh val_bias=-0.0012 kWh (-1.4%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-18 02:13:35.794527: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0069 val_mae=0.0029 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-18 02:13:48.093899: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0065 val_mae=0.0024 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0012 kWh ema_combined=0.0020 kWh
2026-08-18 02:14:01.215133: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=+0.0008 kWh (+0.8%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 02:14:15.180430: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0025 kWh ema_combined=0.0021 kWh
2026-08-18 02:14:28.071179: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0059 val_mae=0.0026 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0019 kWh
2026-08-18 02:14:40.352194: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0012 kWh ema_combined=0.0017 kWh
2026-08-18 02:14:52.946502: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 02:15:00.166457: --------------- PredBat - update at 2026-08-18 02:15:00+01:00 with clock skew 0 minutes, minutes now 135
2026-08-18 02:15:00.167850: Saved current settings to /config/predbat_config.json
2026-08-18 02:15:00.168289: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 02:15:00.168613: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:15:00.168864: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:15:00.214470: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:15:00.214651: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:15:00.214944: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:15:00.215807: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:15:00.216698: Predbat mode is set to Control charge & discharge
2026-08-18 02:15:00.576457: Found 21602 load_today datapoints going back 27 days
2026-08-18 02:15:00.576589: Using load_power data to fill gaps in load_today data
2026-08-18 02:15:01.744699: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:15:01.745180: Zero load period starting at 2026-08-17T10:54:00+0100 (921 minutes) for 189 minutes with base value 210.65
2026-08-18 02:15:01.746196: Processing 721 30-minute periods for power integration
2026-08-18 02:15:01.942887: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:15:01.943025: Car charging hold False, threshold 6.0kWh
2026-08-18 02:15:01.943072: Current data so far today: load 0.9kWh, import 8.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:15:01.961937: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:15:01.962179: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:15:01.963136: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:15:01.963295: Standing charge is set to 46.63p
2026-08-18 02:15:02.209201: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:15:02.219726: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:15:02.220048: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:15:02.221377: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:15:02.221516: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:15:02.226659: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:15:02.226996: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:15:02.273354: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:15:02.273979: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:15:02.275119: High export rate found rates in range 99p to -99p
2026-08-18 02:15:02.299097: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:15:02.299483: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:15:02.315582: Battery level now 13.44kWh, -1hr ago 11.72kWh, at midnight 6.84kWh, battery value change in the last hour 11.82p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:15:02.316106: Last hour: net energy 1.9kWh, import 1.9kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 15.2p, import 15.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:15:02.401332: Today's energy total net 8.2kWh, import 8.2kWh, export 0.0kWh, cost 112.23p, import 65.6p, export 0.0p, carbon 0.0kg
2026-08-18 02:15:02.401465: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:15:02.547341: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:15:02.574495: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:15:02.575191: Today's predicted so far 1.89kWh with 0.0kWh car/iBoost excluded, 7.38kWh import ignored, and 1.89kWh forecast extra.
2026-08-18 02:15:02.575239: Today's actual load so far 0.88kWh with 0.0kWh car/iBoost excluded, and 7.38kWh import ignored.
2026-08-18 02:15:02.624002: Inverter 0: Type SK Sunsynk
2026-08-18 02:15:02.624090: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:15:02.624318: Reserve min: 7%, battery_min: 7%
2026-08-18 02:15:02.624420: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:15:02.624741: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -563W, load power 563W, PV Power 0W
2026-08-18 02:15:02.624916: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:15:02.625036: Inverter 0 scheduled charge enable is True
2026-08-18 02:15:02.625099: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:15:02.625207: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:15:02.625363: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:15:02.625409: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:15:02.625454: Inverter 0 scheduled discharge enable is False
2026-08-18 02:15:02.625694: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:15:02.625745: Inverter 0 discharge windows currently []
2026-08-18 02:15:02.625830: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:15:02.625906: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:15:02.625997: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:15:02.764275: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:15:02.764411: Plan was last updated on 2026-08-18 02:10:00+01:00 and is now 5.0 minutes old
2026-08-18 02:15:02.764648: Best charge window [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ]
2026-08-18 02:15:02.764698: Best export window [ ]
2026-08-18 02:15:02.766005: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:15:02.771164: Load divergence over 8.0 hours mean 384.34W, min 274.2W, max 741.0W, std dev 60.75W, divergence 7.9%
2026-08-18 02:15:02.814130: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:15:02.814278: LoadML is_calculating True
2026-08-18 02:15:02.814311: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:15:02.853676: predict base end_record 08-19 02:35:00, final soc 13.15kWh, metric 295.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.52kWh, PV 0.0kWh
2026-08-18 02:15:03.031660: Battery has 21.5 hours left - now at 13.44kWh
2026-08-18 02:15:03.141417: predict base10 end_record 08-19 02:35:00, final soc 11.14kWh, metric 289.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.27kWh, PV 0.0kWh
2026-08-18 02:15:03.263282: predict best10 end_record 08-19 02:35:00, final soc 1.44kWh, metric 204.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.27kWh, PV 0.0kWh
2026-08-18 02:15:03.384280: predict best end_record 08-19 02:35:00, final soc 1.51kWh, metric 195.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.52kWh, PV 0.0kWh
2026-08-18 02:15:03.384405: Saving plan best values to HA entities
2026-08-18 02:15:03.680395: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:15:03.695440: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:15:03.719116: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.27kWh, house 2.31kWh, export 0.0kWh, metric 195.46p, metric10 204.9p
2026-08-18 02:15:03.840493: Marginal costs baseline metric (no standing charge): 148.8295
2026-08-18 02:15:04.331048: Marginal energy costs matrix computed: min=8.0 max=32.55
2026-08-18 02:15:04.429122: Rate array import [{'start': 135, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1595, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 135, 'end': 1595, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:15:04.429544: - Your estimated bill for today is £1.27 and tomorrow is £2.24
2026-08-18 02:15:04.429584: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:15:04.429605: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 02:15:04.429625: - For the next 48 hours there will be no solar generation.
2026-08-18 02:15:04.429736: - You will run out of battery in 21 hours.
2026-08-18 02:15:04.429835:
2026-08-18 02:15:04.463404: Plan calculation took 1.70 seconds
2026-08-18 02:15:04.467410: No high rate period found
2026-08-18 02:15:04.544628: Import threshold used for optimisation was 8.0p
2026-08-18 02:15:04.642854: Low import rate windows [0: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 1: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 2: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 3: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 4: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 5: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 6: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 7: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 8: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 9: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 10: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 11: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 12: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 13: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 14: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 15: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 16: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 17: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 18: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 19: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 20: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 21: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 22: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 23: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 24: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0]
2026-08-18 02:15:04.649087: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:15:04.649281: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:15:04.649464: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:15:04.649577: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:15:04.649737: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:15:04.649992: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:15:04.650181: No export window planned
2026-08-18 02:15:04.650372: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:15:04.650486: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:15:04.650717: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:15:04.650869: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:15:04.651016: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:15:04.651146: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:15:04.651319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.651434: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.651541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.651636: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.651740: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.651834: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.651996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652132: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652241: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652350: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652446: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652547: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652649: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652746: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.652982: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.653100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.653206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.653299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.653390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.653513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.653624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:15:04.653711: Inverter 0 count register writes 0
2026-08-18 02:15:04.708932: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 02:15:04.717151: Total inverter register writes now 865
2026-08-18 02:15:04.816320: Info: Completed run status Hold charging
2026-08-18 02:15:04.824196: Info: record_status Hold charging target 84%-84%
2026-08-18 02:15:04.847215: Saved current settings to /config/predbat_config.json
2026-08-18 02:15:04.847494: Compare, best tariff: current metric 129.87p
2026-08-18 02:15:10.102181: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0053 val_mae=0.0024 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 02:15:23.185235: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0054 val_mae=0.0021 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 02:15:34.752582: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0052 val_mae=0.0025 kWh val_bias=-0.0013 kWh (-1.4%) combined=0.0020 kWh ema_combined=0.0017 kWh
2026-08-18 02:15:46.944971: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=+0.0007 kWh (+0.8%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 02:15:49.032386: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:15:49.032696: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:15:49.032807: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:15:49.033035: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:15:49.033083: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:15:49.033170: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:15:49.033204: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:15:59.980928: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0020 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 02:16:14.606766: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0049 val_mae=0.0024 kWh val_bias=-0.0011 kWh (-1.3%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-18 02:16:21.887848: Successfully loaded apps.yaml from apps.yaml
2026-08-18 02:16:26.520397: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0051 val_mae=0.0022 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 02:16:41.298384: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0055 val_mae=0.0021 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 02:16:55.106102: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0010 kWh ema_combined=0.0014 kWh
2026-08-18 02:17:07.994187: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0023 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0015 kWh
2026-08-18 02:17:20.679331: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0024 kWh val_bias=-0.0012 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0016 kWh
2026-08-18 02:17:20.680474: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 02:17:20.680606: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 02:17:21.596112: ML Predictor: AR rollout over holdout: ar_mae=0.0021 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 02:17:21.612584: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0020 kWh
2026-08-18 02:17:21.687493: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-18 02:17:21.687600: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 02:17:22.211115: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 02:17:27.099859: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 02:17:27.151247: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7287 std=4.5873) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-18 02:17:27.231095: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 02:17:27.244681: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 02:17:27.267736: ML Predictor: Baseline (pre-finetune) val_mae=0.0024 kWh val_bias=+0.0002 kWh
2026-08-18 02:17:39.957664: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0089 val_mae=0.0036 kWh val_bias=-0.0018 kWh (-2.3%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-18 02:17:52.584109: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0115 val_mae=0.0035 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0020 kWh ema_combined=0.0027 kWh
2026-08-18 02:18:03.886594: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:18:03.886926: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:18:03.886986: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:18:03.887207: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:18:03.887263: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:18:03.887301: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:18:03.887412: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:18:05.822412: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0107 val_mae=0.0032 kWh val_bias=+0.0011 kWh (+1.4%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-18 02:18:20.412579: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0091 val_mae=0.0030 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-18 02:18:37.872285: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0086 val_mae=0.0029 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-18 02:18:49.813894: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0096 val_mae=0.0037 kWh val_bias=-0.0005 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 02:19:02.802563: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0084 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 02:19:15.296896: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0083 val_mae=0.0031 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-18 02:19:28.638808: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0079 val_mae=0.0028 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-18 02:19:41.583271: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0086 val_mae=0.0031 kWh val_bias=-0.0014 kWh (-1.8%) combined=0.0026 kWh ema_combined=0.0021 kWh
2026-08-18 02:19:41.583609: ML Predictor: Early stopping at epoch 10
2026-08-18 02:19:41.584668: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-18 02:19:41.584972: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=+0.0002 kWh (+0.3%)
2026-08-18 02:19:42.486135: ML Predictor: AR rollout over holdout: ar_mae=0.0026 kWh ar_bias=+0.0003 kWh (+0.4%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-18 02:19:42.499804: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0024 kWh
2026-08-18 02:19:42.574534: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-18 02:19:42.574814: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 02:19:43.120383: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 02:19:47.558305: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 02:19:47.610419: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7251 std=4.5850) import_rate(mean=16.7043 std=8.3562) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-18 02:19:47.692012: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 02:19:47.704903: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 02:19:47.726169: ML Predictor: Baseline (pre-finetune) val_mae=0.0038 kWh val_bias=+0.0001 kWh
2026-08-18 02:20:00.992186: --------------- PredBat - update at 2026-08-18 02:20:00+01:00 with clock skew 0 minutes, minutes now 140
2026-08-18 02:20:00.993742: Saved current settings to /config/predbat_config.json
2026-08-18 02:20:00.993868: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 02:20:00.994029: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:20:00.994173: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:20:01.029338: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:20:01.029633: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:20:01.029950: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:20:01.030667: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:20:01.030911: Predbat mode is set to Control charge & discharge
2026-08-18 02:20:01.160737: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0097 val_mae=0.0038 kWh val_bias=-0.0013 kWh (-2.4%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-18 02:20:01.371637: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:20:01.371777: Using load_power data to fill gaps in load_today data
2026-08-18 02:20:02.467076: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:20:02.467864: Zero load period starting at 2026-08-17T10:54:00+0100 (926 minutes) for 189 minutes with base value 210.625
2026-08-18 02:20:02.469058: Processing 721 30-minute periods for power integration
2026-08-18 02:20:02.804482: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:20:02.804634: Car charging hold False, threshold 6.0kWh
2026-08-18 02:20:02.804679: Current data so far today: load 1.02kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:20:02.819662: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:20:02.820390: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:20:02.821416: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:20:02.821933: Standing charge is set to 46.63p
2026-08-18 02:20:03.057075: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:20:03.057399: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:20:03.057655: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:20:03.059150: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:20:03.059278: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:20:03.081488: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:20:03.081890: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:20:03.134610: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:20:03.134985: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:20:03.136341: High export rate found rates in range 99p to -99p
2026-08-18 02:20:03.161166: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:20:03.161631: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:20:03.179715: Battery level now 13.44kWh, -1hr ago 12.09kWh, at midnight 6.84kWh, battery value change in the last hour 9.29p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:20:03.180321: Last hour: net energy 1.55kWh, import 1.55kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 12.4p, import 12.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:20:03.271036: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 113.03p, import 66.4p, export 0.0p, carbon 0.0kg
2026-08-18 02:20:03.271197: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:20:03.413490: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:20:03.436775: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:20:03.437126: Today's predicted so far 1.93kWh with 0.0kWh car/iBoost excluded, 7.37kWh import ignored, and 1.93kWh forecast extra.
2026-08-18 02:20:03.437201: Today's actual load so far 0.99kWh with 0.0kWh car/iBoost excluded, and 7.37kWh import ignored.
2026-08-18 02:20:03.483928: Inverter 0: Type SK Sunsynk
2026-08-18 02:20:03.484007: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:20:03.484201: Reserve min: 7%, battery_min: 7%
2026-08-18 02:20:03.484277: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:20:03.484537: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -11W, current battery voltage 51.2V, grid power -558W, load power 558W, PV Power 0W
2026-08-18 02:20:03.484683: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:20:03.484770: Inverter 0 scheduled charge enable is True
2026-08-18 02:20:03.484820: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:20:03.484911: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:20:03.485027: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:20:03.485063: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:20:03.485098: Inverter 0 scheduled discharge enable is False
2026-08-18 02:20:03.485237: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:20:03.485276: Inverter 0 discharge windows currently []
2026-08-18 02:20:03.485298: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:20:03.485317: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:20:03.485336: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:20:03.619250: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:20:03.619373: Plan was last updated on 2026-08-18 02:10:00+01:00 and is now 10.0 minutes old
2026-08-18 02:20:03.619590: Best charge window [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ]
2026-08-18 02:20:03.619723: Best export window [ ]
2026-08-18 02:20:03.621063: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:20:03.625865: Load divergence over 8.0 hours mean 385.95W, min 297.6W, max 693.0W, std dev 47.96W, divergence 6.21%
2026-08-18 02:20:03.680950: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:20:03.681085: LoadML is_calculating True
2026-08-18 02:20:03.681118: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:20:03.786014: predict base end_record 08-19 02:40:00, final soc 13.43kWh, metric 298.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.67kWh, PV 0.0kWh
2026-08-18 02:20:04.026280: Battery has 21.42 hours left - now at 13.44kWh
2026-08-18 02:20:04.104666: predict base10 end_record 08-19 02:40:00, final soc 11.47kWh, metric 293.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.41kWh, PV 0.0kWh
2026-08-18 02:20:04.230825: predict best10 end_record 08-19 02:40:00, final soc 1.77kWh, metric 208.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.41kWh, PV 0.0kWh
2026-08-18 02:20:04.386262: predict best end_record 08-19 02:40:00, final soc 1.9kWh, metric 199.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.67kWh, PV 0.0kWh
2026-08-18 02:20:04.386338: Saving plan best values to HA entities
2026-08-18 02:20:04.708387: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:20:04.716512: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:20:04.738480: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.71kWh, house 2.3kWh, export 0.0kWh, metric 199.75p, metric10 208.53p
2026-08-18 02:20:04.870500: Marginal costs baseline metric (no standing charge): 153.1204
2026-08-18 02:20:05.147053: Marginal energy costs matrix computed: min=8.0 max=32.53
2026-08-18 02:20:05.220666: Rate array import [{'start': 140, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1600, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 140, 'end': 1600, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:20:05.221405: - Your estimated bill for today is £1.28 and tomorrow is £2.24
2026-08-18 02:20:05.221574: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:20:05.221623: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 02:20:05.221651: - For the next 48 hours there will be no solar generation.
2026-08-18 02:20:05.221786: - You will run out of battery in 21 hours.
2026-08-18 02:20:05.221967:
2026-08-18 02:20:05.291071: Plan calculation took 1.67 seconds
2026-08-18 02:20:05.295502: No high rate period found
2026-08-18 02:20:05.439866: Import threshold used for optimisation was 8.0p
2026-08-18 02:20:05.566559: Low import rate windows [0: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 1: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 2: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 3: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 4: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 5: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 6: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 7: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 8: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 9: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 10: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 11: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 12: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 13: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 14: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 15: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 16: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 17: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 18: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 19: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 20: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 21: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 22: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 23: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 24: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0]
2026-08-18 02:20:05.584195: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:20:05.584317: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:20:05.584428: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:20:05.584502: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:20:05.584615: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:20:05.584791: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:20:05.584888: No export window planned
2026-08-18 02:20:05.584992: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:20:05.585028: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:20:05.585189: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:20:05.585271: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:20:05.585329: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:20:05.585383: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:20:05.585477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.585518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.585549: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.585657: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.585702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.585800: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.585842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.585959: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586029: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586102: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586207: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586284: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586351: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586453: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.586972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.587034: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.587200: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:05.587255: Inverter 0 count register writes 0
2026-08-18 02:20:05.619029: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 02:20:05.619296: Recompute is saving previous plan...
2026-08-18 02:20:05.620889: Best charge window [ 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84% ]
2026-08-18 02:20:05.620962: Best export window [ ]
2026-08-18 02:20:05.622236: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:20:05.627294: Load divergence over 8.0 hours mean 385.95W, min 297.6W, max 693.0W, std dev 47.96W, divergence 6.21%
2026-08-18 02:20:05.667175: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:20:05.667431: LoadML is_calculating True
2026-08-18 02:20:05.667564: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:20:05.682057: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 02:20:05.683574: Optimise levels pass started at 2026-08-18 02:20:05
2026-08-18 02:20:05.699966: Optimise all windows, total charge 24 export 1
2026-08-18 02:20:07.731713: >> Region optimisation pass width 960 gives best_metric 283.93p, best_cost 289.72p, best_cycle 37.53kWh, best_import 22.09kWh
2026-08-18 02:20:07.946653: >> Region optimisation pass width 480 gives best_metric 283.93p, best_cost 289.72p, best_cycle 37.53kWh, best_import 22.09kWh
2026-08-18 02:20:08.246330: >> Region optimisation pass width 240 gives best_metric 283.93p, best_cost 289.72p, best_cycle 37.53kWh, best_import 22.09kWh
2026-08-18 02:20:09.684172: >> Region optimisation pass width 120 gives best_metric 283.93p, best_cost 289.72p, best_cycle 37.53kWh, best_import 22.09kWh
2026-08-18 02:20:09.684447: Calculated end_record as 08-19 02:30:00 based on best_price 8.0p, next_charge_start 08-18 02:30:00, max_windows 13
2026-08-18 02:20:09.684520: Optimise levels pass ended at 2026-08-18 02:20:09, duration 4.0 seconds tried 63 combinations
2026-08-18 02:20:09.684575: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 283.93p, best_keep 0kWh, best_cycle 37.53kWh, best_carbon 0kg, best_import 22.09kWh
2026-08-18 02:20:09.726356: Starting detailed optimisation end_record 08-19 02:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 02:20:17.533308: Tweak plan optimisation started metric 139.44p, cost 146.26p
2026-08-18 02:20:18.930645: Tweak optimisation finished metric 138.3p, cost 145.11p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.01kWh, changed 8 window(s)
2026-08-18 02:20:18.956676: Swap charge optimisation started metric 138.3p, cost 145.11p, min_improvement_swap 0.1p
2026-08-18 02:20:19.154716: Swap charge optimisation finished metric 138.3p, cost 145.11p
2026-08-18 02:20:19.353371: Pruned 1 dead plan slot(s) in 7 trial(s), nominal metric 137.42p -> 137.42p, plan now metric 138.89p, cost 145.11p, cycle 12.07kWh, import 4.01kWh
2026-08-18 02:20:19.387976: Raw charge windows [ 18-08 02:00:00 - 18-08 02:30:00 @ 8.0p 84%, 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:20:19.388318: Unclipped charge windows [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:20:19.388516: Unfiltered charge windows [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:20:19.404194: Filtered charge windows [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:20:19.462623: Previous plan best metric is 138.3 (cost 145.11) and new plan best metric is 138.3 (cost 145.11)
2026-08-18 02:20:19.484180: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 02:20:19.484344: Plan valid is now true after recompute was False
2026-08-18 02:20:19.562313: predict base end_record 08-19 02:30:00, final soc 12.76kWh, metric 291.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.5kWh, PV 0.0kWh
2026-08-18 02:20:19.798751: Battery has 21.42 hours left - now at 13.44kWh
2026-08-18 02:20:19.853649: predict base10 end_record 08-19 02:30:00, final soc 10.82kWh, metric 286.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.24kWh, PV 0.0kWh
2026-08-18 02:20:19.942009: predict best10 end_record 08-19 02:30:00, final soc 1.12kWh, metric 201.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.24kWh, PV 0.0kWh
2026-08-18 02:20:20.035386: predict best end_record 08-19 02:30:00, final soc 1.12kWh, metric 191.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.5kWh, PV 0.0kWh
2026-08-18 02:20:20.035490: Saving plan best values to HA entities
2026-08-18 02:20:20.295528: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:20:20.302826: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:20:20.310274: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.71kWh, house 2.3kWh, export 0.0kWh, metric 191.75p, metric10 201.57p
2026-08-18 02:20:20.394102: Marginal costs baseline metric (no standing charge): 145.1138
2026-08-18 02:20:20.847877: Marginal energy costs matrix computed: min=8.0 max=32.53
2026-08-18 02:20:20.940871: Rate array import [{'start': 140, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1590, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 140, 'end': 1590, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:20:20.941570: - Your estimated bill for today is £1.28 and tomorrow is £2.24
2026-08-18 02:20:20.941639: - Import rates are cheap (8.0p) for the next 3 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:20:20.941752: - The battery is currently at 84% and is charging to 84% for the next 2 and three quarters hours.
2026-08-18 02:20:20.941800: - For the next 48 hours there will be no solar generation.
2026-08-18 02:20:20.941876: - You will run out of battery in 21 hours.
2026-08-18 02:20:20.941971:
2026-08-18 02:20:21.012420: Plan calculation took 15.39 seconds
2026-08-18 02:20:21.012639: Inverter 0: Type SK Sunsynk
2026-08-18 02:20:21.012685: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:20:21.012873: Reserve min: 7%, battery_min: 7%
2026-08-18 02:20:21.012952: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:20:21.013243: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -556W, load power 556W, PV Power 0W
2026-08-18 02:20:21.013410: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:20:21.013509: Inverter 0 scheduled charge enable is True
2026-08-18 02:20:21.013571: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:20:21.013676: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:20:21.013807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:20:21.013870: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:20:21.013916: Inverter 0 scheduled discharge enable is False
2026-08-18 02:20:21.014054: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:20:21.014094: Inverter 0 discharge windows currently []
2026-08-18 02:20:21.014122: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:20:21.014159: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:20:21.014179: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:20:21.112612: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:20:21.112743: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:20:21.112855: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:20:21.112928: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:20:21.113040: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:20:21.113236: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:20:21.113339: No export window planned
2026-08-18 02:20:21.113444: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:20:21.113481: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:20:21.113615: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:20:21.113690: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:20:21.113742: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:20:21.113785: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:20:21.113875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.113917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.113945: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.113978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114183: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114219: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114245: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114281: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114306: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114339: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114393: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114491: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114550: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:20:21.114669: Inverter 0 count register writes 0
2026-08-18 02:20:21.159439: Total inverter register writes now 865
2026-08-18 02:20:21.224962: Info: Completed run status Hold charging
2026-08-18 02:20:21.239387: Info: record_status Hold charging target 84%-84%
2026-08-18 02:20:21.248171: Saved current settings to /config/predbat_config.json
2026-08-18 02:20:21.248375: Compare, best tariff: current metric 129.87p
2026-08-18 02:20:29.113674: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0097 val_mae=0.0037 kWh val_bias=-0.0009 kWh (-1.5%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-18 02:20:41.629776: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0137 val_mae=0.0037 kWh val_bias=-0.0019 kWh (-3.4%) combined=0.0034 kWh ema_combined=0.0028 kWh
2026-08-18 02:20:54.543054: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0111 val_mae=0.0036 kWh val_bias=+0.0014 kWh (+2.5%) combined=0.0033 kWh ema_combined=0.0029 kWh
2026-08-18 02:21:04.388386: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:21:04.388869: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:21:04.389005: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:21:04.389324: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:21:04.389451: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:21:04.389613: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:21:04.389774: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:21:07.418788: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0109 val_mae=0.0033 kWh val_bias=+0.0010 kWh (+1.8%) combined=0.0028 kWh ema_combined=0.0029 kWh
2026-08-18 02:21:20.926294: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0091 val_mae=0.0035 kWh val_bias=-0.0005 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-18 02:21:36.161245: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0089 val_mae=0.0031 kWh val_bias=-0.0006 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-18 02:21:47.389631: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0087 val_mae=0.0032 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 02:22:00.889415: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0105 val_mae=0.0030 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-18 02:22:12.453369: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0096 val_mae=0.0029 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0015 kWh ema_combined=0.0020 kWh
2026-08-18 02:22:25.960722: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0072 val_mae=0.0024 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-18 02:22:40.180359: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0070 val_mae=0.0026 kWh val_bias=+0.0007 kWh (+1.2%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-18 02:22:53.013377: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0070 val_mae=0.0027 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-18 02:23:06.807007: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0071 val_mae=0.0026 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-18 02:23:18.738659: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:23:18.738965: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:23:18.739018: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:23:18.739183: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:23:18.739245: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:23:18.739360: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:23:18.739405: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:23:19.848841: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0067 val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 02:23:31.830706: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0061 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-18 02:23:45.407156: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0024 kWh val_bias=+0.0005 kWh (+0.8%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-18 02:23:55.759357: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0063 val_mae=0.0023 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 02:24:06.157159: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0060 val_mae=0.0022 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-18 02:24:16.794357: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0016 kWh ema_combined=0.0015 kWh
2026-08-18 02:24:28.813767: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0014 kWh
2026-08-18 02:24:45.202552: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0060 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 02:24:58.914335: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0019 kWh ema_combined=0.0015 kWh
2026-08-18 02:25:00.054719: --------------- PredBat - update at 2026-08-18 02:25:00+01:00 with clock skew 0 minutes, minutes now 145
2026-08-18 02:25:00.055687: Saved current settings to /config/predbat_config.json
2026-08-18 02:25:00.055819: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 02:25:00.055990: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:25:00.056086: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:25:00.095451: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:25:00.095605: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:25:00.095815: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:25:00.096611: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:25:00.096765: Predbat mode is set to Control charge & discharge
2026-08-18 02:25:00.411388: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:25:00.411975: Using load_power data to fill gaps in load_today data
2026-08-18 02:25:01.578470: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:25:01.578756: Zero load period starting at 2026-08-17T10:54:00+0100 (931 minutes) for 189 minutes with base value 210.6
2026-08-18 02:25:01.579666: Processing 721 30-minute periods for power integration
2026-08-18 02:25:01.873816: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:25:01.873949: Car charging hold False, threshold 6.0kWh
2026-08-18 02:25:01.874010: Current data so far today: load 1.05kWh, import 8.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:25:01.910340: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:25:01.910479: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:25:01.919855: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:25:01.920008: Standing charge is set to 46.63p
2026-08-18 02:25:02.165183: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:25:02.165663: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:25:02.166048: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:25:02.167949: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:25:02.168092: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:25:02.172729: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:25:02.173067: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:25:02.255604: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:25:02.255742: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:25:02.257763: High export rate found rates in range 99p to -99p
2026-08-18 02:25:02.325556: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:25:02.336011: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:25:02.369793: Battery level now 13.44kWh, -1hr ago 12.43kWh, at midnight 6.84kWh, battery value change in the last hour 6.93p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:25:02.370329: Last hour: net energy 1.1kWh, import 1.1kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 8.8p, import 8.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:25:02.448533: Today's energy total net 8.3kWh, import 8.3kWh, export 0.0kWh, cost 113.03p, import 66.4p, export 0.0p, carbon 0.0kg
2026-08-18 02:25:02.448651: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:25:02.523948: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:25:02.564828: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:25:02.564934: Today's predicted so far 1.97kWh with 0.0kWh car/iBoost excluded, 7.38kWh import ignored, and 1.97kWh forecast extra.
2026-08-18 02:25:02.564973: Today's actual load so far 1.02kWh with 0.0kWh car/iBoost excluded, and 7.38kWh import ignored.
2026-08-18 02:25:02.619658: Inverter 0: Type SK Sunsynk
2026-08-18 02:25:02.619750: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:25:02.620009: Reserve min: 7%, battery_min: 7%
2026-08-18 02:25:02.620104: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:25:02.620438: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -560W, load power 560W, PV Power 0W
2026-08-18 02:25:02.620613: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:25:02.620714: Inverter 0 scheduled charge enable is True
2026-08-18 02:25:02.620775: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:25:02.620888: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:25:02.621028: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:25:02.621070: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:25:02.621113: Inverter 0 scheduled discharge enable is False
2026-08-18 02:25:02.621280: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:25:02.621326: Inverter 0 discharge windows currently []
2026-08-18 02:25:02.621354: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:25:02.621380: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:25:02.621404: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:25:02.736944: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:25:02.737055: Plan was last updated on 2026-08-18 02:20:00+01:00 and is now 5.0 minutes old
2026-08-18 02:25:02.737233: Best charge window [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ]
2026-08-18 02:25:02.737293: Best export window [ ]
2026-08-18 02:25:02.738135: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:25:02.741488: Load divergence over 8.0 hours mean 387.65W, min 292.8W, max 660.0W, std dev 50.96W, divergence 6.57%
2026-08-18 02:25:02.780658: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:25:02.780771: LoadML is_calculating True
2026-08-18 02:25:02.780797: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:25:02.853824: predict base end_record 08-19 02:35:00, final soc 13.15kWh, metric 295.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.55kWh, PV 0.0kWh
2026-08-18 02:25:03.073117: Battery has 21.33 hours left - now at 13.44kWh
2026-08-18 02:25:03.133769: predict base10 end_record 08-19 02:35:00, final soc 11.14kWh, metric 289.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.28kWh, PV 0.0kWh
2026-08-18 02:25:03.253519: predict best10 end_record 08-19 02:35:00, final soc 1.44kWh, metric 204.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.28kWh, PV 0.0kWh
2026-08-18 02:25:03.396062: predict best end_record 08-19 02:35:00, final soc 1.51kWh, metric 195.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.55kWh, PV 0.0kWh
2026-08-18 02:25:03.396160: Saving plan best values to HA entities
2026-08-18 02:25:03.623107: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:25:03.629404: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:25:03.635712: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.15kWh, house 2.3kWh, export 0.0kWh, metric 195.26p, metric10 204.95p
2026-08-18 02:25:03.733038: Marginal costs baseline metric (no standing charge): 148.6215
2026-08-18 02:25:04.148490: Marginal energy costs matrix computed: min=8.0 max=32.58
2026-08-18 02:25:04.237842: Rate array import [{'start': 145, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1595, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 145, 'end': 1595, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:25:04.238541: - Your estimated bill for today is £1.28 and tomorrow is £2.23
2026-08-18 02:25:04.238745: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:25:04.239767: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 02:25:04.240609: - For the next 48 hours there will be no solar generation.
2026-08-18 02:25:04.240761: - You will run out of battery in 21 hours.
2026-08-18 02:25:04.240881:
2026-08-18 02:25:04.293866: Plan calculation took 1.56 seconds
2026-08-18 02:25:04.297689: No high rate period found
2026-08-18 02:25:04.396419: Import threshold used for optimisation was 8.0p
2026-08-18 02:25:04.494196: Low import rate windows [0: 08-18 02:00:00 - 08-18 02:30:00 @ 8.0, 1: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 2: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 3: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 4: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 5: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 6: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 7: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 8: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 9: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 10: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 11: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 12: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 13: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 14: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 15: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 16: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 17: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 18: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 19: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 20: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 21: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 22: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 23: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 24: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0]
2026-08-18 02:25:04.501424: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:25:04.501544: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:25:04.501744: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:25:04.501857: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:25:04.502021: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:25:04.502261: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:25:04.502408: No export window planned
2026-08-18 02:25:04.502561: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:25:04.502602: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:25:04.502800: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:25:04.502922: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:25:04.503023: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:25:04.503118: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:25:04.503276: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503345: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503450: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503815: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503859: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.503976: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504061: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504200: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504325: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504441: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504723: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.504948: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.505061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.505172: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.505288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:25:04.505394: Inverter 0 count register writes 0
2026-08-18 02:25:04.537767: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 02:25:04.547429: Total inverter register writes now 865
2026-08-18 02:25:04.635785: Info: Completed run status Hold charging
2026-08-18 02:25:04.644974: Info: record_status Hold charging target 84%-84%
2026-08-18 02:25:04.662152: Saved current settings to /config/predbat_config.json
2026-08-18 02:25:04.662486: Compare, best tariff: current metric 129.87p
2026-08-18 02:25:15.713508: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 02:25:29.457391: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0051 val_mae=0.0021 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-18 02:25:44.119218: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0050 val_mae=0.0021 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 02:25:48.838509: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:25:48.838816: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:25:48.838868: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:25:48.839035: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:25:48.839129: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:25:48.839170: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:25:48.839196: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:25:59.566464: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0047 val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0010 kWh ema_combined=0.0012 kWh
2026-08-18 02:26:13.335882: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0046 val_mae=0.0019 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0010 kWh ema_combined=0.0011 kWh
2026-08-18 02:26:27.644409: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0019 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0011 kWh ema_combined=0.0011 kWh
2026-08-18 02:26:42.207993: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0011 kWh
2026-08-18 02:26:42.215588: ML Predictor: Restored best weights from epoch with val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.5%)
2026-08-18 02:26:42.215836: ML Predictor: Training complete, final val_mae=0.0019 kWh val_bias=-0.0003 kWh (-0.5%)
2026-08-18 02:26:44.912354: ML Predictor: AR rollout over holdout: ar_mae=0.0020 kWh ar_bias=-0.0003 kWh (-0.5%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-18 02:26:44.917202: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0019 kWh
2026-08-18 02:26:44.986351: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-18 02:26:44.986586: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 02:26:45.605796: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 02:26:50.434087: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 02:26:50.492171: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7161 std=4.5826) import_rate(mean=16.6662 std=8.3583) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-18 02:26:50.583859: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 02:26:50.600445: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 02:26:50.629118: ML Predictor: Baseline (pre-finetune) val_mae=0.0060 kWh val_bias=-0.0028 kWh
2026-08-18 02:27:04.399670: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0125 val_mae=0.0054 kWh val_bias=-0.0007 kWh (-1.7%) combined=0.0030 kWh ema_combined=0.0030 kWh
2026-08-18 02:27:18.954328: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0123 val_mae=0.0052 kWh val_bias=-0.0010 kWh (-2.2%) combined=0.0031 kWh ema_combined=0.0030 kWh
2026-08-18 02:27:33.325598: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0110 val_mae=0.0048 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0033 kWh ema_combined=0.0031 kWh
2026-08-18 02:27:48.904603: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0121 val_mae=0.0043 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0029 kWh ema_combined=0.0030 kWh
2026-08-18 02:27:48.939979: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:27:48.940495: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:27:48.940643: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:27:48.940903: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:27:48.941046: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:27:48.941152: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:27:48.941243: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:28:02.922073: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0118 val_mae=0.0044 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0025 kWh ema_combined=0.0029 kWh
2026-08-18 02:28:15.938211: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0121 val_mae=0.0044 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-18 02:28:29.580740: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0113 val_mae=0.0039 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-18 02:28:44.725709: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0163 val_mae=0.0051 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0034 kWh ema_combined=0.0029 kWh
2026-08-18 02:29:05.437289: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0104 val_mae=0.0041 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0031 kWh ema_combined=0.0029 kWh
2026-08-18 02:29:19.649651: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0098 val_mae=0.0041 kWh val_bias=-0.0010 kWh (-2.4%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-18 02:29:32.940902: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0094 val_mae=0.0041 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0033 kWh ema_combined=0.0029 kWh
2026-08-18 02:29:45.989187: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0083 val_mae=0.0037 kWh val_bias=-0.0008 kWh (-2.0%) combined=0.0019 kWh ema_combined=0.0026 kWh
2026-08-18 02:29:49.359498: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:29:49.359895: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:29:49.360040: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:29:49.360270: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:29:49.360390: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:29:49.360483: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:29:49.360550: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:30:00.565798: --------------- PredBat - update at 2026-08-18 02:30:00+01:00 with clock skew 0 minutes, minutes now 150
2026-08-18 02:30:00.566671: Saved current settings to /config/predbat_config.json
2026-08-18 02:30:00.566798: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 02:30:00.566877: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:30:00.567082: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:30:00.602438: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:30:00.602705: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:30:00.603020: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:30:00.603721: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:30:00.604004: Predbat mode is set to Control charge & discharge
2026-08-18 02:30:00.618730: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0077 val_mae=0.0034 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-18 02:30:01.064652: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:30:01.064900: Using load_power data to fill gaps in load_today data
2026-08-18 02:30:02.240824: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:30:02.241152: Zero load period starting at 2026-08-17T10:54:00+0100 (936 minutes) for 189 minutes with base value 210.575
2026-08-18 02:30:02.242377: Processing 721 30-minute periods for power integration
2026-08-18 02:30:02.589047: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:30:02.589713: Car charging hold False, threshold 6.0kWh
2026-08-18 02:30:02.589767: Current data so far today: load 1.15kWh, import 8.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:30:02.601902: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:30:02.602003: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:30:02.602710: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:30:02.602779: Standing charge is set to 46.63p
2026-08-18 02:30:02.713822: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:30:02.714688: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:30:02.714987: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:30:02.716567: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:30:02.716719: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:30:02.724636: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:30:02.725289: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:30:02.795070: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:30:02.795333: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:30:02.797255: High export rate found rates in range 99p to -99p
2026-08-18 02:30:02.839531: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:30:02.839827: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:30:02.855739: Battery level now 13.44kWh, -1hr ago 12.77kWh, at midnight 6.84kWh, battery value change in the last hour 4.62p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:30:02.856466: Last hour: net energy 0.85kWh, import 0.85kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 6.8p, import 6.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:30:02.948078: Today's energy total net 8.4kWh, import 8.4kWh, export 0.0kWh, cost 113.83p, import 67.2p, export 0.0p, carbon 0.0kg
2026-08-18 02:30:02.948387: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:30:03.157890: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:30:03.190265: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:30:03.190883: Today's predicted so far 2.11kWh with 0.0kWh car/iBoost excluded, 7.33kWh import ignored, and 2.11kWh forecast extra.
2026-08-18 02:30:03.190956: Today's actual load so far 1.14kWh with 0.0kWh car/iBoost excluded, and 7.33kWh import ignored.
2026-08-18 02:30:03.259954: Inverter 0: Type SK Sunsynk
2026-08-18 02:30:03.260247: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:30:03.260671: Reserve min: 7%, battery_min: 7%
2026-08-18 02:30:03.260923: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:30:03.261477: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -575W, load power 575W, PV Power 0W
2026-08-18 02:30:03.261839: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:30:03.262103: Inverter 0 scheduled charge enable is True
2026-08-18 02:30:03.262331: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:30:03.262624: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:30:03.262953: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:30:03.263147: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:30:03.263366: Inverter 0 scheduled discharge enable is False
2026-08-18 02:30:03.263709: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:30:03.263919: Inverter 0 discharge windows currently []
2026-08-18 02:30:03.264110: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:30:03.264236: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:30:03.264432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:30:03.361069: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:30:03.361189: Plan was last updated on 2026-08-18 02:20:00+01:00 and is now 10.0 minutes old
2026-08-18 02:30:03.361427: Best charge window [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ]
2026-08-18 02:30:03.361476: Best export window [ ]
2026-08-18 02:30:03.362726: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:30:03.367674: Load divergence over 8.0 hours mean 389.11W, min 281.4W, max 651.6W, std dev 54.67W, divergence 7.02%
2026-08-18 02:30:03.398669: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:30:03.398784: LoadML is_calculating True
2026-08-18 02:30:03.398816: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:30:03.468641: predict base end_record 08-19 02:40:00, final soc 13.43kWh, metric 298.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.67kWh, PV 0.0kWh
2026-08-18 02:30:03.728449: Battery has 21.25 hours left - now at 13.44kWh
2026-08-18 02:30:03.806300: predict base10 end_record 08-19 02:40:00, final soc 11.47kWh, metric 293.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.41kWh, PV 0.0kWh
2026-08-18 02:30:03.949044: predict best10 end_record 08-19 02:40:00, final soc 1.77kWh, metric 208.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.41kWh, PV 0.0kWh
2026-08-18 02:30:04.158538: predict best end_record 08-19 02:40:00, final soc 1.9kWh, metric 199.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.67kWh, PV 0.0kWh
2026-08-18 02:30:04.158640: Saving plan best values to HA entities
2026-08-18 02:30:04.467991: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:30:04.484982: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:30:04.493081: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.58kWh, house 2.32kWh, export 0.0kWh, metric 199.62p, metric10 208.66p
2026-08-18 02:30:04.622646: Marginal costs baseline metric (no standing charge): 152.982
2026-08-18 02:30:05.158903: Marginal energy costs matrix computed: min=8.0 max=32.57
2026-08-18 02:30:05.291582: Rate array import [{'start': 150, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1600, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 150, 'end': 1600, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:30:05.292060: - Your estimated bill for today is £1.27 and tomorrow is £2.23
2026-08-18 02:30:05.303273: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:30:05.303352: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 02:30:05.303376: - For the next 48 hours there will be no solar generation.
2026-08-18 02:30:05.303396: - You will run out of battery in 21 hours.
2026-08-18 02:30:05.303415:
2026-08-18 02:30:05.367565: Plan calculation took 2.01 seconds
2026-08-18 02:30:05.370685: No high rate period found
2026-08-18 02:30:05.460432: Import threshold used for optimisation was 8.0p
2026-08-18 02:30:05.534173: Low import rate windows [0: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 1: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 2: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 3: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 4: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 5: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 6: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 7: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 8: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 9: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 10: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 11: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 12: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 13: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 14: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 15: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 16: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 17: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 18: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 19: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 20: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 21: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 22: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 23: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0]
2026-08-18 02:30:05.541051: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:30:05.541176: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:30:05.541286: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:30:05.541378: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:30:05.541495: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:30:05.541671: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:30:05.541771: No export window planned
2026-08-18 02:30:05.541876: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:30:05.541913: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:30:05.542063: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:30:05.542172: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:30:05.542237: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:30:05.542285: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:30:05.542403: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542653: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542680: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542718: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542913: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542968: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.542997: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543030: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543211: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543266: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:05.543369: Inverter 0 count register writes 0
2026-08-18 02:30:05.562660: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 02:30:05.562811: Recompute is saving previous plan...
2026-08-18 02:30:05.563724: Best charge window [ 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84% ]
2026-08-18 02:30:05.563798: Best export window [ ]
2026-08-18 02:30:05.564725: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:30:05.569217: Load divergence over 8.0 hours mean 389.11W, min 281.4W, max 651.6W, std dev 54.67W, divergence 7.02%
2026-08-18 02:30:05.588382: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:30:05.588567: LoadML is_calculating True
2026-08-18 02:30:05.588607: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:30:05.598736: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 02:30:05.600549: Optimise levels pass started at 2026-08-18 02:30:05
2026-08-18 02:30:05.600710: Optimise all windows, total charge 24 export 1
2026-08-18 02:30:08.092261: >> Region optimisation pass width 960 gives best_metric 284.86p, best_cost 290.65p, best_cycle 37.55kWh, best_import 22.1kWh
2026-08-18 02:30:08.388501: >> Region optimisation pass width 480 gives best_metric 284.86p, best_cost 290.65p, best_cycle 37.55kWh, best_import 22.1kWh
2026-08-18 02:30:08.844776: >> Region optimisation pass width 240 gives best_metric 284.86p, best_cost 290.65p, best_cycle 37.55kWh, best_import 22.1kWh
2026-08-18 02:30:10.319269: >> Region optimisation pass width 120 gives best_metric 284.86p, best_cost 290.65p, best_cycle 37.55kWh, best_import 22.1kWh
2026-08-18 02:30:10.319621: Calculated end_record as 08-19 02:30:00 based on best_price 8.0p, next_charge_start 08-18 02:30:00, max_windows 12
2026-08-18 02:30:10.319797: Optimise levels pass ended at 2026-08-18 02:30:10, duration 4.7 seconds tried 61 combinations
2026-08-18 02:30:10.319981: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 284.86p, best_keep 0kWh, best_cycle 37.55kWh, best_carbon 0kg, best_import 22.1kWh
2026-08-18 02:30:10.347167: Starting detailed optimisation end_record 08-19 02:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 02:30:17.787609: Tweak plan optimisation started metric 139.28p, cost 146.1p
2026-08-18 02:30:19.345928: Tweak optimisation finished metric 138.14p, cost 144.96p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 3.89kWh, changed 8 window(s)
2026-08-18 02:30:19.374710: Swap charge optimisation started metric 138.14p, cost 144.96p, min_improvement_swap 0.1p
2026-08-18 02:30:19.534620: Swap charge optimisation finished metric 138.14p, cost 144.96p
2026-08-18 02:30:19.690458: Pruned 1 dead plan slot(s) in 6 trial(s), nominal metric 137.26p -> 137.26p, plan now metric 138.77p, cost 144.96p, cycle 12.07kWh, import 3.89kWh
2026-08-18 02:30:19.709948: Raw charge windows [ 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 100%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:30:19.723788: Unclipped charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:30:19.724091: Unfiltered charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:30:19.724359: Filtered charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:30:19.803761: Previous plan best metric is 138.14 (cost 144.96) and new plan best metric is 138.14 (cost 144.96)
2026-08-18 02:30:19.804573: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 02:30:19.804778: Plan valid is now true after recompute was False
2026-08-18 02:30:19.831028: predict base end_record 08-19 02:30:00, final soc 12.76kWh, metric 291.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.5kWh, PV 0.0kWh
2026-08-18 02:30:19.994073: Battery has 21.25 hours left - now at 13.44kWh
2026-08-18 02:30:20.075939: predict base10 end_record 08-19 02:30:00, final soc 10.82kWh, metric 286.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.24kWh, PV 0.0kWh
2026-08-18 02:30:20.271211: predict best10 end_record 08-19 02:30:00, final soc 1.12kWh, metric 201.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.24kWh, PV 0.0kWh
2026-08-18 02:30:20.441296: predict best end_record 08-19 02:30:00, final soc 1.12kWh, metric 191.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.5kWh, PV 0.0kWh
2026-08-18 02:30:20.455979: Saving plan best values to HA entities
2026-08-18 02:30:20.718166: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:30:20.727107: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:30:20.755197: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.57kWh, house 2.32kWh, export 0.0kWh, metric 191.59p, metric10 201.68p
2026-08-18 02:30:20.861530: Marginal costs baseline metric (no standing charge): 144.9586
2026-08-18 02:30:21.309578: Marginal energy costs matrix computed: min=8.0 max=32.57
2026-08-18 02:30:21.402720: Rate array import [{'start': 150, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1590, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 150, 'end': 1590, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:30:21.403263: - Your estimated bill for today is £1.27 and tomorrow is £2.23
2026-08-18 02:30:21.403330: - Import rates are cheap (8.0p) for the next 3 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:30:21.403359: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 02:30:21.403384: - For the next 48 hours there will be no solar generation.
2026-08-18 02:30:21.403407: - You will run out of battery in 21 hours.
2026-08-18 02:30:21.403513:
2026-08-18 02:30:21.445178: Plan calculation took 15.88 seconds
2026-08-18 02:30:21.445454: Inverter 0: Type SK Sunsynk
2026-08-18 02:30:21.445507: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:30:21.445712: Reserve min: 7%, battery_min: 7%
2026-08-18 02:30:21.445798: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:30:21.446118: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -575W, load power 575W, PV Power 0W
2026-08-18 02:30:21.446296: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:30:21.446420: Inverter 0 scheduled charge enable is True
2026-08-18 02:30:21.446485: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:30:21.446601: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:30:21.446747: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:30:21.446792: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:30:21.446836: Inverter 0 scheduled discharge enable is False
2026-08-18 02:30:21.446990: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:30:21.447035: Inverter 0 discharge windows currently []
2026-08-18 02:30:21.447147: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:30:21.447191: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:30:21.447252: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:30:21.521429: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:30:21.521568: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:30:21.521800: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:30:21.521926: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:30:21.522120: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:30:21.522394: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:30:21.522577: No export window planned
2026-08-18 02:30:21.522757: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:30:21.522815: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:30:21.523177: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:30:21.523342: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:30:21.523454: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:30:21.523582: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:30:21.524010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524155: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524326: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524706: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.524891: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.525002: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.525056: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.525339: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.525400: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.525532: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.526697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.526774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.526815: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.526851: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.526896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.526940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.526983: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:30:21.527021: Inverter 0 count register writes 0
2026-08-18 02:30:21.557607: Total inverter register writes now 865
2026-08-18 02:30:21.604620: Info: Completed run status Hold charging
2026-08-18 02:30:21.613087: Info: record_status Hold charging target 84%-84%
2026-08-18 02:30:21.637384: Saved current settings to /config/predbat_config.json
2026-08-18 02:30:21.637698: Compare, best tariff: current metric 129.87p
2026-08-18 02:30:30.566100: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0072 val_mae=0.0035 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0022 kWh ema_combined=0.0024 kWh
2026-08-18 02:30:44.797602: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0082 val_mae=0.0042 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 02:30:59.518901: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0085 val_mae=0.0035 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-18 02:31:03.806186: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:31:03.806473: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:31:03.806521: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:31:03.806659: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:31:03.806700: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:31:03.806746: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:31:03.806765: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:31:11.715389: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0073 val_mae=0.0035 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 02:31:25.671010: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0068 val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 02:31:37.999307: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0061 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 02:31:50.613422: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0064 val_mae=0.0030 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-18 02:32:05.678215: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0059 val_mae=0.0033 kWh val_bias=-0.0007 kWh (-1.6%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 02:32:17.341676: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0060 val_mae=0.0031 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0022 kWh ema_combined=0.0020 kWh
2026-08-18 02:32:29.531838: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0058 val_mae=0.0029 kWh val_bias=+0.0005 kWh (+1.1%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 02:32:41.943293: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0061 val_mae=0.0029 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-18 02:32:54.476702: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0051 val_mae=0.0028 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-18 02:33:04.186520: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:33:04.187419: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:33:04.187602: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:33:04.187971: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:33:04.188141: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:33:04.188267: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:33:04.188423: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:33:08.946036: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0051 val_mae=0.0028 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 02:33:20.626166: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0027 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 02:33:32.320237: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0051 val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 02:33:45.065419: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0027 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 02:33:59.042155: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0026 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 02:33:59.048088: ML Predictor: Restored best weights from epoch with val_mae=0.0026 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-18 02:33:59.048401: ML Predictor: Training complete, final val_mae=0.0026 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-18 02:34:00.411408: ML Predictor: AR rollout over holdout: ar_mae=0.0063 kWh ar_bias=+0.0004 kWh (+0.9%) [drift vs teacher-forced: +0.0037 kWh]
2026-08-18 02:34:00.417690: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0026 kWh
2026-08-18 02:34:00.417775: ML Predictor: Curriculum final pass 5/5: full dataset (59.5 days)
2026-08-18 02:34:00.417812: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 02:34:01.118480: ML Predictor: Creating dataset with 1428 hours of training data, 48 hours validation
2026-08-18 02:34:05.699463: ML Predictor: Created 16849 training samples, 576 validation samples
2026-08-18 02:34:05.750853: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0479) pv(mean=0.0000 std=0.0100) temp(mean=19.7063 std=4.5791) import_rate(mean=16.6377 std=8.3680) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1945 std=0.5281)
2026-08-18 02:34:05.833206: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 02:34:05.846749: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 02:34:05.868167: ML Predictor: Baseline (pre-finetune) val_mae=0.0046 kWh val_bias=+0.0008 kWh
2026-08-18 02:34:20.953185: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0088 val_mae=0.0047 kWh val_bias=-0.0011 kWh (-2.4%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-18 02:34:34.506729: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0118 val_mae=0.0049 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0036 kWh ema_combined=0.0030 kWh
2026-08-18 02:34:48.303581: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0126 val_mae=0.0048 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0032 kWh ema_combined=0.0031 kWh
2026-08-18 02:35:00.168385: --------------- PredBat - update at 2026-08-18 02:35:00+01:00 with clock skew 0 minutes, minutes now 155
2026-08-18 02:35:00.169280: Saved current settings to /config/predbat_config.json
2026-08-18 02:35:00.169414: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 02:35:00.169497: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:35:00.169577: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:35:00.230214: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:35:00.230375: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:35:00.230694: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:35:00.231342: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:35:00.231556: Predbat mode is set to Control charge & discharge
2026-08-18 02:35:00.536447: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:35:00.536660: Using load_power data to fill gaps in load_today data
2026-08-18 02:35:01.991698: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:35:01.991926: Zero load period starting at 2026-08-17T10:54:00+0100 (941 minutes) for 189 minutes with base value 210.55
2026-08-18 02:35:01.992963: Processing 721 30-minute periods for power integration
2026-08-18 02:35:02.269879: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:35:02.269996: Car charging hold False, threshold 6.0kWh
2026-08-18 02:35:02.270034: Current data so far today: load 1.2kWh, import 8.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:35:02.285069: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:35:02.294319: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:35:02.295469: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:35:02.295593: Standing charge is set to 46.63p
2026-08-18 02:35:02.603331: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:35:02.603671: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:35:02.603938: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:35:02.605529: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:35:02.605662: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:35:02.613910: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:35:02.614316: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:35:02.664719: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:35:02.664879: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:35:02.666258: High export rate found rates in range 99p to -99p
2026-08-18 02:35:02.692255: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:35:02.692453: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:35:02.710720: Battery level now 13.44kWh, -1hr ago 13.11kWh, at midnight 6.84kWh, battery value change in the last hour 2.25p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:35:02.711381: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:35:02.829202: Today's energy total net 8.4kWh, import 8.4kWh, export 0.0kWh, cost 113.83p, import 67.2p, export 0.0p, carbon 0.0kg
2026-08-18 02:35:02.829387: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:35:02.941657: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:35:02.995168: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:35:02.995637: Today's predicted so far 2.23kWh with 0.0kWh car/iBoost excluded, 7.3kWh import ignored, and 2.23kWh forecast extra.
2026-08-18 02:35:02.995712: Today's actual load so far 1.2kWh with 0.0kWh car/iBoost excluded, and 7.3kWh import ignored.
2026-08-18 02:35:03.074215: Inverter 0: Type SK Sunsynk
2026-08-18 02:35:03.074594: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:35:03.074925: Reserve min: 7%, battery_min: 7%
2026-08-18 02:35:03.075062: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:35:03.075455: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -567W, load power 567W, PV Power 0W
2026-08-18 02:35:03.075726: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:35:03.076378: Inverter 0 scheduled charge enable is True
2026-08-18 02:35:03.076688: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:35:03.077416: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:35:03.077670: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:35:03.077770: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:35:03.077918: Inverter 0 scheduled discharge enable is False
2026-08-18 02:35:03.078246: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:35:03.078392: Inverter 0 discharge windows currently []
2026-08-18 02:35:03.078499: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:35:03.078630: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:35:03.078700: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:35:03.161609: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:35:03.161835: Plan was last updated on 2026-08-18 02:30:00+01:00 and is now 5.0 minutes old
2026-08-18 02:35:03.162119: Best charge window [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ]
2026-08-18 02:35:03.162171: Best export window [ ]
2026-08-18 02:35:03.163539: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:35:03.169147: Load divergence over 8.0 hours mean 390.46W, min 263.4W, max 664.2W, std dev 63.16W, divergence 8.09%
2026-08-18 02:35:03.211594: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:35:03.211714: LoadML is_calculating True
2026-08-18 02:35:03.211747: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:35:03.316189: predict base end_record 08-19 02:35:00, final soc 13.15kWh, metric 294.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.56kWh, PV 0.0kWh
2026-08-18 02:35:03.592115: Battery has 21.25 hours left - now at 13.44kWh
2026-08-18 02:35:03.689226: predict base10 end_record 08-19 02:35:00, final soc 11.14kWh, metric 289.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.3kWh, PV 0.0kWh
2026-08-18 02:35:03.794122: predict best10 end_record 08-19 02:35:00, final soc 1.44kWh, metric 204.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.3kWh, PV 0.0kWh
2026-08-18 02:35:03.909408: predict best end_record 08-19 02:35:00, final soc 1.51kWh, metric 195.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 16.56kWh, PV 0.0kWh
2026-08-18 02:35:03.909513: Saving plan best values to HA entities
2026-08-18 02:35:04.263695: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:35:04.277606: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:35:04.296874: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.0kWh, house 2.31kWh, export 0.0kWh, metric 195.0p, metric10 204.39p
2026-08-18 02:35:04.423973: Marginal costs baseline metric (no standing charge): 148.3679
2026-08-18 02:35:04.840529: Marginal energy costs matrix computed: min=8.0 max=32.55
2026-08-18 02:35:04.932548: Rate array import [{'start': 155, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1595, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 155, 'end': 1595, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:35:04.933212: - Your estimated bill for today is £1.26 and tomorrow is £2.24
2026-08-18 02:35:04.933437: - Import rates are cheap (8.0p) for the next 2 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:35:04.933576: - The battery is currently at 84% and is charging to 84% for the next 2 and a half hours.
2026-08-18 02:35:04.933700: - For the next 48 hours there will be no solar generation.
2026-08-18 02:35:04.933849: - You will run out of battery in 21 hours.
2026-08-18 02:35:04.934806:
2026-08-18 02:35:04.973705: Plan calculation took 1.81 seconds
2026-08-18 02:35:04.978292: No high rate period found
2026-08-18 02:35:05.048050: Import threshold used for optimisation was 8.0p
2026-08-18 02:35:05.163432: Low import rate windows [0: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 1: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 2: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 3: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 4: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 5: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 6: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 7: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 8: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 9: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 10: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 11: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 12: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 13: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 14: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 15: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 16: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 17: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 18: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 19: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 20: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 21: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 22: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 23: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 24: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0]
2026-08-18 02:35:05.176079: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:35:05.176389: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:35:05.176628: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:35:05.176809: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:35:05.177042: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:35:05.177372: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:35:05.177660: No export window planned
2026-08-18 02:35:05.177897: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:35:05.178027: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:35:05.178305: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:35:05.178512: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:35:05.178674: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:35:05.178826: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:35:05.179035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.179175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.179308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.179457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.179587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.179715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.179842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.180033: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.180174: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.180305: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.180453: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.180584: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.180737: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.180867: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181177: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181305: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181448: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181577: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181827: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:35:05.181945: Inverter 0 count register writes 0
2026-08-18 02:35:05.223630: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 02:35:05.230659: Total inverter register writes now 865
2026-08-18 02:35:05.299518: Info: Completed run status Hold charging
2026-08-18 02:35:05.312101: Info: record_status Hold charging target 84%-84%
2026-08-18 02:35:05.321651: Saved current settings to /config/predbat_config.json
2026-08-18 02:35:05.321978: Compare, best tariff: current metric 129.87p
2026-08-18 02:35:05.793769: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0121 val_mae=0.0046 kWh val_bias=+0.0004 kWh (+1.0%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-18 02:35:20.506769: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0126 val_mae=0.0039 kWh val_bias=-0.0009 kWh (-2.2%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-18 02:35:33.545982: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0103 val_mae=0.0046 kWh val_bias=-0.0016 kWh (-3.8%) combined=0.0039 kWh ema_combined=0.0031 kWh
2026-08-18 02:35:49.495549: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:35:49.495883: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:35:49.495977: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:35:49.496155: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:35:49.496203: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:35:49.496232: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:35:49.496258: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:35:50.199870: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0102 val_mae=0.0039 kWh val_bias=-0.0008 kWh (-2.0%) combined=0.0024 kWh ema_combined=0.0029 kWh
2026-08-18 02:36:05.386036: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0082 val_mae=0.0040 kWh val_bias=+0.0012 kWh (+2.7%) combined=0.0036 kWh ema_combined=0.0031 kWh
2026-08-18 02:36:22.392681: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0078 val_mae=0.0037 kWh val_bias=+0.0007 kWh (+1.6%) combined=0.0030 kWh ema_combined=0.0031 kWh
2026-08-18 02:36:38.510033: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0089 val_mae=0.0037 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0022 kWh ema_combined=0.0028 kWh
2026-08-18 02:36:56.843562: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0078 val_mae=0.0034 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0024 kWh ema_combined=0.0027 kWh
2026-08-18 02:37:16.735832: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0075 val_mae=0.0042 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-18 02:37:32.253696: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0081 val_mae=0.0036 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-18 02:37:46.297132: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0069 val_mae=0.0032 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0021 kWh ema_combined=0.0024 kWh
2026-08-18 02:37:59.537715: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0073 val_mae=0.0032 kWh val_bias=-0.0014 kWh (-3.3%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 02:38:03.890718: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:38:03.891307: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:38:03.891446: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:38:03.891840: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:38:03.891977: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:38:03.892096: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:38:03.892209: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:38:13.400566: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0072 val_mae=0.0031 kWh val_bias=+0.0007 kWh (+1.7%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-18 02:38:29.028857: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0067 val_mae=0.0034 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0027 kWh ema_combined=0.0024 kWh
2026-08-18 02:38:43.058427: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0059 val_mae=0.0029 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0020 kWh ema_combined=0.0023 kWh
2026-08-18 02:38:56.530719: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0058 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-18 02:39:11.828063: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0027 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-18 02:39:26.243115: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0061 val_mae=0.0027 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-18 02:39:44.177193: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0052 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 02:39:56.017630: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0057 val_mae=0.0026 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 02:40:00.288165: --------------- PredBat - update at 2026-08-18 02:40:00+01:00 with clock skew 0 minutes, minutes now 160
2026-08-18 02:40:00.289256: Saved current settings to /config/predbat_config.json
2026-08-18 02:40:00.289472: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 02:40:00.289663: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:40:00.289826: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:40:00.322146: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:40:00.322354: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:40:00.322647: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:40:00.323326: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:40:00.323562: Predbat mode is set to Control charge & discharge
2026-08-18 02:40:00.796602: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:40:00.812087: Using load_power data to fill gaps in load_today data
2026-08-18 02:40:02.120910: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:40:02.121129: Zero load period starting at 2026-08-17T10:54:00+0100 (946 minutes) for 189 minutes with base value 210.525
2026-08-18 02:40:02.122460: Processing 721 30-minute periods for power integration
2026-08-18 02:40:02.398654: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:40:02.398858: Car charging hold False, threshold 6.0kWh
2026-08-18 02:40:02.398907: Current data so far today: load 1.25kWh, import 8.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:40:02.414407: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:40:02.414593: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:40:02.415296: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:40:02.415371: Standing charge is set to 46.63p
2026-08-18 02:40:02.559544: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:40:02.560023: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:40:02.560414: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:40:02.562167: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:40:02.562440: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:40:02.570457: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:40:02.570982: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:40:02.645865: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:40:02.646120: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:40:02.647274: High export rate found rates in range 99p to -99p
2026-08-18 02:40:02.690491: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:40:02.690827: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:40:02.706960: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:40:02.707373: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:40:02.854437: Today's energy total net 8.5kWh, import 8.5kWh, export 0.0kWh, cost 114.63p, import 68.0p, export 0.0p, carbon 0.0kg
2026-08-18 02:40:02.854564: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:40:02.921037: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:40:02.943088: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:40:02.943173: Today's predicted so far 2.28kWh with 0.0kWh car/iBoost excluded, 7.34kWh import ignored, and 2.28kWh forecast extra.
2026-08-18 02:40:02.943205: Today's actual load so far 1.22kWh with 0.0kWh car/iBoost excluded, and 7.34kWh import ignored.
2026-08-18 02:40:02.994666: Inverter 0: Type SK Sunsynk
2026-08-18 02:40:02.994753: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:40:02.994982: Reserve min: 7%, battery_min: 7%
2026-08-18 02:40:02.995064: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:40:02.995352: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -542W, load power 542W, PV Power 0W
2026-08-18 02:40:02.995547: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:40:02.995644: Inverter 0 scheduled charge enable is True
2026-08-18 02:40:02.995703: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:40:02.995821: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:40:02.995985: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:40:02.996029: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:40:02.996143: Inverter 0 scheduled discharge enable is False
2026-08-18 02:40:02.996342: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:40:02.996400: Inverter 0 discharge windows currently []
2026-08-18 02:40:02.996470: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:40:02.996530: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:40:02.996611: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:40:03.075775: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:40:03.075882: Plan was last updated on 2026-08-18 02:30:00+01:00 and is now 10.0 minutes old
2026-08-18 02:40:03.076112: Best charge window [ 18-08 02:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 02:30:00 @ 8.0p 100% ]
2026-08-18 02:40:03.076160: Best export window [ ]
2026-08-18 02:40:03.077230: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:40:03.081244: Load divergence over 8.0 hours mean 390.47W, min 262.2W, max 702.6W, std dev 61.74W, divergence 7.91%
2026-08-18 02:40:03.119998: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:40:03.120126: LoadML is_calculating True
2026-08-18 02:40:03.120152: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:40:03.169267: predict base end_record 08-19 02:40:00, final soc 13.43kWh, metric 298.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.61kWh, PV 0.0kWh
2026-08-18 02:40:03.432122: Battery has 21.08 hours left - now at 13.44kWh
2026-08-18 02:40:03.525809: predict base10 end_record 08-19 02:40:00, final soc 11.47kWh, metric 292.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.35kWh, PV 0.0kWh
2026-08-18 02:40:03.662640: predict best10 end_record 08-19 02:40:00, final soc 1.77kWh, metric 207.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.35kWh, PV 0.0kWh
2026-08-18 02:40:03.824406: predict best end_record 08-19 02:40:00, final soc 1.9kWh, metric 199.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.61kWh, PV 0.0kWh
2026-08-18 02:40:03.824567: Saving plan best values to HA entities
2026-08-18 02:40:04.197986: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:40:04.207179: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:40:04.216668: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.42kWh, house 2.31kWh, export 0.0kWh, metric 199.13p, metric10 207.88p
2026-08-18 02:40:04.395594: Marginal costs baseline metric (no standing charge): 152.5004
2026-08-18 02:40:04.755834: Marginal energy costs matrix computed: min=8.0 max=32.54
2026-08-18 02:40:04.878302: Rate array import [{'start': 160, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1600, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 160, 'end': 1600, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:40:04.879060: - Your estimated bill for today is £1.27 and tomorrow is £2.23
2026-08-18 02:40:04.879255: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:40:04.879399: - The battery is currently at 84% and is charging to 84% for the next 2 and a quarter hours.
2026-08-18 02:40:04.879520: - For the next 48 hours there will be no solar generation.
2026-08-18 02:40:04.879632: - You will run out of battery in 21 hours.
2026-08-18 02:40:04.879741:
2026-08-18 02:40:04.933476: Plan calculation took 1.86 seconds
2026-08-18 02:40:04.936617: No high rate period found
2026-08-18 02:40:05.003196: Import threshold used for optimisation was 8.0p
2026-08-18 02:40:05.092068: Low import rate windows [0: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 1: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 2: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 3: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 4: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 5: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 6: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 7: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 8: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 9: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 10: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 11: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 12: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 13: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 14: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 15: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 16: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 17: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 18: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 19: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 20: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 21: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 22: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 23: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 24: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0]
2026-08-18 02:40:05.106910: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:00:00
2026-08-18 02:40:05.107024: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:40:05.107130: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:40:05.107203: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:40:05.107309: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:40:05.107780: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:40:05.107940: No export window planned
2026-08-18 02:40:05.108059: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:40:05.108097: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:40:05.108237: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:40:05.108314: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:40:05.108373: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:40:05.108453: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:40:05.108543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.108607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.108638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.108664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.108772: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.108818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.108891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.108979: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109026: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109099: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109171: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109263: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109306: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109392: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.109578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.110052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.110114: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.110217: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.110259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.110923: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:05.110991: Inverter 0 count register writes 0
2026-08-18 02:40:05.149067: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 02:40:05.149233: Recompute is saving previous plan...
2026-08-18 02:40:05.150356: Best charge window [ 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84% ]
2026-08-18 02:40:05.150442: Best export window [ ]
2026-08-18 02:40:05.151524: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:40:05.155326: Load divergence over 8.0 hours mean 390.47W, min 262.2W, max 702.6W, std dev 61.74W, divergence 7.91%
2026-08-18 02:40:05.208115: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:40:05.208251: LoadML is_calculating True
2026-08-18 02:40:05.208277: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 02:40:05.219834: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 02:40:05.221117: Optimise levels pass started at 2026-08-18 02:40:05
2026-08-18 02:40:05.240042: Optimise all windows, total charge 24 export 1
2026-08-18 02:40:07.352905: >> Region optimisation pass width 960 gives best_metric 285.7p, best_cost 291.48p, best_cycle 37.53kWh, best_import 22.11kWh
2026-08-18 02:40:07.791129: >> Region optimisation pass width 480 gives best_metric 285.7p, best_cost 291.48p, best_cycle 37.53kWh, best_import 22.11kWh
2026-08-18 02:40:08.096212: >> Region optimisation pass width 240 gives best_metric 285.7p, best_cost 291.48p, best_cycle 37.53kWh, best_import 22.11kWh
2026-08-18 02:40:09.456962: >> Region optimisation pass width 120 gives best_metric 285.7p, best_cost 291.48p, best_cycle 37.53kWh, best_import 22.11kWh
2026-08-18 02:40:09.457301: Calculated end_record as 08-19 03:00:00 based on best_price 8.0p, next_charge_start 08-18 03:00:00, max_windows 13
2026-08-18 02:40:09.457478: Optimise levels pass ended at 2026-08-18 02:40:09, duration 4.2 seconds tried 63 combinations
2026-08-18 02:40:09.457627: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 285.7p, best_keep 0kWh, best_cycle 37.53kWh, best_carbon 0kg, best_import 22.11kWh
2026-08-18 02:40:09.477867: Starting detailed optimisation end_record 08-19 03:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 02:40:18.516328: Tweak plan optimisation started metric 142.18p, cost 148.99p
2026-08-18 02:40:19.906110: Tweak optimisation finished metric 141.04p, cost 147.85p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.15kWh, changed 8 window(s)
2026-08-18 02:40:19.926269: Swap charge optimisation started metric 141.04p, cost 147.85p, min_improvement_swap 0.1p
2026-08-18 02:40:20.174666: Swap charge optimisation finished metric 141.04p, cost 147.85p
2026-08-18 02:40:20.279780: Pruned 1 dead plan slot(s) in 6 trial(s), nominal metric 140.15p -> 140.15p, plan now metric 141.64p, cost 147.85p, cycle 12.07kWh, import 4.15kWh
2026-08-18 02:40:20.290702: Raw charge windows [ 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:40:20.291230: Unclipped charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:40:20.291815: Unfiltered charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:40:20.293040: Filtered charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:40:20.348364: Previous plan best metric is 144.94 (cost 167.85) and new plan best metric is 141.04 (cost 147.85)
2026-08-18 02:40:20.348678: New plan metric is significantly better from previous plan, using new plan
2026-08-18 02:40:20.348731: Plan valid is now true after recompute was False
2026-08-18 02:40:20.389451: predict base end_record 08-19 03:00:00, final soc 13.44kWh, metric 300.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.87kWh, PV 0.0kWh
2026-08-18 02:40:20.584866: Battery has 21.08 hours left - now at 13.44kWh
2026-08-18 02:40:20.646505: predict base10 end_record 08-19 03:00:00, final soc 12.76kWh, metric 305.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.61kWh, PV 0.0kWh
2026-08-18 02:40:20.784949: predict best10 end_record 08-19 03:00:00, final soc 1.12kWh, metric 204.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.61kWh, PV 0.0kWh
2026-08-18 02:40:20.913159: predict best end_record 08-19 03:00:00, final soc 1.12kWh, metric 194.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.87kWh, PV 0.0kWh
2026-08-18 02:40:20.932109: Saving plan best values to HA entities
2026-08-18 02:40:21.249611: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:40:21.256065: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:40:21.296975: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.42kWh, house 2.73kWh, export 0.0kWh, metric 194.48p, metric10 204.43p
2026-08-18 02:40:21.418534: Marginal costs baseline metric (no standing charge): 147.8458
2026-08-18 02:40:21.800621: Marginal energy costs matrix computed: min=8.0 max=32.54
2026-08-18 02:40:21.932769: Rate array import [{'start': 160, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1620, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 160, 'end': 1620, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:40:21.933433: - Your estimated bill for today is £1.27 and tomorrow is £2.35
2026-08-18 02:40:21.934413: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:40:21.934488: - The battery is currently at 84% and is charging to 84% for the next 2 and a quarter hours.
2026-08-18 02:40:21.934558: - For the next 48 hours there will be no solar generation.
2026-08-18 02:40:21.934644: - You will run out of battery in 21 hours.
2026-08-18 02:40:21.934687:
2026-08-18 02:40:21.984115: Plan calculation took 16.83 seconds
2026-08-18 02:40:21.984405: Inverter 0: Type SK Sunsynk
2026-08-18 02:40:21.984531: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:40:21.984806: Reserve min: 7%, battery_min: 7%
2026-08-18 02:40:21.984939: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:40:21.985317: Inverter 0 SoC: 13.42kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -16W, current battery voltage 51.2V, grid power -551W, load power 540W, PV Power 0W
2026-08-18 02:40:21.985567: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:40:21.985720: Inverter 0 scheduled charge enable is True
2026-08-18 02:40:21.985830: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:40:21.986000: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:40:21.986578: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:40:21.986638: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:40:21.986765: Inverter 0 scheduled discharge enable is False
2026-08-18 02:40:21.986992: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:40:21.987050: Inverter 0 discharge windows currently []
2026-08-18 02:40:21.997815: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:40:21.997904: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:40:21.997927: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:40:22.110460: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 02:40:22.110680: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:40:22.110848: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:40:22.110967: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:40:22.111132: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:40:22.111357: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:40:22.111517: No export window planned
2026-08-18 02:40:22.111669: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:40:22.111711: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:40:22.111890: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:40:22.112090: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:40:22.112193: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.02kWh and this battery needs to add 0.02kWh to get to 13.44kWh
2026-08-18 02:40:22.112289: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:40:22.112440: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.112490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.112620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.112692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.112762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.112804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.112899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.112989: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113034: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113134: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113175: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113269: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113311: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113417: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113712: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113808: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113848: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:40:22.113976: Inverter 0 count register writes 0
2026-08-18 02:40:22.168139: Total inverter register writes now 865
2026-08-18 02:40:22.213770: Info: Completed run status Hold charging
2026-08-18 02:40:22.222153: Info: record_status Hold charging target 84%-84%
2026-08-18 02:40:22.230481: Saved current settings to /config/predbat_config.json
2026-08-18 02:40:22.230658: Compare, best tariff: current metric 129.87p
2026-08-18 02:40:26.242820: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0052 val_mae=0.0028 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0022 kWh ema_combined=0.0018 kWh
2026-08-18 02:40:41.488238: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0051 val_mae=0.0027 kWh val_bias=-0.0002 kWh (-0.6%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 02:40:55.034476: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0049 val_mae=0.0025 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-18 02:41:04.364152: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:41:04.364681: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:41:04.364737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:41:04.364905: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:41:04.364952: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:41:04.364980: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:41:04.365078: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:41:08.813668: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0048 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-18 02:41:21.622358: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0050 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-18 02:41:36.308107: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-18 02:41:49.897163: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0048 val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 02:41:49.904794: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.9%)
2026-08-18 02:41:49.905174: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0004 kWh (-0.9%)
2026-08-18 02:41:50.932288: ML Predictor: AR rollout over holdout: ar_mae=0.0052 kWh ar_bias=-0.0004 kWh (-0.8%) [drift vs teacher-forced: +0.0028 kWh]
2026-08-18 02:41:50.937783: ML Predictor: Curriculum training complete, final val_mae=0.0024 kWh
2026-08-18 02:41:50.948651: ML Component: Training successful, val_mae=0.0024 kWh
2026-08-18 02:41:51.079239: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 02:41:51.084498: ML Component: Generating predictions load data age 59.0 days, 17138 data points
2026-08-18 02:41:51.231891: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0251 max_dow {0: 0.08345277784036266, 1: 0.09392812554407866, 2: 0.10952187459506094, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-18 02:41:51.645827: ML Component: Generated 576 predictions (total 28.85 kWh over 48h)
2026-08-18 02:41:51.683507: ML Component: Prediction cycle completed
2026-08-18 02:41:51.796536: ML Component: Saved 17138 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 02:43:18.689970: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:43:18.690233: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:43:18.690275: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:43:18.690389: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:43:18.690439: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:43:18.690458: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:43:18.690473: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:45:00.877522: --------------- PredBat - update at 2026-08-18 02:45:00+01:00 with clock skew 0 minutes, minutes now 165
2026-08-18 02:45:00.878357: Saved current settings to /config/predbat_config.json
2026-08-18 02:45:00.878498: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 02:45:00.878576: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:45:00.878671: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:45:00.895530: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:45:00.895663: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:45:00.895816: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:45:00.896420: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:45:00.896545: Predbat mode is set to Control charge & discharge
2026-08-18 02:45:01.081363: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:45:01.081518: Using load_power data to fill gaps in load_today data
2026-08-18 02:45:01.811249: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:45:01.811398: Zero load period starting at 2026-08-17T10:54:00+0100 (951 minutes) for 189 minutes with base value 210.5
2026-08-18 02:45:01.812235: Processing 721 30-minute periods for power integration
2026-08-18 02:45:01.962162: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:45:01.962424: Car charging hold False, threshold 6.0kWh
2026-08-18 02:45:01.962471: Current data so far today: load 1.3kWh, import 8.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:45:01.974276: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:45:01.974362: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:45:01.974958: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:45:01.975014: Standing charge is set to 46.63p
2026-08-18 02:45:02.076520: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:45:02.076761: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:45:02.076939: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:45:02.077983: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:45:02.078086: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:45:02.083125: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:45:02.083579: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:45:02.125328: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:45:02.125434: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:45:02.126494: High export rate found rates in range 99p to -99p
2026-08-18 02:45:02.147228: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:45:02.147324: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:45:02.156915: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:45:02.157223: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:45:02.196471: Today's energy total net 8.5kWh, import 8.5kWh, export 0.0kWh, cost 114.63p, import 68.0p, export 0.0p, carbon 0.0kg
2026-08-18 02:45:02.196591: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:45:02.258278: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:45:02.280596: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:45:02.280700: Today's predicted so far 2.31kWh with 0.0kWh car/iBoost excluded, 7.37kWh import ignored, and 2.31kWh forecast extra.
2026-08-18 02:45:02.280727: Today's actual load so far 1.26kWh with 0.0kWh car/iBoost excluded, and 7.37kWh import ignored.
2026-08-18 02:45:02.315690: Inverter 0: Type SK Sunsynk
2026-08-18 02:45:02.315793: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:45:02.316083: Reserve min: 7%, battery_min: 7%
2026-08-18 02:45:02.316190: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:45:02.316551: Inverter 0 SoC: 13.42kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -529W, load power 529W, PV Power 0W
2026-08-18 02:45:02.316737: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:45:02.316853: Inverter 0 scheduled charge enable is True
2026-08-18 02:45:02.316919: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:45:02.317037: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:45:02.317213: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:45:02.317266: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:45:02.317305: Inverter 0 scheduled discharge enable is False
2026-08-18 02:45:02.317491: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:45:02.317541: Inverter 0 discharge windows currently []
2026-08-18 02:45:02.317564: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:45:02.317580: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:45:02.317595: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:45:02.369563: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:45:02.369667: Plan was last updated on 2026-08-18 02:40:00+01:00 and is now 5.0 minutes old
2026-08-18 02:45:02.369914: Best charge window [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ]
2026-08-18 02:45:02.369962: Best export window [ ]
2026-08-18 02:45:02.370807: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:45:02.374028: Load divergence over 8.0 hours mean 390.46W, min 274.2W, max 741.0W, std dev 62.87W, divergence 8.05%
2026-08-18 02:45:02.391001: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:45:02.391115: LoadML is_calculating False
2026-08-18 02:45:02.391170: Creating pool of 12 processes to match your CPU count
2026-08-18 02:45:02.508755: predict base end_record 08-19 03:05:00, final soc 13.44kWh, metric 300.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.91kWh, PV 0.0kWh
2026-08-18 02:45:02.621536: Battery has 21.0 hours left - now at 13.42kWh
2026-08-18 02:45:02.663825: predict base10 end_record 08-19 03:05:00, final soc 13.08kWh, metric 308.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.66kWh, PV 0.0kWh
2026-08-18 02:45:02.734755: predict best10 end_record 08-19 03:05:00, final soc 1.44kWh, metric 207.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.66kWh, PV 0.0kWh
2026-08-18 02:45:02.806393: predict best end_record 08-19 03:05:00, final soc 1.51kWh, metric 197.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.91kWh, PV 0.0kWh
2026-08-18 02:45:02.806507: Saving plan best values to HA entities
2026-08-18 02:45:02.948782: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:45:02.953181: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:45:02.957386: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.85kWh, house 2.73kWh, export 0.0kWh, metric 197.94p, metric10 207.37p
2026-08-18 02:45:03.018692: Marginal costs baseline metric (no standing charge): 151.3102
2026-08-18 02:45:03.262614: Marginal energy costs matrix computed: min=8.0 max=32.55
2026-08-18 02:45:03.321293: Rate array import [{'start': 165, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1625, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 165, 'end': 1625, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:45:03.321643: - Your estimated bill for today is £1.27 and tomorrow is £2.35
2026-08-18 02:45:03.321679: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:45:03.321698: - The battery is currently at 84% and is charging to 84% for the next 2 and a quarter hours.
2026-08-18 02:45:03.321714: - For the next 48 hours there will be no solar generation.
2026-08-18 02:45:03.321729: - You will run out of battery in 21 hours.
2026-08-18 02:45:03.321743:
2026-08-18 02:45:03.363270: Plan calculation took 0.99 seconds
2026-08-18 02:45:03.366179: No high rate period found
2026-08-18 02:45:03.410971: Import threshold used for optimisation was 8.0p
2026-08-18 02:45:03.454521: Low import rate windows [0: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 1: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 2: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 3: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 4: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 5: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 6: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 7: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 8: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 9: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 10: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 11: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 12: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 13: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 14: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 15: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 16: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 17: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 18: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 19: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 20: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 21: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 22: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 23: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 24: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0]
2026-08-18 02:45:03.459684: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 02:45:03.459803: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:45:03.460044: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:45:03.460186: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:45:03.460375: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:45:03.460706: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:45:03.460867: No export window planned
2026-08-18 02:45:03.461048: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:45:03.461103: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:45:03.461309: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:45:03.461483: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:45:03.461593: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.02kWh and this battery needs to add 0.02kWh to get to 13.44kWh
2026-08-18 02:45:03.461675: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:45:03.461797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.461839: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.461876: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.461906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.461936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.461966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.461995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462038: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462072: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462102: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462130: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462163: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462192: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462217: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462318: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462367: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462436: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:45:03.462484: Inverter 0 count register writes 0
2026-08-18 02:45:03.476809: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 02:45:03.481877: Total inverter register writes now 865
2026-08-18 02:45:03.511260: Info: Completed run status Hold charging
2026-08-18 02:45:03.517070: Info: record_status Hold charging target 84%-84%
2026-08-18 02:45:03.524425: Saved current settings to /config/predbat_config.json
2026-08-18 02:45:03.524736: Compare, best tariff: current metric 129.87p
2026-08-18 02:45:34.618465: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:45:34.618837: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:45:34.618918: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:45:34.619155: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:45:34.619205: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:45:34.619250: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:45:34.619283: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:47:48.851865: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:47:48.852178: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:47:48.852213: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:47:48.852359: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:47:48.852398: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:47:48.852456: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:47:48.852485: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:47:52.175084: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 02:47:53.234231: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:47:53.234426: Zero load period starting at 2026-08-17T10:54:00+0100 (951 minutes) for 189 minutes with base value 403.4
2026-08-18 02:47:53.235260: Processing 1345 30-minute periods for power integration
2026-08-18 02:47:53.341174: ML Component: Car charging hold False, car energy reported load False
2026-08-18 02:47:53.441055: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:47:53.539299: ML Temperature data points: 50236
2026-08-18 02:47:53.806999: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 02:47:53.844879: ML Component: Data fetch completed, load data age 59.0 days, 17145 data points
2026-08-18 02:47:53.844989: ML Component: No training needed, model age is 0.05 hours
2026-08-18 02:47:53.845046: ML Component: Generating predictions load data age 59.0 days, 17145 data points
2026-08-18 02:47:53.983083: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0477 max_dow {0: 0.08633055561814043, 1: 0.0925312498660758, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 02:47:54.386817: ML Component: Generated 576 predictions (total 28.45 kWh over 48h)
2026-08-18 02:47:54.423485: ML Component: Prediction cycle completed
2026-08-18 02:47:54.527885: ML Component: Saved 17145 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 02:49:49.072324: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:49:49.072616: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:49:49.072673: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:49:49.072802: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:49:49.072842: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:49:49.072864: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:49:49.072882: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:50:00.152983: --------------- PredBat - update at 2026-08-18 02:50:00+01:00 with clock skew 0 minutes, minutes now 170
2026-08-18 02:50:00.153712: Saved current settings to /config/predbat_config.json
2026-08-18 02:50:00.153829: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 02:50:00.153917: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:50:00.154024: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:50:00.171604: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:50:00.171728: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:50:00.171886: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:50:00.172509: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:50:00.172631: Predbat mode is set to Control charge & discharge
2026-08-18 02:50:00.358892: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:50:00.359028: Using load_power data to fill gaps in load_today data
2026-08-18 02:50:01.160404: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:50:01.160590: Zero load period starting at 2026-08-17T10:54:00+0100 (956 minutes) for 189 minutes with base value 210.475
2026-08-18 02:50:01.161486: Processing 721 30-minute periods for power integration
2026-08-18 02:50:01.322243: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:50:01.322351: Car charging hold False, threshold 6.0kWh
2026-08-18 02:50:01.322390: Current data so far today: load 1.35kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:50:01.334269: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:50:01.334347: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:50:01.334998: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:50:01.335058: Standing charge is set to 46.63p
2026-08-18 02:50:01.428730: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:50:01.428926: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:50:01.429073: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:50:01.429943: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:50:01.430233: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:50:01.434494: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:50:01.434753: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:50:01.472879: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:50:01.473475: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:50:01.474446: High export rate found rates in range 99p to -99p
2026-08-18 02:50:01.493871: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:50:01.493961: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:50:01.504291: Battery level now 13.42kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -0.11p, change today 45.25p, rate_forward 6.87p
2026-08-18 02:50:01.504597: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:50:01.544837: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 115.43p, import 68.8p, export 0.0p, carbon 0.0kg
2026-08-18 02:50:01.544937: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:50:01.605347: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:50:01.628388: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:50:01.628486: Today's predicted so far 2.35kWh with 0.0kWh car/iBoost excluded, 7.39kWh import ignored, and 2.35kWh forecast extra.
2026-08-18 02:50:01.628514: Today's actual load so far 1.3kWh with 0.0kWh car/iBoost excluded, and 7.39kWh import ignored.
2026-08-18 02:50:01.665926: Inverter 0: Type SK Sunsynk
2026-08-18 02:50:01.666052: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:50:01.666347: Reserve min: 7%, battery_min: 7%
2026-08-18 02:50:01.666416: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:50:01.666660: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -515W, load power 515W, PV Power 0W
2026-08-18 02:50:01.666784: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:50:01.666853: Inverter 0 scheduled charge enable is True
2026-08-18 02:50:01.666892: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:50:01.666964: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:50:01.667101: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:50:01.667158: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:50:01.667201: Inverter 0 scheduled discharge enable is False
2026-08-18 02:50:01.667333: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:50:01.667379: Inverter 0 discharge windows currently []
2026-08-18 02:50:01.667438: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:50:01.667466: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:50:01.667496: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:50:01.767407: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:50:01.768972: Plan was last updated on 2026-08-18 02:40:00+01:00 and is now 10.0 minutes old
2026-08-18 02:50:01.769211: Best charge window [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ]
2026-08-18 02:50:01.769267: Best export window [ ]
2026-08-18 02:50:01.769885: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:50:01.772315: Load divergence over 8.0 hours mean 390.48W, min 297.6W, max 693.0W, std dev 50.47W, divergence 6.46%
2026-08-18 02:50:01.787561: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:50:01.787652: LoadML is_calculating False
2026-08-18 02:50:01.787703: Creating pool of 12 processes to match your CPU count
2026-08-18 02:50:01.925135: predict base end_record 08-19 03:10:00, final soc 13.44kWh, metric 300.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.96kWh, PV 0.0kWh
2026-08-18 02:50:02.118745: Battery has 20.92 hours left - now at 13.44kWh
2026-08-18 02:50:02.189331: predict base10 end_record 08-19 03:10:00, final soc 13.41kWh, metric 312.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.7kWh, PV 0.0kWh
2026-08-18 02:50:02.256395: predict best10 end_record 08-19 03:10:00, final soc 1.77kWh, metric 210.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.7kWh, PV 0.0kWh
2026-08-18 02:50:02.321316: predict best end_record 08-19 03:10:00, final soc 1.9kWh, metric 201.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.96kWh, PV 0.0kWh
2026-08-18 02:50:02.321393: Saving plan best values to HA entities
2026-08-18 02:50:02.464631: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:50:02.468980: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:50:02.473324: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.26kWh, house 2.72kWh, export 0.0kWh, metric 201.88p, metric10 210.65p
2026-08-18 02:50:02.541260: Marginal costs baseline metric (no standing charge): 155.246
2026-08-18 02:50:02.751876: Marginal energy costs matrix computed: min=8.0 max=32.53
2026-08-18 02:50:02.809694: Rate array import [{'start': 170, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1630, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 170, 'end': 1630, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:50:02.810111: - Your estimated bill for today is £1.27 and tomorrow is £2.35
2026-08-18 02:50:02.810162: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:50:02.810188: - The battery is currently at 84% and is charging to 84% for the next 2 and a quarter hours.
2026-08-18 02:50:02.810217: - For the next 48 hours there will be no solar generation.
2026-08-18 02:50:02.810238: - You will run out of battery in 21 hours.
2026-08-18 02:50:02.810255:
2026-08-18 02:50:02.859473: Plan calculation took 1.09 seconds
2026-08-18 02:50:02.862116: No high rate period found
2026-08-18 02:50:02.908057: Import threshold used for optimisation was 8.0p
2026-08-18 02:50:02.955720: Low import rate windows [0: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 1: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 2: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 3: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 4: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 5: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 6: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 7: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 8: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 9: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 10: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 11: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 12: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 13: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 14: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 15: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 16: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 17: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 18: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 19: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 20: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 21: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 22: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 23: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 24: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0]
2026-08-18 02:50:02.962303: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 02:50:02.962441: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:50:02.962630: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:50:02.962726: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:50:02.962898: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:50:02.963125: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:50:02.963235: No export window planned
2026-08-18 02:50:02.963340: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:50:02.963369: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:50:02.963500: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:50:02.963577: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:50:02.963627: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:50:02.963684: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:50:02.963780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.963813: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.963836: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.963857: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.963890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964093: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964117: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964143: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964166: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964188: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964214: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964234: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964293: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964447: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:02.964595: Inverter 0 count register writes 0
2026-08-18 02:50:02.980464: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 02:50:02.980625: Recompute is saving previous plan...
2026-08-18 02:50:02.981420: Best charge window [ 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84% ]
2026-08-18 02:50:02.981491: Best export window [ ]
2026-08-18 02:50:02.982152: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:50:02.984685: Load divergence over 8.0 hours mean 390.48W, min 297.6W, max 693.0W, std dev 50.47W, divergence 6.46%
2026-08-18 02:50:02.999675: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:50:02.999771: LoadML is_calculating False
2026-08-18 02:50:02.999831: Creating pool of 12 processes to match your CPU count
2026-08-18 02:50:03.077452: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 02:50:03.078162: Optimise levels pass started at 2026-08-18 02:50:03
2026-08-18 02:50:03.078208: Optimise all windows, total charge 24 export 1
2026-08-18 02:50:03.394274: >> Region optimisation pass width 960 gives best_metric 286.59p, best_cost 292.38p, best_cycle 37.53kWh, best_import 22.12kWh
2026-08-18 02:50:03.543265: >> Region optimisation pass width 480 gives best_metric 286.59p, best_cost 292.38p, best_cycle 37.53kWh, best_import 22.12kWh
2026-08-18 02:50:03.784501: >> Region optimisation pass width 240 gives best_metric 286.59p, best_cost 292.38p, best_cycle 37.53kWh, best_import 22.12kWh
2026-08-18 02:50:04.356748: >> Region optimisation pass width 120 gives best_metric 286.59p, best_cost 292.38p, best_cycle 37.53kWh, best_import 22.12kWh
2026-08-18 02:50:04.357093: Calculated end_record as 08-19 03:00:00 based on best_price 8.0p, next_charge_start 08-18 03:00:00, max_windows 13
2026-08-18 02:50:04.357249: Optimise levels pass ended at 2026-08-18 02:50:04, duration 1.3 seconds tried 63 combinations
2026-08-18 02:50:04.357355: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 286.59p, best_keep 0kWh, best_cycle 37.53kWh, best_carbon 0kg, best_import 22.12kWh
2026-08-18 02:50:04.377707: Starting detailed optimisation end_record 08-19 03:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 02:50:06.295727: Tweak plan optimisation started metric 141.96p, cost 148.77p
2026-08-18 02:50:06.541181: Tweak optimisation finished metric 140.82p, cost 147.63p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.02kWh, changed 8 window(s)
2026-08-18 02:50:06.560287: Swap charge optimisation started metric 140.82p, cost 147.63p, min_improvement_swap 0.1p
2026-08-18 02:50:06.654501: Swap charge optimisation finished metric 140.82p, cost 147.63p
2026-08-18 02:50:06.737696: Pruned 1 dead plan slot(s) in 6 trial(s), nominal metric 139.93p -> 139.93p, plan now metric 141.41p, cost 147.63p, cycle 12.07kWh, import 4.02kWh
2026-08-18 02:50:06.747467: Raw charge windows [ 18-08 02:30:00 - 18-08 03:00:00 @ 8.0p 84%, 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:50:06.747738: Unclipped charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:50:06.747879: Unfiltered charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:50:06.748036: Filtered charge windows [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 02:50:06.781285: Previous plan best metric is 140.82 (cost 147.63) and new plan best metric is 140.82 (cost 147.63)
2026-08-18 02:50:06.781489: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 02:50:06.781620: Plan valid is now true after recompute was False
2026-08-18 02:50:06.809798: predict base end_record 08-19 03:00:00, final soc 13.44kWh, metric 300.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.84kWh, PV 0.0kWh
2026-08-18 02:50:06.930394: Battery has 20.92 hours left - now at 13.44kWh
2026-08-18 02:50:06.975367: predict base10 end_record 08-19 03:00:00, final soc 12.76kWh, metric 305.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.58kWh, PV 0.0kWh
2026-08-18 02:50:07.056753: predict best10 end_record 08-19 03:00:00, final soc 1.12kWh, metric 204.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.58kWh, PV 0.0kWh
2026-08-18 02:50:07.135054: predict best end_record 08-19 03:00:00, final soc 1.12kWh, metric 194.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.84kWh, PV 0.0kWh
2026-08-18 02:50:07.135145: Saving plan best values to HA entities
2026-08-18 02:50:07.289981: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:50:07.296128: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:50:07.301643: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.3kWh, house 2.72kWh, export 0.0kWh, metric 194.26p, metric10 204.1p
2026-08-18 02:50:07.366811: Marginal costs baseline metric (no standing charge): 147.6306
2026-08-18 02:50:07.656314: Marginal energy costs matrix computed: min=8.0 max=32.53
2026-08-18 02:50:07.714826: Rate array import [{'start': 170, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1620, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 170, 'end': 1620, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:50:07.715164: - Your estimated bill for today is £1.27 and tomorrow is £2.35
2026-08-18 02:50:07.715200: - Import rates are cheap (8.0p) for the next 2 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:50:07.715219: - The battery is currently at 84% and is charging to 84% for the next 2 and a quarter hours.
2026-08-18 02:50:07.715234: - For the next 48 hours there will be no solar generation.
2026-08-18 02:50:07.715248: - You will run out of battery in 21 hours.
2026-08-18 02:50:07.715266:
2026-08-18 02:50:07.755794: Plan calculation took 4.78 seconds
2026-08-18 02:50:07.756169: Inverter 0: Type SK Sunsynk
2026-08-18 02:50:07.756225: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:50:07.756518: Reserve min: 7%, battery_min: 7%
2026-08-18 02:50:07.756624: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:50:07.757000: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -515W, load power 515W, PV Power 0W
2026-08-18 02:50:07.757284: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:50:07.757422: Inverter 0 scheduled charge enable is True
2026-08-18 02:50:07.757560: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:50:07.757699: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:50:07.757847: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:50:07.757890: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:50:07.757929: Inverter 0 scheduled discharge enable is False
2026-08-18 02:50:07.758101: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:50:07.758164: Inverter 0 discharge windows currently []
2026-08-18 02:50:07.758196: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:50:07.758220: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:50:07.758238: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:50:07.813233: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 02:50:07.813355: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:50:07.813518: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:50:07.813632: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:50:07.813756: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:50:07.813936: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:50:07.814061: No export window planned
2026-08-18 02:50:07.814189: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:50:07.814223: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:50:07.814355: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:50:07.814453: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:50:07.814518: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:50:07.814574: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:50:07.814688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814728: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814818: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814915: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814949: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.814985: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815020: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815050: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815081: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815107: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815275: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:50:07.815348: Inverter 0 count register writes 0
2026-08-18 02:50:07.838067: Total inverter register writes now 865
2026-08-18 02:50:07.875022: Info: Completed run status Hold charging
2026-08-18 02:50:07.882963: Info: record_status Hold charging target 84%-84%
2026-08-18 02:50:07.890332: Saved current settings to /config/predbat_config.json
2026-08-18 02:50:07.890669: Compare, best tariff: current metric 129.87p
2026-08-18 02:50:49.011193: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:50:49.011454: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:50:49.011498: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:50:49.011681: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:50:49.011740: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:50:49.011774: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:50:49.011794: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:52:49.234571: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:52:49.234865: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:52:49.234912: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:52:49.235082: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:52:49.235126: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:52:49.235154: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:52:49.235196: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:54:49.449320: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:54:49.449605: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:54:49.449650: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:54:49.449782: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:54:49.449819: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:54:49.449841: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:54:49.449860: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:55:00.532207: --------------- PredBat - update at 2026-08-18 02:55:00+01:00 with clock skew 0 minutes, minutes now 175
2026-08-18 02:55:00.533064: Saved current settings to /config/predbat_config.json
2026-08-18 02:55:00.533251: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 02:55:00.533382: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 02:55:00.533474: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 02:55:00.552388: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 02:55:00.552537: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 02:55:00.552726: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 02:55:00.553217: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 02:55:00.553332: Predbat mode is set to Control charge & discharge
2026-08-18 02:55:00.716041: Found 21602 load_today datapoints going back 28 days
2026-08-18 02:55:00.716180: Using load_power data to fill gaps in load_today data
2026-08-18 02:55:01.485573: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 02:55:01.485753: Zero load period starting at 2026-08-17T10:54:00+0100 (961 minutes) for 189 minutes with base value 210.45
2026-08-18 02:55:01.486634: Processing 721 30-minute periods for power integration
2026-08-18 02:55:01.674374: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 02:55:01.674504: Car charging hold False, threshold 6.0kWh
2026-08-18 02:55:01.674548: Current data so far today: load 1.4kWh, import 8.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 02:55:01.689149: Car 0 using Octopus Intelligent is unplugged
2026-08-18 02:55:01.689248: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 02:55:01.690013: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 02:55:01.690103: Standing charge is set to 46.63p
2026-08-18 02:55:01.789867: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:55:01.790102: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:55:01.790338: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 02:55:01.791423: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 02:55:01.791540: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 02:55:01.796617: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 02:55:01.797200: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 02:55:01.840719: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 02:55:01.840863: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 02:55:01.842116: High export rate found rates in range 99p to -99p
2026-08-18 02:55:01.867050: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 02:55:01.867173: Car 0 on Octopus Intelligent, no active plan
2026-08-18 02:55:01.877269: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 02:55:01.877650: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 02:55:01.919351: Today's energy total net 8.6kWh, import 8.6kWh, export 0.0kWh, cost 115.43p, import 68.8p, export 0.0p, carbon 0.0kg
2026-08-18 02:55:01.919486: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 02:55:01.994590: Using weighted-bucket historical load forecast over 14 days
2026-08-18 02:55:02.021958: Today's load divergence 100.0%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 100.0% blend 100.0%
2026-08-18 02:55:02.022059: Today's predicted so far 2.37kWh with 0.0kWh car/iBoost excluded, 7.4kWh import ignored, and 2.37kWh forecast extra.
2026-08-18 02:55:02.022102: Today's actual load so far 1.35kWh with 0.0kWh car/iBoost excluded, and 7.4kWh import ignored.
2026-08-18 02:55:02.053542: Inverter 0: Type SK Sunsynk
2026-08-18 02:55:02.053625: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 02:55:02.053844: Reserve min: 7%, battery_min: 7%
2026-08-18 02:55:02.053957: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 02:55:02.054270: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -14W, current battery voltage 51.2V, grid power -524W, load power 519W, PV Power 0W
2026-08-18 02:55:02.054502: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:55:02.054625: Inverter 0 scheduled charge enable is True
2026-08-18 02:55:02.054694: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 02:55:02.054838: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 02:55:02.054999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:55:02.055057: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:55:02.055122: Inverter 0 scheduled discharge enable is False
2026-08-18 02:55:02.055280: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:55:02.055322: Inverter 0 discharge windows currently []
2026-08-18 02:55:02.055369: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:55:02.055404: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:55:02.055422: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:55:02.109487: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 02:55:02.109593: Plan was last updated on 2026-08-18 02:50:00+01:00 and is now 5.0 minutes old
2026-08-18 02:55:02.109798: Best charge window [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ]
2026-08-18 02:55:02.109843: Best export window [ ]
2026-08-18 02:55:02.110494: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 02:55:02.113043: Load divergence over 8.0 hours mean 390.47W, min 292.8W, max 660.0W, std dev 52.93W, divergence 6.78%
2026-08-18 02:55:02.128067: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 02:55:02.128148: LoadML is_calculating False
2026-08-18 02:55:02.128218: Creating pool of 12 processes to match your CPU count
2026-08-18 02:55:02.234558: predict base end_record 08-19 03:05:00, final soc 13.44kWh, metric 300.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.9kWh, PV 0.0kWh
2026-08-18 02:55:02.354163: Battery has 20.83 hours left - now at 13.44kWh
2026-08-18 02:55:02.391968: predict base10 end_record 08-19 03:05:00, final soc 13.08kWh, metric 308.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.63kWh, PV 0.0kWh
2026-08-18 02:55:02.461014: predict best10 end_record 08-19 03:05:00, final soc 1.44kWh, metric 207.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.63kWh, PV 0.0kWh
2026-08-18 02:55:02.530577: predict best end_record 08-19 03:05:00, final soc 1.51kWh, metric 197.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.9kWh, PV 0.0kWh
2026-08-18 02:55:02.530665: Saving plan best values to HA entities
2026-08-18 02:55:02.701045: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 02:55:02.708660: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 02:55:02.714444: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.73kWh, house 2.72kWh, export 0.0kWh, metric 197.67p, metric10 207.37p
2026-08-18 02:55:02.783571: Marginal costs baseline metric (no standing charge): 151.0327
2026-08-18 02:55:03.005824: Marginal energy costs matrix computed: min=8.0 max=32.58
2026-08-18 02:55:03.060963: Rate array import [{'start': 175, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1625, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 175, 'end': 1625, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 02:55:03.061388: - Your estimated bill for today is £1.27 and tomorrow is £2.36
2026-08-18 02:55:03.061444: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 02:55:03.061491: - The battery is currently at 84% and is charging to 84% for the next 2 hours.
2026-08-18 02:55:03.061523: - For the next 48 hours there will be no solar generation.
2026-08-18 02:55:03.061561: - You will run out of battery in 20 hours.
2026-08-18 02:55:03.061589:
2026-08-18 02:55:03.101409: Plan calculation took 0.99 seconds
2026-08-18 02:55:03.105182: No high rate period found
2026-08-18 02:55:03.153156: Import threshold used for optimisation was 8.0p
2026-08-18 02:55:03.200858: Low import rate windows [0: 08-18 02:30:00 - 08-18 03:00:00 @ 8.0, 1: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 2: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 3: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 4: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 5: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 6: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 7: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 8: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 9: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 10: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 11: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 12: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 13: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 14: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 15: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 16: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 17: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 18: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 19: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 20: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 21: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 22: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 23: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 24: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0]
2026-08-18 02:55:03.206284: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 02:55:03.206395: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 02:55:03.206589: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 02:55:03.206672: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 02:55:03.206869: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:55:03.207120: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:55:03.207292: No export window planned
2026-08-18 02:55:03.207581: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 02:55:03.207635: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 02:55:03.207789: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 02:55:03.208185: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 02:55:03.208263: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 02:55:03.208332: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 02:55:03.208451: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208738: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208772: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208807: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208836: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208863: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208890: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208916: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.208976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.209013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.209040: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.209065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.209093: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.209122: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.209152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 02:55:03.209172: Inverter 0 count register writes 0
2026-08-18 02:55:03.223828: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 02:55:03.228857: Total inverter register writes now 865
2026-08-18 02:55:03.344424: Info: Completed run status Hold charging
2026-08-18 02:55:03.350449: Info: record_status Hold charging target 84%-84%
2026-08-18 02:55:03.357030: Saved current settings to /config/predbat_config.json
2026-08-18 02:55:03.357340: Compare, best tariff: current metric 129.87p
2026-08-18 02:55:34.457091: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:55:34.457482: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:55:34.457535: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:55:34.457678: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:55:34.457721: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:55:34.457757: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:55:34.457781: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:55:37.857395: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 02:55:38.011681: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 02:57:48.677581: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:57:48.677841: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:57:48.677884: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:57:48.678044: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:57:48.678082: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:57:48.678103: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:57:48.678121: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 02:58:03.893683: Info: HAHistory: Pruning history data started.
2026-08-18 02:58:03.895563: Info: HAHistory: Pruning history data completed.
2026-08-18 02:59:48.895682: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 02:59:48.895974: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 02:59:48.896049: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 02:59:48.896183: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 02:59:48.896221: Note: Inverter does not support discharge freeze - disabled
2026-08-18 02:59:48.896243: Note: Inverter does not support charge freeze - disabled
2026-08-18 02:59:48.896264: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:00:00.983782: --------------- PredBat - update at 2026-08-18 03:00:00+01:00 with clock skew 0 minutes, minutes now 180
2026-08-18 03:00:00.984915: Saved current settings to /config/predbat_config.json
2026-08-18 03:00:00.985085: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 03:00:00.985231: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:00:00.985380: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:00:01.006243: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:00:01.006370: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:00:01.006577: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:00:01.007127: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:00:01.007252: Predbat mode is set to Control charge & discharge
2026-08-18 03:00:01.200686: Found 21602 load_today datapoints going back 27 days
2026-08-18 03:00:01.200804: Using load_power data to fill gaps in load_today data
2026-08-18 03:00:01.950661: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:00:01.950851: Zero load period starting at 2026-08-17T10:54:00+0100 (966 minutes) for 189 minutes with base value 210.425
2026-08-18 03:00:01.951706: Processing 721 30-minute periods for power integration
2026-08-18 03:00:02.160007: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:00:02.160134: Car charging hold False, threshold 6.0kWh
2026-08-18 03:00:02.160199: Current data so far today: load 1.45kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:00:02.175733: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:00:02.175825: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:00:02.176542: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:00:02.176609: Standing charge is set to 46.63p
2026-08-18 03:00:02.280798: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:00:02.281042: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:00:02.281237: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:00:02.282310: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:00:02.282417: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:00:02.288124: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:00:02.288558: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:00:02.331257: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:00:02.331363: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:00:02.332677: High export rate found rates in range 99p to -99p
2026-08-18 03:00:02.353119: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:00:02.353232: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:00:02.365149: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:00:02.365421: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:00:02.408825: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 116.23p, import 69.6p, export 0.0p, carbon 0.0kg
2026-08-18 03:00:02.408961: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:00:02.475271: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:00:02.498865: Today's load divergence 92.93%, in-day adjustment 92.76%, damping 0.95x, yesterday 92.68% today 93.28% blend 87.5%
2026-08-18 03:00:02.498948: Today's predicted so far 2.5kWh with 0.0kWh car/iBoost excluded, 7.35kWh import ignored, and 2.5kWh forecast extra.
2026-08-18 03:00:02.498974: Today's actual load so far 1.43kWh with 0.0kWh car/iBoost excluded, and 7.35kWh import ignored.
2026-08-18 03:00:02.533586: Inverter 0: Type SK Sunsynk
2026-08-18 03:00:02.533659: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:00:02.533842: Reserve min: 7%, battery_min: 7%
2026-08-18 03:00:02.533911: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:00:02.534122: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -514W, load power 514W, PV Power 0W
2026-08-18 03:00:02.534248: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:00:02.534349: Inverter 0 scheduled charge enable is True
2026-08-18 03:00:02.534403: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:00:02.534496: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:00:02.534604: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:00:02.534634: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:00:02.534681: Inverter 0 scheduled discharge enable is False
2026-08-18 03:00:02.534786: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:00:02.534816: Inverter 0 discharge windows currently []
2026-08-18 03:00:02.534834: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:00:02.534849: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:00:02.534864: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:00:02.593250: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:00:02.593351: Plan was last updated on 2026-08-18 02:50:00+01:00 and is now 10.0 minutes old
2026-08-18 03:00:02.593615: Best charge window [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ]
2026-08-18 03:00:02.593673: Best export window [ ]
2026-08-18 03:00:02.594556: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:00:02.597767: Load divergence over 8.0 hours mean 390.57W, min 281.4W, max 651.6W, std dev 55.91W, divergence 7.16%
2026-08-18 03:00:02.613265: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:00:02.613371: LoadML is_calculating False
2026-08-18 03:00:02.613442: Creating pool of 12 processes to match your CPU count
2026-08-18 03:00:02.736944: predict base end_record 08-19 03:10:00, final soc 13.44kWh, metric 301.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.96kWh, PV 0.0kWh
2026-08-18 03:00:02.859008: Battery has 20.75 hours left - now at 13.44kWh
2026-08-18 03:00:02.912307: predict base10 end_record 08-19 03:10:00, final soc 13.41kWh, metric 312.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.7kWh, PV 0.0kWh
2026-08-18 03:00:02.994349: predict best10 end_record 08-19 03:10:00, final soc 1.77kWh, metric 211.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.7kWh, PV 0.0kWh
2026-08-18 03:00:03.074547: predict best end_record 08-19 03:10:00, final soc 1.9kWh, metric 201.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.96kWh, PV 0.0kWh
2026-08-18 03:00:03.074647: Saving plan best values to HA entities
2026-08-18 03:00:03.248282: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:00:03.253597: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:00:03.258926: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.14kWh, house 2.74kWh, export 0.0kWh, metric 201.89p, metric10 211.18p
2026-08-18 03:00:03.328308: Marginal costs baseline metric (no standing charge): 155.2596
2026-08-18 03:00:03.566566: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-18 03:00:03.634392: Rate array import [{'start': 180, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1630, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 180, 'end': 1630, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:00:03.634881: - Your estimated bill for today is £1.27 and tomorrow is £2.35
2026-08-18 03:00:03.634935: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:00:03.634971: - The battery is currently at 84% and is charging to 84% for the next 2 hours.
2026-08-18 03:00:03.635013: - For the next 48 hours there will be no solar generation.
2026-08-18 03:00:03.635035: - You will run out of battery in 20 hours.
2026-08-18 03:00:03.635058:
2026-08-18 03:00:03.685366: Plan calculation took 1.09 seconds
2026-08-18 03:00:03.688732: No high rate period found
2026-08-18 03:00:03.738436: Import threshold used for optimisation was 8.0p
2026-08-18 03:00:03.792841: Low import rate windows [0: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 1: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 2: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 3: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 4: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 5: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 6: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 7: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 8: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 9: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 10: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 11: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 12: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 13: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 14: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 15: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 16: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 17: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 18: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 19: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 20: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 21: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 22: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 23: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0]
2026-08-18 03:00:03.799013: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 03:00:03.799168: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:00:03.799375: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:00:03.799468: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:00:03.799640: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:00:03.799880: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:00:03.800046: No export window planned
2026-08-18 03:00:03.800185: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:00:03.800221: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:00:03.800360: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:00:03.800447: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:00:03.800526: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:00:03.800607: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:00:03.800722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.800762: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.800793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.800825: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.800850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.800878: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.800937: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801032: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801093: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801160: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801247: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801318: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801378: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801438: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801572: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801619: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801881: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:03.801925: Inverter 0 count register writes 0
2026-08-18 03:00:03.817750: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 03:00:03.817913: Recompute is saving previous plan...
2026-08-18 03:00:03.818800: Best charge window [ 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84% ]
2026-08-18 03:00:03.818846: Best export window [ ]
2026-08-18 03:00:03.819683: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:00:03.822997: Load divergence over 8.0 hours mean 390.57W, min 281.4W, max 651.6W, std dev 55.91W, divergence 7.16%
2026-08-18 03:00:03.841932: Calculating data from yesterday for savings calculation
2026-08-18 03:00:03.855299: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1620, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 03:00:03.905166: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 03:00:03.922222: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 03:00:03.950970: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 03:00:03.994739: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 03:00:04.105732: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 03:00:04.106891: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 03:00:04.123096: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:00:04.124003: LoadML is_calculating False
2026-08-18 03:00:04.124346: Creating pool of 12 processes to match your CPU count
2026-08-18 03:00:04.246079: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 03:00:04.255310: Optimise levels pass started at 2026-08-18 03:00:04
2026-08-18 03:00:04.255405: Optimise all windows, total charge 24 export 1
2026-08-18 03:00:04.733708: >> Region optimisation pass width 960 gives best_metric 287.58p, best_cost 293.37p, best_cycle 37.56kWh, best_import 22.14kWh
2026-08-18 03:00:04.900558: >> Region optimisation pass width 480 gives best_metric 287.58p, best_cost 293.37p, best_cycle 37.56kWh, best_import 22.14kWh
2026-08-18 03:00:05.135643: >> Region optimisation pass width 240 gives best_metric 287.58p, best_cost 293.37p, best_cycle 37.56kWh, best_import 22.14kWh
2026-08-18 03:00:05.852019: >> Region optimisation pass width 120 gives best_metric 287.58p, best_cost 293.37p, best_cycle 37.56kWh, best_import 22.14kWh
2026-08-18 03:00:05.852218: Calculated end_record as 08-19 03:00:00 based on best_price 8.0p, next_charge_start 08-18 03:00:00, max_windows 12
2026-08-18 03:00:05.852317: Optimise levels pass ended at 2026-08-18 03:00:05, duration 1.6 seconds tried 61 combinations
2026-08-18 03:00:05.852409: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 287.58p, best_keep 0kWh, best_cycle 37.56kWh, best_carbon 0kg, best_import 22.14kWh
2026-08-18 03:00:05.870374: Starting detailed optimisation end_record 08-19 03:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 03:00:08.348237: Tweak plan optimisation started metric 142.0p, cost 148.82p
2026-08-18 03:00:08.625931: Tweak optimisation finished metric 140.86p, cost 147.68p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 3.93kWh, changed 8 window(s)
2026-08-18 03:00:08.644436: Swap charge optimisation started metric 140.86p, cost 147.68p, min_improvement_swap 0.1p
2026-08-18 03:00:08.737041: Swap charge optimisation finished metric 140.86p, cost 147.68p
2026-08-18 03:00:08.812083: Pruned 1 dead plan slot(s) in 5 trial(s), nominal metric 139.98p -> 139.98p, plan now metric 141.53p, cost 147.68p, cycle 12.07kWh, import 3.93kWh
2026-08-18 03:00:08.822182: Raw charge windows [ 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 100%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:00:08.822527: Unclipped charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:00:08.822707: Unfiltered charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:00:08.822852: Filtered charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:00:08.862802: Previous plan best metric is 140.86 (cost 147.68) and new plan best metric is 140.86 (cost 147.68)
2026-08-18 03:00:08.863010: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 03:00:08.863141: Plan valid is now true after recompute was False
2026-08-18 03:00:08.893162: predict base end_record 08-19 03:00:00, final soc 13.44kWh, metric 300.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.84kWh, PV 0.0kWh
2026-08-18 03:00:08.997399: Battery has 20.75 hours left - now at 13.44kWh
2026-08-18 03:00:09.055014: predict base10 end_record 08-19 03:00:00, final soc 12.76kWh, metric 306.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.58kWh, PV 0.0kWh
2026-08-18 03:00:09.133170: predict best10 end_record 08-19 03:00:00, final soc 1.12kWh, metric 204.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.58kWh, PV 0.0kWh
2026-08-18 03:00:09.214883: predict best end_record 08-19 03:00:00, final soc 1.12kWh, metric 194.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.84kWh, PV 0.0kWh
2026-08-18 03:00:09.214970: Saving plan best values to HA entities
2026-08-18 03:00:09.364864: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:00:09.369267: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:00:09.377139: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.19kWh, house 2.74kWh, export 0.0kWh, metric 194.31p, metric10 204.66p
2026-08-18 03:00:09.443623: Marginal costs baseline metric (no standing charge): 147.677
2026-08-18 03:00:09.675121: Marginal energy costs matrix computed: min=8.0 max=32.6
2026-08-18 03:00:09.741352: Rate array import [{'start': 180, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1620, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 180, 'end': 1620, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:00:09.741719: - Your estimated bill for today is £1.27 and tomorrow is £2.35
2026-08-18 03:00:09.741782: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:00:09.741815: - The battery is currently at 84% and is charging to 84% for the next 2 hours.
2026-08-18 03:00:09.741832: - For the next 48 hours there will be no solar generation.
2026-08-18 03:00:09.741847: - You will run out of battery in 20 hours.
2026-08-18 03:00:09.741861:
2026-08-18 03:00:09.789885: Plan calculation took 5.97 seconds
2026-08-18 03:00:09.790143: Inverter 0: Type SK Sunsynk
2026-08-18 03:00:09.790179: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:00:09.790363: Reserve min: 7%, battery_min: 7%
2026-08-18 03:00:09.790425: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:00:09.790717: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -512W, load power 512W, PV Power 0W
2026-08-18 03:00:09.790908: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:00:09.790992: Inverter 0 scheduled charge enable is True
2026-08-18 03:00:09.791030: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:00:09.791112: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:00:09.791210: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:00:09.791260: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:00:09.791300: Inverter 0 scheduled discharge enable is False
2026-08-18 03:00:09.791405: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:00:09.791435: Inverter 0 discharge windows currently []
2026-08-18 03:00:09.791454: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:00:09.791470: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:00:09.791500: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:00:09.850046: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 03:00:09.850169: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:00:09.850303: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:00:09.850387: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:00:09.850540: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:00:09.850730: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:00:09.850842: No export window planned
2026-08-18 03:00:09.850960: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:00:09.850995: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:00:09.851138: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:00:09.851228: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:00:09.851295: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:00:09.851347: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:00:09.851460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851731: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851767: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851798: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851827: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851854: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.851953: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852025: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852118: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852179: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852210: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852236: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852290: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:00:09.852325: Inverter 0 count register writes 0
2026-08-18 03:00:09.874952: Total inverter register writes now 865
2026-08-18 03:00:09.906858: Info: Completed run status Hold charging
2026-08-18 03:00:09.914261: Info: record_status Hold charging target 84%-84%
2026-08-18 03:00:09.921532: Saved current settings to /config/predbat_config.json
2026-08-18 03:00:09.921857: Compare, best tariff: current metric 129.87p
2026-08-18 03:00:49.039751: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:00:49.040061: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:00:49.040108: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:00:49.040240: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:00:49.040279: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:00:49.040300: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:00:49.040339: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:02:49.249603: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:02:49.249854: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:02:49.249896: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:02:49.250028: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:02:49.250065: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:02:49.250086: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:02:49.250104: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:04:49.460916: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:04:49.461176: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:04:49.461220: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:04:49.461355: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:04:49.461393: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:04:49.461414: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:04:49.461432: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:05:00.542466: --------------- PredBat - update at 2026-08-18 03:05:00+01:00 with clock skew 0 minutes, minutes now 185
2026-08-18 03:05:00.543318: Saved current settings to /config/predbat_config.json
2026-08-18 03:05:00.543486: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 03:05:00.543638: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:05:00.543760: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:05:00.563674: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:05:00.563794: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:05:00.564008: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:05:00.564523: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:05:00.564640: Predbat mode is set to Control charge & discharge
2026-08-18 03:05:00.782806: Found 21602 load_today datapoints going back 27 days
2026-08-18 03:05:00.783353: Using load_power data to fill gaps in load_today data
2026-08-18 03:05:01.590086: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:05:01.590258: Zero load period starting at 2026-08-17T10:54:00+0100 (971 minutes) for 189 minutes with base value 210.4
2026-08-18 03:05:01.590973: Processing 721 30-minute periods for power integration
2026-08-18 03:05:01.760472: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:05:01.760631: Car charging hold False, threshold 6.0kWh
2026-08-18 03:05:01.760705: Current data so far today: load 1.5kWh, import 8.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:05:01.775976: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:05:01.776087: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:05:01.776813: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:05:01.776902: Standing charge is set to 46.63p
2026-08-18 03:05:01.870587: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:05:01.870824: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:05:01.871024: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:05:01.872289: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:05:01.872400: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:05:01.878896: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:05:01.879382: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:05:01.933004: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:05:01.933127: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:05:01.934651: High export rate found rates in range 99p to -99p
2026-08-18 03:05:01.970982: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:05:01.971195: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:05:01.987897: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:05:01.988431: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:05:02.038066: Today's energy total net 8.7kWh, import 8.7kWh, export 0.0kWh, cost 116.23p, import 69.6p, export 0.0p, carbon 0.0kg
2026-08-18 03:05:02.038192: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:05:02.111391: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:05:02.139015: Today's load divergence 92.65%, in-day adjustment 92.72%, damping 0.95x, yesterday 92.68% today 93.02% blend 87.15%
2026-08-18 03:05:02.139336: Today's predicted so far 2.61kWh with 0.0kWh car/iBoost excluded, 7.33kWh import ignored, and 2.61kWh forecast extra.
2026-08-18 03:05:02.139395: Today's actual load so far 1.49kWh with 0.0kWh car/iBoost excluded, and 7.33kWh import ignored.
2026-08-18 03:05:02.174734: Inverter 0: Type SK Sunsynk
2026-08-18 03:05:02.174815: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:05:02.175031: Reserve min: 7%, battery_min: 7%
2026-08-18 03:05:02.175119: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:05:02.175426: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -515W, load power 516W, PV Power 0W
2026-08-18 03:05:02.175624: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:05:02.175737: Inverter 0 scheduled charge enable is True
2026-08-18 03:05:02.175800: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:05:02.175975: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:05:02.176151: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:05:02.176194: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:05:02.176282: Inverter 0 scheduled discharge enable is False
2026-08-18 03:05:02.176468: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:05:02.176543: Inverter 0 discharge windows currently []
2026-08-18 03:05:02.176585: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:05:02.176630: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:05:02.176667: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:05:02.236993: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:05:02.237091: Plan was last updated on 2026-08-18 03:00:00+01:00 and is now 5.0 minutes old
2026-08-18 03:05:02.237268: Best charge window [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ]
2026-08-18 03:05:02.237307: Best export window [ ]
2026-08-18 03:05:02.238161: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:05:02.241380: Load divergence over 8.0 hours mean 390.6W, min 263.4W, max 664.2W, std dev 63.25W, divergence 8.1%
2026-08-18 03:05:02.260215: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:05:02.260332: LoadML is_calculating False
2026-08-18 03:05:02.260412: Creating pool of 12 processes to match your CPU count
2026-08-18 03:05:02.381604: predict base end_record 08-19 03:05:00, final soc 13.44kWh, metric 300.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.9kWh, PV 0.0kWh
2026-08-18 03:05:02.516640: Battery has 20.75 hours left - now at 13.44kWh
2026-08-18 03:05:02.554571: predict base10 end_record 08-19 03:05:00, final soc 13.08kWh, metric 308.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.63kWh, PV 0.0kWh
2026-08-18 03:05:02.623933: predict best10 end_record 08-19 03:05:00, final soc 1.44kWh, metric 207.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.63kWh, PV 0.0kWh
2026-08-18 03:05:02.701001: predict best end_record 08-19 03:05:00, final soc 1.51kWh, metric 197.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.9kWh, PV 0.0kWh
2026-08-18 03:05:02.701084: Saving plan best values to HA entities
2026-08-18 03:05:02.857263: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:05:02.861855: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:05:02.866538: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.61kWh, house 2.74kWh, export 0.0kWh, metric 197.68p, metric10 207.2p
2026-08-18 03:05:02.938538: Marginal costs baseline metric (no standing charge): 151.0431
2026-08-18 03:05:03.201946: Marginal energy costs matrix computed: min=8.0 max=32.57
2026-08-18 03:05:03.262557: Rate array import [{'start': 185, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1625, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 185, 'end': 1625, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:05:03.263055: - Your estimated bill for today is £1.26 and tomorrow is £2.35
2026-08-18 03:05:03.263114: - Import rates are cheap (8.0p) for the next 2 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:05:03.263155: - The battery is currently at 84% and is charging to 84% for the next 1 hours.
2026-08-18 03:05:03.263220: - For the next 48 hours there will be no solar generation.
2026-08-18 03:05:03.263254: - You will run out of battery in 20 hours.
2026-08-18 03:05:03.263287:
2026-08-18 03:05:03.314586: Plan calculation took 1.08 seconds
2026-08-18 03:05:03.318139: No high rate period found
2026-08-18 03:05:03.368780: Import threshold used for optimisation was 8.0p
2026-08-18 03:05:03.419602: Low import rate windows [0: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 1: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 2: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 3: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 4: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 5: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 6: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 7: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 8: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 9: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 10: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 11: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 12: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 13: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 14: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 15: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 16: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 17: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 18: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 19: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 20: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 21: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 22: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 23: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 24: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0]
2026-08-18 03:05:03.426154: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 03:05:03.426256: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:05:03.426395: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:05:03.426462: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:05:03.426595: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:05:03.426796: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:05:03.426902: No export window planned
2026-08-18 03:05:03.427007: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:05:03.427036: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:05:03.427144: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:05:03.427224: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:05:03.427269: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:05:03.427321: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:05:03.427405: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427485: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427561: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427592: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427618: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427641: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427686: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427722: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427747: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427767: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427846: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427867: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427966: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.427985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:05:03.428002: Inverter 0 count register writes 0
2026-08-18 03:05:03.444201: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 03:05:03.449268: Total inverter register writes now 865
2026-08-18 03:05:03.481004: Info: Completed run status Hold charging
2026-08-18 03:05:03.487243: Info: record_status Hold charging target 84%-84%
2026-08-18 03:05:03.493384: Saved current settings to /config/predbat_config.json
2026-08-18 03:05:03.493737: Compare, best tariff: current metric 129.87p
2026-08-18 03:05:34.595310: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:05:34.595630: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:05:34.595686: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:05:34.595844: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:05:34.595887: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:05:34.595940: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:05:34.595963: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:07:48.820196: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:07:48.820449: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:07:48.820490: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:07:48.820702: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:07:48.820770: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:07:48.820791: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:07:48.820810: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:09:49.023783: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:09:49.024070: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:09:49.024117: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:09:49.024272: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:09:49.024311: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:09:49.024333: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:09:49.024350: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:10:00.108553: --------------- PredBat - update at 2026-08-18 03:10:00+01:00 with clock skew 0 minutes, minutes now 190
2026-08-18 03:10:00.109223: Saved current settings to /config/predbat_config.json
2026-08-18 03:10:00.109337: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 03:10:00.109437: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:10:00.109531: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:10:00.126130: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:10:00.126252: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:10:00.126437: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:10:00.126952: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:10:00.127073: Predbat mode is set to Control charge & discharge
2026-08-18 03:10:00.329072: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:10:00.329215: Using load_power data to fill gaps in load_today data
2026-08-18 03:10:01.147629: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:10:01.148069: Zero load period starting at 2026-08-17T10:54:00+0100 (976 minutes) for 189 minutes with base value 210.375
2026-08-18 03:10:01.148939: Processing 721 30-minute periods for power integration
2026-08-18 03:10:01.341607: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:10:01.341715: Car charging hold False, threshold 6.0kWh
2026-08-18 03:10:01.341752: Current data so far today: load 1.55kWh, import 8.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:10:01.353648: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:10:01.353719: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:10:01.354370: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:10:01.354431: Standing charge is set to 46.63p
2026-08-18 03:10:01.440537: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:10:01.441096: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:10:01.441295: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:10:01.442198: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:10:01.442306: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:10:01.446599: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:10:01.446936: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:10:01.481361: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:10:01.481455: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:10:01.482554: High export rate found rates in range 99p to -99p
2026-08-18 03:10:01.504036: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:10:01.504129: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:10:01.513660: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:10:01.513929: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.58kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:10:01.554061: Today's energy total net 8.8kWh, import 8.8kWh, export 0.0kWh, cost 117.03p, import 70.4p, export 0.0p, carbon 0.0kg
2026-08-18 03:10:01.554177: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:10:01.629426: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:10:01.651684: Today's load divergence 92.68%, in-day adjustment 92.73%, damping 0.95x, yesterday 92.68% today 93.04% blend 86.81%
2026-08-18 03:10:01.651752: Today's predicted so far 2.63kWh with 0.0kWh car/iBoost excluded, 7.35kWh import ignored, and 2.63kWh forecast extra.
2026-08-18 03:10:01.651777: Today's actual load so far 1.52kWh with 0.0kWh car/iBoost excluded, and 7.35kWh import ignored.
2026-08-18 03:10:01.686885: Inverter 0: Type SK Sunsynk
2026-08-18 03:10:01.686977: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:10:01.687156: Reserve min: 7%, battery_min: 7%
2026-08-18 03:10:01.687232: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:10:01.687483: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -559W, load power 554W, PV Power 0W
2026-08-18 03:10:01.687654: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:10:01.687742: Inverter 0 scheduled charge enable is True
2026-08-18 03:10:01.687791: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:10:01.687879: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:10:01.688071: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:10:01.688116: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:10:01.688154: Inverter 0 scheduled discharge enable is False
2026-08-18 03:10:01.688272: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:10:01.688307: Inverter 0 discharge windows currently []
2026-08-18 03:10:01.688329: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:10:01.688348: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:10:01.688365: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:10:01.742852: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:10:01.742959: Plan was last updated on 2026-08-18 03:00:00+01:00 and is now 10.0 minutes old
2026-08-18 03:10:01.743141: Best charge window [ 18-08 02:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:00:00 @ 8.0p 100% ]
2026-08-18 03:10:01.743182: Best export window [ ]
2026-08-18 03:10:01.744101: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:10:01.747323: Load divergence over 8.0 hours mean 389.11W, min 262.2W, max 702.6W, std dev 60.65W, divergence 7.79%
2026-08-18 03:10:01.766721: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:10:01.766846: LoadML is_calculating False
2026-08-18 03:10:01.766904: Creating pool of 12 processes to match your CPU count
2026-08-18 03:10:01.886772: predict base end_record 08-19 03:10:00, final soc 13.44kWh, metric 300.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 16.95kWh, PV 0.0kWh
2026-08-18 03:10:02.006470: Battery has 20.58 hours left - now at 13.44kWh
2026-08-18 03:10:02.048196: predict base10 end_record 08-19 03:10:00, final soc 13.41kWh, metric 312.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.68kWh, PV 0.0kWh
2026-08-18 03:10:02.125710: predict best10 end_record 08-19 03:10:00, final soc 1.77kWh, metric 210.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.68kWh, PV 0.0kWh
2026-08-18 03:10:02.203921: predict best end_record 08-19 03:10:00, final soc 1.9kWh, metric 201.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 16.95kWh, PV 0.0kWh
2026-08-18 03:10:02.204010: Saving plan best values to HA entities
2026-08-18 03:10:02.345338: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:10:02.350016: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:10:02.354885: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 2.03kWh, house 2.73kWh, export 0.0kWh, metric 201.8p, metric10 210.75p
2026-08-18 03:10:02.423869: Marginal costs baseline metric (no standing charge): 155.162
2026-08-18 03:10:02.682387: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:10:02.739524: Rate array import [{'start': 190, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1630, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 190, 'end': 1630, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:10:02.739966: - Your estimated bill for today is £1.26 and tomorrow is £2.35
2026-08-18 03:10:02.740012: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:10:02.740032: - The battery is currently at 84% and is charging to 84% for the next 1 and three quarters hours.
2026-08-18 03:10:02.740050: - For the next 48 hours there will be no solar generation.
2026-08-18 03:10:02.740077: - You will run out of battery in 20 hours.
2026-08-18 03:10:02.740105:
2026-08-18 03:10:02.780392: Plan calculation took 1.04 seconds
2026-08-18 03:10:02.783039: No high rate period found
2026-08-18 03:10:02.826699: Import threshold used for optimisation was 8.0p
2026-08-18 03:10:02.872544: Low import rate windows [0: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 1: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 2: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 3: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 4: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 5: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 6: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 7: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 8: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 9: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 10: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 11: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 12: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 13: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 14: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 15: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 16: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 17: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 18: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 19: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 20: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 21: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 22: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 23: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 24: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0]
2026-08-18 03:10:02.877257: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 02:30:00
2026-08-18 03:10:02.877362: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:10:02.877554: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:10:02.877640: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:10:02.877796: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:10:02.878067: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:10:02.878183: No export window planned
2026-08-18 03:10:02.878295: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:10:02.878324: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:10:02.878439: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:10:02.878526: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:10:02.878577: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:10:02.878632: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:10:02.878720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878781: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878802: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878822: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878841: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878860: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878892: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878922: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878946: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878969: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.878992: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879014: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879051: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879132: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879209: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879229: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:02.879267: Inverter 0 count register writes 0
2026-08-18 03:10:02.892621: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 03:10:02.892769: Recompute is saving previous plan...
2026-08-18 03:10:02.893576: Best charge window [ 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84% ]
2026-08-18 03:10:02.893620: Best export window [ ]
2026-08-18 03:10:02.894335: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:10:02.897048: Load divergence over 8.0 hours mean 389.11W, min 262.2W, max 702.6W, std dev 60.65W, divergence 7.79%
2026-08-18 03:10:02.911563: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:10:02.911655: LoadML is_calculating False
2026-08-18 03:10:02.911736: Creating pool of 12 processes to match your CPU count
2026-08-18 03:10:02.998949: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 03:10:02.999662: Optimise levels pass started at 2026-08-18 03:10:02
2026-08-18 03:10:02.999705: Optimise all windows, total charge 24 export 1
2026-08-18 03:10:03.315122: >> Region optimisation pass width 960 gives best_metric 288.53p, best_cost 293.87p, best_cycle 37.05kWh, best_import 22.1kWh
2026-08-18 03:10:03.451083: >> Region optimisation pass width 480 gives best_metric 288.53p, best_cost 293.87p, best_cycle 37.05kWh, best_import 22.1kWh
2026-08-18 03:10:03.646143: >> Region optimisation pass width 240 gives best_metric 288.53p, best_cost 293.87p, best_cycle 37.05kWh, best_import 22.1kWh
2026-08-18 03:10:04.155705: >> Region optimisation pass width 120 gives best_metric 288.53p, best_cost 293.87p, best_cycle 37.05kWh, best_import 22.1kWh
2026-08-18 03:10:04.156161: Calculated end_record as 08-19 03:30:00 based on best_price 8.0p, next_charge_start 08-18 03:30:00, max_windows 13
2026-08-18 03:10:04.156233: Optimise levels pass ended at 2026-08-18 03:10:04, duration 1.2 seconds tried 51 combinations
2026-08-18 03:10:04.156312: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 288.53p, best_keep 0kWh, best_cycle 37.05kWh, best_carbon 0kg, best_import 22.1kWh
2026-08-18 03:10:04.171501: Starting detailed optimisation end_record 08-19 03:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 03:10:06.152777: Tweak plan optimisation started metric 144.36p, cost 151.16p
2026-08-18 03:10:06.378107: Tweak optimisation finished metric 143.5p, cost 150.3p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.16kWh, changed 8 window(s)
2026-08-18 03:10:06.398115: Swap charge optimisation started metric 143.5p, cost 150.3p, min_improvement_swap 0.1p
2026-08-18 03:10:06.488209: Swap charge optimisation finished metric 143.5p, cost 150.3p
2026-08-18 03:10:06.559468: Pruned 1 dead plan slot(s) in 5 trial(s), nominal metric 142.6p -> 142.6p, plan now metric 144.13p, cost 150.3p, cycle 12.07kWh, import 4.16kWh
2026-08-18 03:10:06.567082: Raw charge windows [ 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:10:06.567316: Unclipped charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:10:06.567452: Unfiltered charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:10:06.567579: Filtered charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:10:06.595410: Previous plan best metric is 147.4 (cost 170.3) and new plan best metric is 143.5 (cost 150.3)
2026-08-18 03:10:06.596056: New plan metric is significantly better from previous plan, using new plan
2026-08-18 03:10:06.596117: Plan valid is now true after recompute was False
2026-08-18 03:10:06.626317: predict base end_record 08-19 03:30:00, final soc 13.44kWh, metric 302.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.17kWh, PV 0.0kWh
2026-08-18 03:10:06.808303: Battery has 20.58 hours left - now at 13.44kWh
2026-08-18 03:10:06.870833: predict base10 end_record 08-19 03:30:00, final soc 13.44kWh, metric 314.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.92kWh, PV 0.0kWh
2026-08-18 03:10:06.986266: predict best10 end_record 08-19 03:30:00, final soc 1.12kWh, metric 207.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.92kWh, PV 0.0kWh
2026-08-18 03:10:07.094936: predict best end_record 08-19 03:30:00, final soc 1.12kWh, metric 196.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.17kWh, PV 0.0kWh
2026-08-18 03:10:07.095020: Saving plan best values to HA entities
2026-08-18 03:10:07.252675: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:10:07.258311: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:10:07.266174: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.09kWh, house 3.07kWh, export 0.0kWh, metric 196.94p, metric10 207.09p
2026-08-18 03:10:07.331534: Marginal costs baseline metric (no standing charge): 150.3018
2026-08-18 03:10:07.557769: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:10:07.614093: Rate array import [{'start': 190, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1650, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 190, 'end': 1650, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:10:07.614473: - Your estimated bill for today is £1.26 and tomorrow is £2.88
2026-08-18 03:10:07.614528: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:10:07.614550: - The battery is currently at 84% and is charging to 84% for the next 1 and three quarters hours.
2026-08-18 03:10:07.614565: - For the next 48 hours there will be no solar generation.
2026-08-18 03:10:07.614579: - You will run out of battery in 20 hours.
2026-08-18 03:10:07.614593:
2026-08-18 03:10:07.657973: Plan calculation took 4.77 seconds
2026-08-18 03:10:07.658337: Inverter 0: Type SK Sunsynk
2026-08-18 03:10:07.658385: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:10:07.658613: Reserve min: 7%, battery_min: 7%
2026-08-18 03:10:07.658682: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:10:07.658942: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -559W, load power 554W, PV Power 0W
2026-08-18 03:10:07.659133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:10:07.659230: Inverter 0 scheduled charge enable is True
2026-08-18 03:10:07.659304: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:10:07.659419: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:10:07.659551: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:10:07.659587: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:10:07.659619: Inverter 0 scheduled discharge enable is False
2026-08-18 03:10:07.659739: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:10:07.659779: Inverter 0 discharge windows currently []
2026-08-18 03:10:07.659799: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:10:07.659814: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:10:07.659827: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:10:07.709581: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:10:07.709693: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:10:07.709835: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:10:07.709911: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:10:07.710026: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:10:07.710210: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:10:07.710314: No export window planned
2026-08-18 03:10:07.710427: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:10:07.710462: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:10:07.710617: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:10:07.710708: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:10:07.710763: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:10:07.710811: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:10:07.710936: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.710976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711030: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711054: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711140: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711170: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711200: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711235: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711269: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711297: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711322: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711417: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711527: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:10:07.711614: Inverter 0 count register writes 0
2026-08-18 03:10:07.731581: Total inverter register writes now 865
2026-08-18 03:10:07.763360: Info: Completed run status Hold charging
2026-08-18 03:10:07.770076: Info: record_status Hold charging target 84%-84%
2026-08-18 03:10:07.776868: Saved current settings to /config/predbat_config.json
2026-08-18 03:10:07.777127: Compare, best tariff: current metric 129.87p
2026-08-18 03:10:48.889780: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:10:48.890031: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:10:48.890072: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:10:48.890202: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:10:48.890239: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:10:48.890260: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:10:48.890277: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:12:49.105829: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:12:49.106055: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:12:49.106088: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:12:49.106221: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:12:49.106253: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:12:49.106270: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:12:49.106285: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:14:49.313660: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:14:49.313985: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:14:49.314036: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:14:49.314233: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:14:49.314278: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:14:49.314309: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:14:49.314354: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:15:00.399311: --------------- PredBat - update at 2026-08-18 03:15:00+01:00 with clock skew 0 minutes, minutes now 195
2026-08-18 03:15:00.400103: Saved current settings to /config/predbat_config.json
2026-08-18 03:15:00.400217: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-18 03:15:00.400312: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:15:00.400388: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:15:00.417141: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:15:00.417273: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:15:00.417506: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:15:00.418117: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:15:00.418271: Predbat mode is set to Control charge & discharge
2026-08-18 03:15:00.576125: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:15:00.576234: Using load_power data to fill gaps in load_today data
2026-08-18 03:15:01.269947: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:15:01.270099: Zero load period starting at 2026-08-17T10:54:00+0100 (981 minutes) for 189 minutes with base value 210.35
2026-08-18 03:15:01.270785: Processing 721 30-minute periods for power integration
2026-08-18 03:15:01.440126: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:15:01.440230: Car charging hold False, threshold 6.0kWh
2026-08-18 03:15:01.440268: Current data so far today: load 1.6kWh, import 8.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:15:01.452355: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:15:01.452427: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:15:01.453085: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:15:01.453146: Standing charge is set to 46.63p
2026-08-18 03:15:01.547609: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:15:01.547799: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:15:01.547973: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:15:01.548892: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:15:01.548977: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:15:01.553189: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:15:01.553545: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:15:01.588006: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:15:01.588104: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:15:01.589150: High export rate found rates in range 99p to -99p
2026-08-18 03:15:01.608864: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:15:01.608955: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:15:01.618761: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:15:01.619042: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:15:01.656431: Today's energy total net 8.8kWh, import 8.8kWh, export 0.0kWh, cost 117.03p, import 70.4p, export 0.0p, carbon 0.0kg
2026-08-18 03:15:01.656543: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:15:01.717830: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:15:01.740671: Today's load divergence 92.79%, in-day adjustment 92.74%, damping 0.95x, yesterday 92.68% today 93.15% blend 86.46%
2026-08-18 03:15:01.740752: Today's predicted so far 2.65kWh with 0.0kWh car/iBoost excluded, 7.38kWh import ignored, and 2.65kWh forecast extra.
2026-08-18 03:15:01.740778: Today's actual load so far 1.55kWh with 0.0kWh car/iBoost excluded, and 7.38kWh import ignored.
2026-08-18 03:15:01.775804: Inverter 0: Type SK Sunsynk
2026-08-18 03:15:01.775896: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:15:01.776118: Reserve min: 7%, battery_min: 7%
2026-08-18 03:15:01.776187: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:15:01.776470: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -561W, load power 561W, PV Power 0W
2026-08-18 03:15:01.776642: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:15:01.776729: Inverter 0 scheduled charge enable is True
2026-08-18 03:15:01.776778: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:15:01.776872: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:15:01.776988: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:15:01.777023: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:15:01.777058: Inverter 0 scheduled discharge enable is False
2026-08-18 03:15:01.777178: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:15:01.777226: Inverter 0 discharge windows currently []
2026-08-18 03:15:01.777273: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:15:01.777315: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:15:01.777354: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:15:01.824441: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:15:01.824542: Plan was last updated on 2026-08-18 03:10:00+01:00 and is now 5.0 minutes old
2026-08-18 03:15:01.824685: Best charge window [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ]
2026-08-18 03:15:01.824718: Best export window [ ]
2026-08-18 03:15:01.825320: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:15:01.827837: Load divergence over 8.0 hours mean 387.59W, min 274.2W, max 741.0W, std dev 61.22W, divergence 7.9%
2026-08-18 03:15:01.843573: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:15:01.843687: LoadML is_calculating False
2026-08-18 03:15:01.843761: Creating pool of 12 processes to match your CPU count
2026-08-18 03:15:01.950841: predict base end_record 08-19 03:35:00, final soc 13.44kWh, metric 302.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.23kWh, PV 0.0kWh
2026-08-18 03:15:02.072557: Battery has 20.5 hours left - now at 13.44kWh
2026-08-18 03:15:02.110815: predict base10 end_record 08-19 03:35:00, final soc 13.44kWh, metric 314.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.97kWh, PV 0.0kWh
2026-08-18 03:15:02.185091: predict best10 end_record 08-19 03:35:00, final soc 1.44kWh, metric 209.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.97kWh, PV 0.0kWh
2026-08-18 03:15:02.255000: predict best end_record 08-19 03:35:00, final soc 1.51kWh, metric 200.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.23kWh, PV 0.0kWh
2026-08-18 03:15:02.255081: Saving plan best values to HA entities
2026-08-18 03:15:02.395783: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:15:02.400884: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:15:02.405807: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.5kWh, house 3.08kWh, export 0.0kWh, metric 200.33p, metric10 209.96p
2026-08-18 03:15:02.477061: Marginal costs baseline metric (no standing charge): 153.6951
2026-08-18 03:15:02.687414: Marginal energy costs matrix computed: min=8.0 max=32.57
2026-08-18 03:15:02.743534: Rate array import [{'start': 195, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1655, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 195, 'end': 1655, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:15:02.744030: - Your estimated bill for today is £1.26 and tomorrow is £2.89
2026-08-18 03:15:02.744085: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:15:02.744109: - The battery is currently at 84% and is charging to 84% for the next 1 and three quarters hours.
2026-08-18 03:15:02.744127: - For the next 48 hours there will be no solar generation.
2026-08-18 03:15:02.744152: - You will run out of battery in 20 hours.
2026-08-18 03:15:02.744171:
2026-08-18 03:15:02.786762: Plan calculation took 0.96 seconds
2026-08-18 03:15:02.789488: No high rate period found
2026-08-18 03:15:02.830175: Import threshold used for optimisation was 8.0p
2026-08-18 03:15:02.870190: Low import rate windows [0: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 1: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 2: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 3: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 4: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 5: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 6: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 7: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 8: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 9: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 10: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 11: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 12: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 13: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 14: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 15: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 16: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 17: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 18: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 19: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 20: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 21: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 22: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 23: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 24: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0]
2026-08-18 03:15:02.874810: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:15:02.874907: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:15:02.875104: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:15:02.875190: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:15:02.875385: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:15:02.875671: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:15:02.875807: No export window planned
2026-08-18 03:15:02.875994: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:15:02.876033: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:15:02.876197: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:15:02.876292: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:15:02.876361: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:15:02.876445: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:15:02.876600: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876648: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876701: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876805: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876839: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876866: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876895: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876919: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876941: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.876972: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877053: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877247: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:15:02.877305: Inverter 0 count register writes 0
2026-08-18 03:15:02.898338: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 03:15:02.905696: Total inverter register writes now 865
2026-08-18 03:15:02.939378: Info: Completed run status Hold charging
2026-08-18 03:15:02.946900: Info: record_status Hold charging target 84%-84%
2026-08-18 03:15:02.955117: Saved current settings to /config/predbat_config.json
2026-08-18 03:15:02.955478: Compare, best tariff: current metric 129.87p
2026-08-18 03:15:34.054904: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:15:34.055326: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:15:34.055384: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:15:34.055665: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:15:34.055715: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:15:34.055738: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:15:34.055758: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:17:34.258338: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:17:34.258683: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:17:34.258738: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:17:34.258939: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:17:34.258993: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:17:34.259024: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:17:34.259051: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:17:56.085990: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 03:17:57.097230: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:17:57.097463: Zero load period starting at 2026-08-17T10:54:00+0100 (981 minutes) for 189 minutes with base value 402.8
2026-08-18 03:17:57.098431: Processing 1345 30-minute periods for power integration
2026-08-18 03:17:57.206982: ML Component: Car charging hold False, car energy reported load False
2026-08-18 03:17:57.311845: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:17:57.415547: ML Temperature data points: 50206
2026-08-18 03:17:57.691224: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 03:17:57.731711: ML Component: Data fetch completed, load data age 59.0 days, 17151 data points
2026-08-18 03:17:57.732172: ML Component: No training needed, model age is 0.55 hours
2026-08-18 03:17:57.732298: ML Component: Generating predictions load data age 59.0 days, 17151 data points
2026-08-18 03:17:57.849536: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0527 max_dow {0: 0.08633055561814043, 1: 0.09144444428367747, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 03:17:58.237793: ML Component: Generated 576 predictions (total 29.67 kWh over 48h)
2026-08-18 03:17:58.268353: ML Component: Prediction cycle completed
2026-08-18 03:17:58.371666: ML Component: Saved 17151 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 03:19:48.980891: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:19:48.981136: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:19:48.981178: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:19:48.981314: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:19:48.981353: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:19:48.981374: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:19:48.981392: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:20:00.065835: --------------- PredBat - update at 2026-08-18 03:20:00+01:00 with clock skew 0 minutes, minutes now 200
2026-08-18 03:20:00.066553: Saved current settings to /config/predbat_config.json
2026-08-18 03:20:00.587186: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:20:00.587297: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:20:00.604011: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:20:00.604148: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:20:00.604312: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:20:00.604814: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:20:00.604930: Predbat mode is set to Control charge & discharge
2026-08-18 03:20:00.780740: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:20:00.780880: Using load_power data to fill gaps in load_today data
2026-08-18 03:20:01.520257: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:20:01.520890: Zero load period starting at 2026-08-17T10:54:00+0100 (986 minutes) for 189 minutes with base value 210.325
2026-08-18 03:20:01.521620: Processing 721 30-minute periods for power integration
2026-08-18 03:20:01.699947: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:20:01.700063: Car charging hold False, threshold 6.0kWh
2026-08-18 03:20:01.700102: Current data so far today: load 1.65kWh, import 8.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:20:01.712771: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:20:01.712862: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:20:01.713477: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:20:01.713546: Standing charge is set to 46.63p
2026-08-18 03:20:01.812429: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:20:01.812691: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:20:01.812878: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:20:01.813969: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:20:01.814075: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:20:01.819802: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:20:01.820130: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:20:01.864890: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:20:01.865004: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:20:01.866169: High export rate found rates in range 99p to -99p
2026-08-18 03:20:01.892793: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:20:01.892922: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:20:01.903893: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:20:01.904684: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:20:01.961585: Today's energy total net 8.9kWh, import 8.9kWh, export 0.0kWh, cost 117.83p, import 71.2p, export 0.0p, carbon 0.0kg
2026-08-18 03:20:01.961701: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:20:02.041470: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:20:02.069690: Today's load divergence 92.85%, in-day adjustment 92.75%, damping 0.95x, yesterday 92.68% today 93.21% blend 86.11%
2026-08-18 03:20:02.069790: Today's predicted so far 2.68kWh with 0.0kWh car/iBoost excluded, 7.4kWh import ignored, and 2.68kWh forecast extra.
2026-08-18 03:20:02.069817: Today's actual load so far 1.6kWh with 0.0kWh car/iBoost excluded, and 7.4kWh import ignored.
2026-08-18 03:20:02.103986: Inverter 0: Type SK Sunsynk
2026-08-18 03:20:02.104076: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:20:02.104275: Reserve min: 7%, battery_min: 7%
2026-08-18 03:20:02.104355: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:20:02.104642: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -554W, load power 555W, PV Power 0W
2026-08-18 03:20:02.104775: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:20:02.104845: Inverter 0 scheduled charge enable is True
2026-08-18 03:20:02.104888: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:20:02.104995: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:20:02.105104: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:20:02.105132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:20:02.105162: Inverter 0 scheduled discharge enable is False
2026-08-18 03:20:02.105254: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:20:02.105283: Inverter 0 discharge windows currently []
2026-08-18 03:20:02.105302: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:20:02.105320: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:20:02.105334: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:20:02.159144: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:20:02.159228: Plan was last updated on 2026-08-18 03:10:00+01:00 and is now 10.0 minutes old
2026-08-18 03:20:02.159376: Best charge window [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ]
2026-08-18 03:20:02.159409: Best export window [ ]
2026-08-18 03:20:02.160358: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:20:02.164124: Load divergence over 8.0 hours mean 389.08W, min 297.6W, max 693.0W, std dev 49.9W, divergence 6.41%
2026-08-18 03:20:02.182690: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:20:02.182805: LoadML is_calculating False
2026-08-18 03:20:02.182880: Creating pool of 12 processes to match your CPU count
2026-08-18 03:20:02.284094: predict base end_record 08-19 03:40:00, final soc 13.44kWh, metric 303.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.27kWh, PV 0.0kWh
2026-08-18 03:20:02.392761: Battery has 20.42 hours left - now at 13.44kWh
2026-08-18 03:20:02.431434: predict base10 end_record 08-19 03:40:00, final soc 13.44kWh, metric 315.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.02kWh, PV 0.0kWh
2026-08-18 03:20:02.501888: predict best10 end_record 08-19 03:40:00, final soc 1.77kWh, metric 213.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.02kWh, PV 0.0kWh
2026-08-18 03:20:02.579003: predict best end_record 08-19 03:40:00, final soc 1.9kWh, metric 204.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.27kWh, PV 0.0kWh
2026-08-18 03:20:02.579105: Saving plan best values to HA entities
2026-08-18 03:20:02.739437: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:20:02.743815: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:20:02.748328: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.91kWh, house 3.08kWh, export 0.0kWh, metric 204.42p, metric10 213.43p
2026-08-18 03:20:02.807852: Marginal costs baseline metric (no standing charge): 157.7884
2026-08-18 03:20:03.022615: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:20:03.082289: Rate array import [{'start': 200, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1660, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 200, 'end': 1660, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:20:03.082709: - Your estimated bill for today is £1.27 and tomorrow is £2.88
2026-08-18 03:20:03.082754: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:20:03.082777: - The battery is currently at 84% and is charging to 84% for the next 1 and three quarters hours.
2026-08-18 03:20:03.082796: - For the next 48 hours there will be no solar generation.
2026-08-18 03:20:03.082819: - You will run out of battery in 20 hours.
2026-08-18 03:20:03.082837:
2026-08-18 03:20:03.129498: Plan calculation took 0.97 seconds
2026-08-18 03:20:03.132186: No high rate period found
2026-08-18 03:20:03.175404: Import threshold used for optimisation was 8.0p
2026-08-18 03:20:03.220683: Low import rate windows [0: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 1: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 2: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 3: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 4: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 5: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 6: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 7: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 8: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 9: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 10: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 11: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 12: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 13: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 14: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 15: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 16: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 17: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 18: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 19: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 20: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 21: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 22: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 23: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 24: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0]
2026-08-18 03:20:03.226649: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:20:03.226755: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:20:03.226929: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:20:03.227010: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:20:03.227157: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:20:03.227401: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:20:03.227528: No export window planned
2026-08-18 03:20:03.227685: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:20:03.227721: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:20:03.227867: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:20:03.228087: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:20:03.228170: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:20:03.228234: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:20:03.228354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228477: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228557: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228618: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228651: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228691: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228720: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228753: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228780: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228810: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228906: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228932: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.228987: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.229010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.229033: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:03.229059: Inverter 0 count register writes 0
2026-08-18 03:20:03.244636: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 03:20:03.244793: Recompute is saving previous plan...
2026-08-18 03:20:03.245725: Best charge window [ 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84% ]
2026-08-18 03:20:03.245793: Best export window [ ]
2026-08-18 03:20:03.246636: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:20:03.249925: Load divergence over 8.0 hours mean 389.08W, min 297.6W, max 693.0W, std dev 49.9W, divergence 6.41%
2026-08-18 03:20:03.267722: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:20:03.267838: LoadML is_calculating False
2026-08-18 03:20:03.267940: Creating pool of 12 processes to match your CPU count
2026-08-18 03:20:03.352820: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 03:20:03.353599: Optimise levels pass started at 2026-08-18 03:20:03
2026-08-18 03:20:03.353642: Optimise all windows, total charge 24 export 1
2026-08-18 03:20:03.664443: >> Region optimisation pass width 960 gives best_metric 289.46p, best_cost 294.81p, best_cycle 37.05kWh, best_import 22.12kWh
2026-08-18 03:20:03.793274: >> Region optimisation pass width 480 gives best_metric 289.46p, best_cost 294.81p, best_cycle 37.05kWh, best_import 22.12kWh
2026-08-18 03:20:04.018145: >> Region optimisation pass width 240 gives best_metric 289.46p, best_cost 294.81p, best_cycle 37.05kWh, best_import 22.12kWh
2026-08-18 03:20:04.586195: >> Region optimisation pass width 120 gives best_metric 289.46p, best_cost 294.81p, best_cycle 37.05kWh, best_import 22.12kWh
2026-08-18 03:20:04.586489: Calculated end_record as 08-19 03:30:00 based on best_price 8.0p, next_charge_start 08-18 03:30:00, max_windows 13
2026-08-18 03:20:04.586599: Optimise levels pass ended at 2026-08-18 03:20:04, duration 1.2 seconds tried 51 combinations
2026-08-18 03:20:04.586707: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 289.46p, best_keep 0kWh, best_cycle 37.05kWh, best_carbon 0kg, best_import 22.12kWh
2026-08-18 03:20:04.605569: Starting detailed optimisation end_record 08-19 03:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 03:20:06.543163: Tweak plan optimisation started metric 144.35p, cost 151.16p
2026-08-18 03:20:06.766235: Tweak optimisation finished metric 143.49p, cost 150.3p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.06kWh, changed 8 window(s)
2026-08-18 03:20:06.784470: Swap charge optimisation started metric 143.49p, cost 150.3p, min_improvement_swap 0.1p
2026-08-18 03:20:06.869878: Swap charge optimisation finished metric 143.49p, cost 150.3p
2026-08-18 03:20:06.938561: Pruned 1 dead plan slot(s) in 5 trial(s), nominal metric 142.6p -> 142.6p, plan now metric 144.12p, cost 150.3p, cycle 12.07kWh, import 4.06kWh
2026-08-18 03:20:06.949064: Raw charge windows [ 18-08 03:00:00 - 18-08 03:30:00 @ 8.0p 84%, 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:20:06.949436: Unclipped charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:20:06.949669: Unfiltered charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:20:06.949852: Filtered charge windows [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:20:06.987798: Previous plan best metric is 143.49 (cost 150.3) and new plan best metric is 143.49 (cost 150.3)
2026-08-18 03:20:06.988057: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 03:20:06.988183: Plan valid is now true after recompute was False
2026-08-18 03:20:07.025757: predict base end_record 08-19 03:30:00, final soc 13.44kWh, metric 302.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.17kWh, PV 0.0kWh
2026-08-18 03:20:07.139282: Battery has 20.42 hours left - now at 13.44kWh
2026-08-18 03:20:07.177659: predict base10 end_record 08-19 03:30:00, final soc 13.44kWh, metric 314.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.91kWh, PV 0.0kWh
2026-08-18 03:20:07.241208: predict best10 end_record 08-19 03:30:00, final soc 1.12kWh, metric 207.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.91kWh, PV 0.0kWh
2026-08-18 03:20:07.309878: predict best end_record 08-19 03:30:00, final soc 1.12kWh, metric 196.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.17kWh, PV 0.0kWh
2026-08-18 03:20:07.309954: Saving plan best values to HA entities
2026-08-18 03:20:07.454209: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:20:07.459223: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:20:07.464269: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.98kWh, house 3.08kWh, export 0.0kWh, metric 196.94p, metric10 207.02p
2026-08-18 03:20:07.527885: Marginal costs baseline metric (no standing charge): 150.3026
2026-08-18 03:20:07.781414: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:20:07.842647: Rate array import [{'start': 200, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1650, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 200, 'end': 1650, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:20:07.843026: - Your estimated bill for today is £1.27 and tomorrow is £2.88
2026-08-18 03:20:07.843069: - Import rates are cheap (8.0p) for the next 2 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:20:07.843092: - The battery is currently at 84% and is charging to 84% for the next 1 and three quarters hours.
2026-08-18 03:20:07.843110: - For the next 48 hours there will be no solar generation.
2026-08-18 03:20:07.843128: - You will run out of battery in 20 hours.
2026-08-18 03:20:07.843145:
2026-08-18 03:20:07.886563: Plan calculation took 4.64 seconds
2026-08-18 03:20:07.886825: Inverter 0: Type SK Sunsynk
2026-08-18 03:20:07.886862: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:20:07.887078: Reserve min: 7%, battery_min: 7%
2026-08-18 03:20:07.887155: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:20:07.887436: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -556W, load power 556W, PV Power 0W
2026-08-18 03:20:07.887640: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:20:07.887731: Inverter 0 scheduled charge enable is True
2026-08-18 03:20:07.887769: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:20:07.887855: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:20:07.888003: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:20:07.888046: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:20:07.888105: Inverter 0 scheduled discharge enable is False
2026-08-18 03:20:07.888214: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:20:07.888258: Inverter 0 discharge windows currently []
2026-08-18 03:20:07.888288: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:20:07.888310: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:20:07.888338: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:20:07.933330: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:20:07.933430: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:20:07.933549: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:20:07.933614: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:20:07.933707: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:20:07.933847: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:20:07.933936: No export window planned
2026-08-18 03:20:07.934040: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:20:07.934071: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:20:07.934182: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:20:07.934260: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:20:07.934324: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:20:07.934367: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:20:07.934454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934671: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934702: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934728: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934751: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934774: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934797: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934817: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934941: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.934984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.935003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:20:07.935024: Inverter 0 count register writes 0
2026-08-18 03:20:07.953679: Total inverter register writes now 865
2026-08-18 03:20:07.981184: Info: Completed run status Hold charging
2026-08-18 03:20:07.987047: Info: record_status Hold charging target 84%-84%
2026-08-18 03:20:07.993343: Saved current settings to /config/predbat_config.json
2026-08-18 03:20:07.993663: Compare, best tariff: current metric 129.87p
2026-08-18 03:20:49.098381: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:20:49.098698: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:20:49.098736: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:20:49.098861: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:20:49.098899: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:20:49.098921: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:20:49.098938: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:22:49.298175: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:22:49.298425: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:22:49.298467: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:22:49.298702: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:22:49.298760: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:22:49.298785: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:22:49.298805: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:24:49.512778: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:24:49.513043: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:24:49.513079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:24:49.513230: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:24:49.513268: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:24:49.513289: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:24:49.513307: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:25:00.599206: --------------- PredBat - update at 2026-08-18 03:25:00+01:00 with clock skew 0 minutes, minutes now 205
2026-08-18 03:25:00.600238: Saved current settings to /config/predbat_config.json
2026-08-18 03:25:00.600338: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 03:25:00.600476: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:25:00.600538: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:25:00.618757: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:25:00.618855: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:25:00.618988: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:25:00.619448: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:25:00.619547: Predbat mode is set to Control charge & discharge
2026-08-18 03:25:00.802334: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:25:00.802465: Using load_power data to fill gaps in load_today data
2026-08-18 03:25:01.521833: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:25:01.522011: Zero load period starting at 2026-08-17T10:54:00+0100 (991 minutes) for 189 minutes with base value 210.3
2026-08-18 03:25:01.522715: Processing 721 30-minute periods for power integration
2026-08-18 03:25:01.675435: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:25:01.675574: Car charging hold False, threshold 6.0kWh
2026-08-18 03:25:01.675615: Current data so far today: load 1.7kWh, import 8.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:25:01.688115: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:25:01.688187: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:25:01.688828: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:25:01.688898: Standing charge is set to 46.63p
2026-08-18 03:25:01.769214: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:25:01.769440: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:25:01.769635: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:25:01.770485: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:25:01.770580: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:25:01.774849: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:25:01.775232: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:25:01.810290: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:25:01.810387: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:25:01.811421: High export rate found rates in range 99p to -99p
2026-08-18 03:25:01.831739: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:25:01.831850: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:25:01.843099: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:25:01.843439: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:25:01.885753: Today's energy total net 8.9kWh, import 8.9kWh, export 0.0kWh, cost 117.83p, import 71.2p, export 0.0p, carbon 0.0kg
2026-08-18 03:25:01.885896: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:25:01.946002: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:25:01.968718: Today's load divergence 93.04%, in-day adjustment 92.78%, damping 0.95x, yesterday 92.68% today 93.38% blend 85.76%
2026-08-18 03:25:01.968789: Today's predicted so far 2.71kWh with 0.0kWh car/iBoost excluded, 7.41kWh import ignored, and 2.71kWh forecast extra.
2026-08-18 03:25:01.968814: Today's actual load so far 1.65kWh with 0.0kWh car/iBoost excluded, and 7.41kWh import ignored.
2026-08-18 03:25:02.001633: Inverter 0: Type SK Sunsynk
2026-08-18 03:25:02.001710: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:25:02.001887: Reserve min: 7%, battery_min: 7%
2026-08-18 03:25:02.001980: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:25:02.002261: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -544W, load power 544W, PV Power 0W
2026-08-18 03:25:02.002397: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:25:02.002512: Inverter 0 scheduled charge enable is True
2026-08-18 03:25:02.002582: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:25:02.002686: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:25:02.002791: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:25:02.002821: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:25:02.002850: Inverter 0 scheduled discharge enable is False
2026-08-18 03:25:02.002961: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:25:02.003003: Inverter 0 discharge windows currently []
2026-08-18 03:25:02.003024: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:25:02.003042: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:25:02.003057: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:25:02.054970: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:25:02.055097: Plan was last updated on 2026-08-18 03:20:00+01:00 and is now 5.0 minutes old
2026-08-18 03:25:02.055259: Best charge window [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ]
2026-08-18 03:25:02.055292: Best export window [ ]
2026-08-18 03:25:02.056008: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:25:02.058481: Load divergence over 8.0 hours mean 390.62W, min 292.8W, max 660.0W, std dev 53.01W, divergence 6.79%
2026-08-18 03:25:02.075145: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:25:02.075247: LoadML is_calculating False
2026-08-18 03:25:02.075298: Creating pool of 12 processes to match your CPU count
2026-08-18 03:25:02.179231: predict base end_record 08-19 03:35:00, final soc 13.44kWh, metric 302.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.23kWh, PV 0.0kWh
2026-08-18 03:25:02.297483: Battery has 20.33 hours left - now at 13.44kWh
2026-08-18 03:25:02.338627: predict base10 end_record 08-19 03:35:00, final soc 13.44kWh, metric 314.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.97kWh, PV 0.0kWh
2026-08-18 03:25:02.403884: predict best10 end_record 08-19 03:35:00, final soc 1.44kWh, metric 210.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.97kWh, PV 0.0kWh
2026-08-18 03:25:02.470772: predict best end_record 08-19 03:35:00, final soc 1.51kWh, metric 200.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.23kWh, PV 0.0kWh
2026-08-18 03:25:02.470847: Saving plan best values to HA entities
2026-08-18 03:25:02.618512: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:25:02.624401: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:25:02.630185: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.39kWh, house 3.09kWh, export 0.0kWh, metric 200.34p, metric10 210.38p
2026-08-18 03:25:02.701614: Marginal costs baseline metric (no standing charge): 153.7079
2026-08-18 03:25:02.917891: Marginal energy costs matrix computed: min=8.0 max=32.62
2026-08-18 03:25:02.981004: Rate array import [{'start': 205, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1655, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 205, 'end': 1655, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:25:02.981498: - Your estimated bill for today is £1.27 and tomorrow is £2.89
2026-08-18 03:25:02.981552: - Import rates are cheap (8.0p) for the next 2 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:25:02.981596: - The battery is currently at 84% and is charging to 84% for the next 1 and a half hours.
2026-08-18 03:25:02.981658: - For the next 48 hours there will be no solar generation.
2026-08-18 03:25:02.981696: - You will run out of battery in 20 hours.
2026-08-18 03:25:02.981730:
2026-08-18 03:25:03.026135: Plan calculation took 0.97 seconds
2026-08-18 03:25:03.029427: No high rate period found
2026-08-18 03:25:03.080938: Import threshold used for optimisation was 8.0p
2026-08-18 03:25:03.125334: Low import rate windows [0: 08-18 03:00:00 - 08-18 03:30:00 @ 8.0, 1: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 2: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 3: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 4: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 5: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 6: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 7: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 8: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 9: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 10: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 11: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 12: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 13: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 14: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 15: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 16: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 17: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 18: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 19: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 20: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 21: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 22: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 23: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 24: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0]
2026-08-18 03:25:03.129790: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:25:03.129884: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:25:03.130053: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:25:03.130130: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:25:03.130250: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:25:03.130508: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:25:03.130662: No export window planned
2026-08-18 03:25:03.130785: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:25:03.130815: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:25:03.130934: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:25:03.131006: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:25:03.131051: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:25:03.131098: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:25:03.131183: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131216: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131261: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131281: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131376: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131410: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131434: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131461: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131484: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131505: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131529: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131660: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131710: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131737: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:25:03.131754: Inverter 0 count register writes 0
2026-08-18 03:25:03.144905: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 03:25:03.149274: Total inverter register writes now 865
2026-08-18 03:25:03.179438: Info: Completed run status Hold charging
2026-08-18 03:25:03.185386: Info: record_status Hold charging target 84%-84%
2026-08-18 03:25:03.191601: Saved current settings to /config/predbat_config.json
2026-08-18 03:25:03.191930: Compare, best tariff: current metric 129.87p
2026-08-18 03:25:34.283582: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:25:34.283855: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:25:34.283947: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:25:34.284113: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:25:34.284156: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:25:34.284179: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:25:34.284201: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:27:34.492130: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:27:34.492387: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:27:34.492429: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:27:34.492560: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:27:34.492615: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:27:34.492641: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:27:34.492667: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:29:48.726179: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:29:48.726393: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:29:48.726422: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:29:48.726555: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:29:48.726587: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:29:48.726622: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:29:48.726644: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:30:00.820770: --------------- PredBat - update at 2026-08-18 03:30:00+01:00 with clock skew 0 minutes, minutes now 210
2026-08-18 03:30:00.821556: Saved current settings to /config/predbat_config.json
2026-08-18 03:30:00.821715: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 03:30:00.821815: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:30:00.821932: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:30:00.839888: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:30:00.840062: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:30:00.840227: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:30:00.840778: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:30:00.840900: Predbat mode is set to Control charge & discharge
2026-08-18 03:30:01.063160: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:30:01.063287: Using load_power data to fill gaps in load_today data
2026-08-18 03:30:01.856715: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:30:01.856874: Zero load period starting at 2026-08-17T10:54:00+0100 (996 minutes) for 189 minutes with base value 210.25
2026-08-18 03:30:01.857556: Processing 721 30-minute periods for power integration
2026-08-18 03:30:02.021728: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:30:02.021838: Car charging hold False, threshold 6.0kWh
2026-08-18 03:30:02.021876: Current data so far today: load 1.75kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:30:02.034884: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:30:02.034982: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:30:02.035656: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:30:02.035721: Standing charge is set to 46.63p
2026-08-18 03:30:02.127369: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:30:02.127665: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:30:02.127884: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:30:02.129095: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:30:02.129210: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:30:02.134263: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:30:02.134662: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:30:02.170216: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:30:02.170548: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:30:02.171562: High export rate found rates in range 99p to -99p
2026-08-18 03:30:02.192173: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:30:02.192280: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:30:02.202787: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:30:02.203068: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:30:02.247271: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 118.63p, import 72.0p, export 0.0p, carbon 0.0kg
2026-08-18 03:30:02.247424: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:30:02.313859: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:30:02.336530: Today's load divergence 92.67%, in-day adjustment 92.73%, damping 0.95x, yesterday 92.68% today 93.04% blend 85.42%
2026-08-18 03:30:02.336630: Today's predicted so far 2.84kWh with 0.0kWh car/iBoost excluded, 7.36kWh import ignored, and 2.84kWh forecast extra.
2026-08-18 03:30:02.336673: Today's actual load so far 1.73kWh with 0.0kWh car/iBoost excluded, and 7.36kWh import ignored.
2026-08-18 03:30:02.373044: Inverter 0: Type SK Sunsynk
2026-08-18 03:30:02.373134: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:30:02.373310: Reserve min: 7%, battery_min: 7%
2026-08-18 03:30:02.373386: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:30:02.373685: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -541W, load power 541W, PV Power 0W
2026-08-18 03:30:02.373915: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:30:02.374014: Inverter 0 scheduled charge enable is True
2026-08-18 03:30:02.374064: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:30:02.374155: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:30:02.374277: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:30:02.374329: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:30:02.374388: Inverter 0 scheduled discharge enable is False
2026-08-18 03:30:02.374528: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:30:02.374565: Inverter 0 discharge windows currently []
2026-08-18 03:30:02.374588: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:30:02.374624: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:30:02.374643: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:30:02.430942: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:30:02.431042: Plan was last updated on 2026-08-18 03:20:00+01:00 and is now 10.0 minutes old
2026-08-18 03:30:02.431214: Best charge window [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ]
2026-08-18 03:30:02.431276: Best export window [ ]
2026-08-18 03:30:02.432195: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:30:02.435276: Load divergence over 8.0 hours mean 392.09W, min 281.4W, max 651.6W, std dev 55.86W, divergence 7.12%
2026-08-18 03:30:02.453691: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:30:02.453802: LoadML is_calculating False
2026-08-18 03:30:02.453884: Creating pool of 12 processes to match your CPU count
2026-08-18 03:30:02.571658: predict base end_record 08-19 03:40:00, final soc 13.44kWh, metric 303.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.27kWh, PV 0.0kWh
2026-08-18 03:30:02.697414: Battery has 20.25 hours left - now at 13.44kWh
2026-08-18 03:30:02.747515: predict base10 end_record 08-19 03:40:00, final soc 13.44kWh, metric 315.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.01kWh, PV 0.0kWh
2026-08-18 03:30:02.822840: predict best10 end_record 08-19 03:40:00, final soc 1.77kWh, metric 213.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.01kWh, PV 0.0kWh
2026-08-18 03:30:02.905271: predict best end_record 08-19 03:40:00, final soc 1.9kWh, metric 204.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.27kWh, PV 0.0kWh
2026-08-18 03:30:02.905363: Saving plan best values to HA entities
2026-08-18 03:30:03.066580: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:30:03.071470: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:30:03.075928: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.81kWh, house 3.09kWh, export 0.0kWh, metric 204.42p, metric10 213.6p
2026-08-18 03:30:03.139341: Marginal costs baseline metric (no standing charge): 157.7852
2026-08-18 03:30:03.355972: Marginal energy costs matrix computed: min=8.0 max=32.59
2026-08-18 03:30:03.420287: Rate array import [{'start': 210, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1660, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 210, 'end': 1660, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:30:03.420730: - Your estimated bill for today is £1.26 and tomorrow is £2.88
2026-08-18 03:30:03.420777: - Import rates are cheap (8.0p) for the next 2 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:30:03.420801: - The battery is currently at 84% and is charging to 84% for the next 1 and a half hours.
2026-08-18 03:30:03.420820: - For the next 48 hours there will be no solar generation.
2026-08-18 03:30:03.420840: - You will run out of battery in 20 hours.
2026-08-18 03:30:03.420857:
2026-08-18 03:30:03.472071: Plan calculation took 1.04 seconds
2026-08-18 03:30:03.475511: No high rate period found
2026-08-18 03:30:03.523363: Import threshold used for optimisation was 8.0p
2026-08-18 03:30:03.572813: Low import rate windows [0: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 1: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 2: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 3: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 4: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 5: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 6: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 7: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 8: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 9: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 10: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 11: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 12: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 13: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 14: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 15: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 16: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 17: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 18: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 19: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 20: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 21: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 22: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 23: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0]
2026-08-18 03:30:03.578419: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:30:03.578527: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:30:03.578716: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:30:03.578804: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:30:03.578948: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:30:03.579178: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:30:03.579306: No export window planned
2026-08-18 03:30:03.579438: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:30:03.579474: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:30:03.579630: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:30:03.579722: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:30:03.579782: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:30:03.579839: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:30:03.579991: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580077: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580156: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580233: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580265: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580294: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580322: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580352: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580379: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580403: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580545: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580673: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:03.580694: Inverter 0 count register writes 0
2026-08-18 03:30:03.597107: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 03:30:03.597262: Recompute is saving previous plan...
2026-08-18 03:30:03.598204: Best charge window [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84% ]
2026-08-18 03:30:03.598255: Best export window [ ]
2026-08-18 03:30:03.599056: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:30:03.602252: Load divergence over 8.0 hours mean 392.09W, min 281.4W, max 651.6W, std dev 55.86W, divergence 7.12%
2026-08-18 03:30:03.620320: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:30:03.620430: LoadML is_calculating False
2026-08-18 03:30:03.620497: Creating pool of 12 processes to match your CPU count
2026-08-18 03:30:03.697346: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 03:30:03.697981: Optimise levels pass started at 2026-08-18 03:30:03
2026-08-18 03:30:03.698027: Optimise all windows, total charge 24 export 1
2026-08-18 03:30:04.039674: >> Region optimisation pass width 960 gives best_metric 290.18p, best_cost 295.96p, best_cycle 37.56kWh, best_import 22.17kWh
2026-08-18 03:30:04.187204: >> Region optimisation pass width 480 gives best_metric 290.18p, best_cost 295.96p, best_cycle 37.56kWh, best_import 22.17kWh
2026-08-18 03:30:04.438899: >> Region optimisation pass width 240 gives best_metric 290.18p, best_cost 295.96p, best_cycle 37.56kWh, best_import 22.17kWh
2026-08-18 03:30:04.942849: >> Region optimisation pass width 120 gives best_metric 290.18p, best_cost 295.96p, best_cycle 37.56kWh, best_import 22.17kWh
2026-08-18 03:30:04.943060: Calculated end_record as 08-19 03:30:00 based on best_price 8.0p, next_charge_start 08-18 03:30:00, max_windows 12
2026-08-18 03:30:04.943170: Optimise levels pass ended at 2026-08-18 03:30:04, duration 1.2 seconds tried 49 combinations
2026-08-18 03:30:04.943268: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 290.18p, best_keep 0kWh, best_cycle 37.56kWh, best_carbon 0kg, best_import 22.17kWh
2026-08-18 03:30:04.957954: Starting detailed optimisation end_record 08-19 03:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 03:30:06.945456: Tweak plan optimisation started metric 144.59p, cost 151.41p
2026-08-18 03:30:07.210102: Tweak optimisation finished metric 143.45p, cost 150.27p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 3.95kWh, changed 8 window(s)
2026-08-18 03:30:07.232979: Swap charge optimisation started metric 143.45p, cost 150.27p, min_improvement_swap 0.1p
2026-08-18 03:30:07.311279: Swap charge optimisation finished metric 143.45p, cost 150.27p
2026-08-18 03:30:07.379192: Pruned 1 dead plan slot(s) in 4 trial(s), nominal metric 142.57p -> 142.57p, plan now metric 144.11p, cost 150.27p, cycle 12.07kWh, import 3.95kWh
2026-08-18 03:30:07.390379: Raw charge windows [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 100%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:30:07.390703: Unclipped charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:30:07.390872: Unfiltered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:30:07.391014: Filtered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:30:07.430645: Previous plan best metric is 143.45 (cost 150.27) and new plan best metric is 143.45 (cost 150.27)
2026-08-18 03:30:07.430895: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 03:30:07.431055: Plan valid is now true after recompute was False
2026-08-18 03:30:07.458621: predict base end_record 08-19 03:30:00, final soc 13.44kWh, metric 302.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.17kWh, PV 0.0kWh
2026-08-18 03:30:07.563234: Battery has 20.25 hours left - now at 13.44kWh
2026-08-18 03:30:07.605492: predict base10 end_record 08-19 03:30:00, final soc 13.44kWh, metric 314.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.9kWh, PV 0.0kWh
2026-08-18 03:30:07.672365: predict best10 end_record 08-19 03:30:00, final soc 1.12kWh, metric 207.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.9kWh, PV 0.0kWh
2026-08-18 03:30:07.743752: predict best end_record 08-19 03:30:00, final soc 1.12kWh, metric 196.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.17kWh, PV 0.0kWh
2026-08-18 03:30:07.743839: Saving plan best values to HA entities
2026-08-18 03:30:07.900079: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:30:07.905017: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:30:07.909458: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.87kWh, house 3.09kWh, export 0.0kWh, metric 196.9p, metric10 207.16p
2026-08-18 03:30:07.975069: Marginal costs baseline metric (no standing charge): 150.2698
2026-08-18 03:30:08.259152: Marginal energy costs matrix computed: min=8.0 max=32.59
2026-08-18 03:30:08.326024: Rate array import [{'start': 210, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1650, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 210, 'end': 1650, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:30:08.326357: - Your estimated bill for today is £1.26 and tomorrow is £2.88
2026-08-18 03:30:08.326393: - Import rates are cheap (8.0p) for the next 2 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:30:08.326411: - The battery is currently at 84% and is charging to 84% for the next 1 and a half hours.
2026-08-18 03:30:08.326426: - For the next 48 hours there will be no solar generation.
2026-08-18 03:30:08.326439: - You will run out of battery in 20 hours.
2026-08-18 03:30:08.326458:
2026-08-18 03:30:08.373020: Plan calculation took 4.78 seconds
2026-08-18 03:30:08.373362: Inverter 0: Type SK Sunsynk
2026-08-18 03:30:08.373415: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:30:08.373692: Reserve min: 7%, battery_min: 7%
2026-08-18 03:30:08.373814: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:30:08.374339: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -542W, load power 541W, PV Power 0W
2026-08-18 03:30:08.374706: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:30:08.374831: Inverter 0 scheduled charge enable is True
2026-08-18 03:30:08.374885: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:30:08.374990: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:30:08.375117: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:30:08.375156: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:30:08.375193: Inverter 0 scheduled discharge enable is False
2026-08-18 03:30:08.375323: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:30:08.375364: Inverter 0 discharge windows currently []
2026-08-18 03:30:08.375404: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:30:08.375441: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:30:08.375500: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:30:08.426822: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:30:08.426922: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:30:08.427028: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:30:08.427089: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:30:08.427180: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:30:08.427364: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:30:08.427489: No export window planned
2026-08-18 03:30:08.427593: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:30:08.427641: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:30:08.427762: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:30:08.427836: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:30:08.427881: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:30:08.427972: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:30:08.428072: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428133: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428159: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428263: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428289: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428314: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428342: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428365: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428387: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428407: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428524: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:30:08.428647: Inverter 0 count register writes 0
2026-08-18 03:30:08.446590: Total inverter register writes now 865
2026-08-18 03:30:08.482068: Info: Completed run status Hold charging
2026-08-18 03:30:08.488598: Info: record_status Hold charging target 84%-84%
2026-08-18 03:30:08.495446: Saved current settings to /config/predbat_config.json
2026-08-18 03:30:08.495831: Compare, best tariff: current metric 129.87p
2026-08-18 03:30:49.607522: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:30:49.607760: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:30:49.607791: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:30:49.607919: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:30:49.607955: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:30:49.607973: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:30:49.607987: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:33:03.827969: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:33:03.828219: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:33:03.828261: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:33:03.828392: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:33:03.828430: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:33:03.828451: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:33:03.828472: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:35:00.023719: --------------- PredBat - update at 2026-08-18 03:35:00+01:00 with clock skew 0 minutes, minutes now 215
2026-08-18 03:35:00.024474: Saved current settings to /config/predbat_config.json
2026-08-18 03:35:00.024629: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 03:35:00.024735: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:35:00.024836: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:35:00.044556: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:35:00.044694: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:35:00.044855: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:35:00.045340: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:35:00.045452: Predbat mode is set to Control charge & discharge
2026-08-18 03:35:00.238566: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:35:00.238721: Using load_power data to fill gaps in load_today data
2026-08-18 03:35:01.075521: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:35:01.075726: Zero load period starting at 2026-08-17T10:54:00+0100 (1001 minutes) for 189 minutes with base value 210.2
2026-08-18 03:35:01.076679: Processing 721 30-minute periods for power integration
2026-08-18 03:35:01.267879: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:35:01.268026: Car charging hold False, threshold 6.0kWh
2026-08-18 03:35:01.268070: Current data so far today: load 1.8kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:35:01.282817: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:35:01.282972: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:35:01.283715: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:35:01.283787: Standing charge is set to 46.63p
2026-08-18 03:35:01.390329: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:35:01.390554: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:35:01.390754: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:35:01.391956: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:35:01.392076: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:35:01.397262: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:35:01.397575: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:35:01.442120: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:35:01.442233: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:35:01.443525: High export rate found rates in range 99p to -99p
2026-08-18 03:35:01.468980: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:35:01.469108: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:35:01.480553: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:35:01.480970: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:35:01.521410: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 118.63p, import 72.0p, export 0.0p, carbon 0.0kg
2026-08-18 03:35:01.521526: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:35:01.596701: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:35:01.625066: Today's load divergence 92.47%, in-day adjustment 92.7%, damping 0.95x, yesterday 92.68% today 92.84% blend 85.07%
2026-08-18 03:35:01.625403: Today's predicted so far 2.93kWh with 0.0kWh car/iBoost excluded, 7.33kWh import ignored, and 2.93kWh forecast extra.
2026-08-18 03:35:01.625447: Today's actual load so far 1.79kWh with 0.0kWh car/iBoost excluded, and 7.33kWh import ignored.
2026-08-18 03:35:01.659792: Inverter 0: Type SK Sunsynk
2026-08-18 03:35:01.659879: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:35:01.660172: Reserve min: 7%, battery_min: 7%
2026-08-18 03:35:01.660283: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:35:01.660675: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -538W, load power 538W, PV Power 0W
2026-08-18 03:35:01.660838: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:35:01.660969: Inverter 0 scheduled charge enable is True
2026-08-18 03:35:01.661043: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:35:01.661147: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:35:01.661275: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:35:01.661311: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:35:01.661349: Inverter 0 scheduled discharge enable is False
2026-08-18 03:35:01.661467: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:35:01.661502: Inverter 0 discharge windows currently []
2026-08-18 03:35:01.661525: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:35:01.661549: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:35:01.661566: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:35:01.717594: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:35:01.717721: Plan was last updated on 2026-08-18 03:30:00+01:00 and is now 5.0 minutes old
2026-08-18 03:35:01.717890: Best charge window [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ]
2026-08-18 03:35:01.717930: Best export window [ ]
2026-08-18 03:35:01.718770: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:35:01.721881: Load divergence over 8.0 hours mean 393.62W, min 263.4W, max 664.2W, std dev 62.59W, divergence 7.95%
2026-08-18 03:35:01.740281: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:35:01.740389: LoadML is_calculating False
2026-08-18 03:35:01.740447: Creating pool of 12 processes to match your CPU count
2026-08-18 03:35:01.848130: predict base end_record 08-19 03:35:00, final soc 13.44kWh, metric 302.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.22kWh, PV 0.0kWh
2026-08-18 03:35:01.964324: Battery has 20.25 hours left - now at 13.44kWh
2026-08-18 03:35:02.005268: predict base10 end_record 08-19 03:35:00, final soc 13.44kWh, metric 314.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 17.96kWh, PV 0.0kWh
2026-08-18 03:35:02.078953: predict best10 end_record 08-19 03:35:00, final soc 1.44kWh, metric 209.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 17.96kWh, PV 0.0kWh
2026-08-18 03:35:02.144767: predict best end_record 08-19 03:35:00, final soc 1.51kWh, metric 200.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 17.22kWh, PV 0.0kWh
2026-08-18 03:35:02.144841: Saving plan best values to HA entities
2026-08-18 03:35:02.286933: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:35:02.291300: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:35:02.295719: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.3kWh, house 3.08kWh, export 0.0kWh, metric 200.25p, metric10 209.76p
2026-08-18 03:35:02.354265: Marginal costs baseline metric (no standing charge): 153.6191
2026-08-18 03:35:02.571950: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:35:02.631689: Rate array import [{'start': 215, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1655, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 215, 'end': 1655, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:35:02.632095: - Your estimated bill for today is £1.26 and tomorrow is £2.88
2026-08-18 03:35:02.632135: - Import rates are cheap (8.0p) for the next 1 hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:35:02.632153: - The battery is currently at 84% and is charging to 84% for the next 1 and a half hours.
2026-08-18 03:35:02.632168: - For the next 48 hours there will be no solar generation.
2026-08-18 03:35:02.632182: - You will run out of battery in 20 hours.
2026-08-18 03:35:02.632196:
2026-08-18 03:35:02.673162: Plan calculation took 0.96 seconds
2026-08-18 03:35:02.676373: No high rate period found
2026-08-18 03:35:02.729033: Import threshold used for optimisation was 8.0p
2026-08-18 03:35:02.775690: Low import rate windows [0: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 1: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 2: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 3: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 4: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 5: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 6: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 7: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 8: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 9: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 10: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 11: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 12: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 13: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 14: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 15: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 16: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 17: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 18: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 19: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 20: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 21: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 22: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 23: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 24: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0]
2026-08-18 03:35:02.781776: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:35:02.781893: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:35:02.782060: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:35:02.782141: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:35:02.782335: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:35:02.782574: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:35:02.782726: No export window planned
2026-08-18 03:35:02.782865: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:35:02.782901: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:35:02.783033: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:35:02.783119: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:35:02.783172: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:35:02.783249: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:35:02.783385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783430: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783467: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783511: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783565: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783630: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783686: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783719: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783753: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783782: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783813: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783838: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783934: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.783978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.784005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.784029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.784058: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.784083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.784106: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:35:02.784131: Inverter 0 count register writes 0
2026-08-18 03:35:02.799444: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 03:35:02.804572: Total inverter register writes now 865
2026-08-18 03:35:02.836594: Info: Completed run status Hold charging
2026-08-18 03:35:02.842238: Info: record_status Hold charging target 84%-84%
2026-08-18 03:35:02.848803: Saved current settings to /config/predbat_config.json
2026-08-18 03:35:02.849101: Compare, best tariff: current metric 129.87p
2026-08-18 03:35:33.946530: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:35:33.946804: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:35:33.946853: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:35:33.946989: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:35:33.947032: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:35:33.947054: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:35:33.947071: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:37:34.155232: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:37:34.155521: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:37:34.155560: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:37:34.155731: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:37:34.155821: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:37:34.155843: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:37:34.155861: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:39:34.385039: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:39:34.385286: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:39:34.385328: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:39:34.385458: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:39:34.385495: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:39:34.385516: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:39:34.385533: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:40:00.487764: --------------- PredBat - update at 2026-08-18 03:40:00+01:00 with clock skew 0 minutes, minutes now 220
2026-08-18 03:40:00.488648: Saved current settings to /config/predbat_config.json
2026-08-18 03:40:00.488813: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 03:40:00.488949: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:40:00.489075: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:40:00.506307: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:40:00.506440: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:40:00.506648: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:40:00.507215: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:40:00.507378: Predbat mode is set to Control charge & discharge
2026-08-18 03:40:00.687655: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:40:00.687811: Using load_power data to fill gaps in load_today data
2026-08-18 03:40:01.508410: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:40:01.508573: Zero load period starting at 2026-08-17T10:54:00+0100 (1006 minutes) for 189 minutes with base value 210.175
2026-08-18 03:40:01.509457: Processing 721 30-minute periods for power integration
2026-08-18 03:40:01.698299: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:40:01.698729: Car charging hold False, threshold 6.0kWh
2026-08-18 03:40:01.698790: Current data so far today: load 1.85kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:40:01.713683: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:40:01.713783: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:40:01.714484: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:40:01.714554: Standing charge is set to 46.63p
2026-08-18 03:40:01.820783: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:40:01.821060: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:40:01.821245: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:40:01.822852: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:40:01.823023: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:40:01.829153: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:40:01.829559: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:40:01.865705: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:40:01.865811: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:40:01.866900: High export rate found rates in range 99p to -99p
2026-08-18 03:40:01.887950: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:40:01.888057: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:40:01.897929: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:40:01.898281: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:40:01.937929: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 118.63p, import 72.0p, export 0.0p, carbon 0.0kg
2026-08-18 03:40:01.938069: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:40:01.998003: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:40:02.020516: Today's load divergence 92.58%, in-day adjustment 92.72%, damping 0.95x, yesterday 92.68% today 92.95% blend 84.72%
2026-08-18 03:40:02.020597: Today's predicted so far 2.94kWh with 0.0kWh car/iBoost excluded, 7.36kWh import ignored, and 2.94kWh forecast extra.
2026-08-18 03:40:02.020642: Today's actual load so far 1.82kWh with 0.0kWh car/iBoost excluded, and 7.36kWh import ignored.
2026-08-18 03:40:02.052467: Inverter 0: Type SK Sunsynk
2026-08-18 03:40:02.052549: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:40:02.052743: Reserve min: 7%, battery_min: 7%
2026-08-18 03:40:02.052821: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:40:02.053073: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -542W, load power 542W, PV Power 0W
2026-08-18 03:40:02.053221: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:40:02.053303: Inverter 0 scheduled charge enable is True
2026-08-18 03:40:02.053351: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:40:02.053439: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:40:02.053561: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:40:02.053597: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:40:02.053632: Inverter 0 scheduled discharge enable is False
2026-08-18 03:40:02.053771: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:40:02.053809: Inverter 0 discharge windows currently []
2026-08-18 03:40:02.053851: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:40:02.053877: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:40:02.053895: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:40:02.103268: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:40:02.103381: Plan was last updated on 2026-08-18 03:30:00+01:00 and is now 10.0 minutes old
2026-08-18 03:40:02.103597: Best charge window [ 18-08 03:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 03:30:00 @ 8.0p 100% ]
2026-08-18 03:40:02.103638: Best export window [ ]
2026-08-18 03:40:02.104364: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:40:02.107133: Load divergence over 8.0 hours mean 393.6W, min 262.2W, max 702.6W, std dev 60.54W, divergence 7.69%
2026-08-18 03:40:02.123084: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:40:02.123199: LoadML is_calculating False
2026-08-18 03:40:02.123271: Creating pool of 12 processes to match your CPU count
2026-08-18 03:40:02.228255: predict base end_record 08-19 03:40:00, final soc 13.44kWh, metric 302.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.27kWh, PV 0.0kWh
2026-08-18 03:40:02.358405: Battery has 20.08 hours left - now at 13.44kWh
2026-08-18 03:40:02.394525: predict base10 end_record 08-19 03:40:00, final soc 13.44kWh, metric 314.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.01kWh, PV 0.0kWh
2026-08-18 03:40:02.466751: predict best10 end_record 08-19 03:40:00, final soc 1.77kWh, metric 212.49p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.01kWh, PV 0.0kWh
2026-08-18 03:40:02.545144: predict best end_record 08-19 03:40:00, final soc 1.9kWh, metric 203.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.27kWh, PV 0.0kWh
2026-08-18 03:40:02.545230: Saving plan best values to HA entities
2026-08-18 03:40:02.703645: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:40:02.708944: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:40:02.714057: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.72kWh, house 3.07kWh, export 0.0kWh, metric 203.59p, metric10 212.49p
2026-08-18 03:40:02.787562: Marginal costs baseline metric (no standing charge): 156.9524
2026-08-18 03:40:03.048785: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:40:03.120512: Rate array import [{'start': 220, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1660, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 220, 'end': 1660, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:40:03.120931: - Your estimated bill for today is £1.26 and tomorrow is £2.88
2026-08-18 03:40:03.120977: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:40:03.120999: - The battery is currently at 84% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 03:40:03.121018: - For the next 48 hours there will be no solar generation.
2026-08-18 03:40:03.121038: - You will run out of battery in 20 hours.
2026-08-18 03:40:03.121060:
2026-08-18 03:40:03.164477: Plan calculation took 1.06 seconds
2026-08-18 03:40:03.167570: No high rate period found
2026-08-18 03:40:03.210967: Import threshold used for optimisation was 8.0p
2026-08-18 03:40:03.253697: Low import rate windows [0: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 1: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 2: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 3: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 4: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 5: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 6: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 7: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 8: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 9: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 10: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 11: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 12: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 13: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 14: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 15: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 16: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 17: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 18: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 19: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 20: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 21: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 22: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 23: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 24: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0]
2026-08-18 03:40:03.258806: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:00:00
2026-08-18 03:40:03.258925: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:40:03.259135: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:40:03.259246: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:40:03.259431: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:40:03.259742: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:40:03.259945: No export window planned
2026-08-18 03:40:03.260143: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:40:03.260198: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:40:03.260402: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:40:03.260522: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:40:03.260610: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:40:03.260773: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:40:03.260932: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.260978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261071: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261169: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261206: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261237: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261278: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261354: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261389: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261415: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261481: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261509: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261541: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261616: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:03.261664: Inverter 0 count register writes 0
2026-08-18 03:40:03.275483: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 03:40:03.275653: Recompute is saving previous plan...
2026-08-18 03:40:03.276705: Best charge window [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84% ]
2026-08-18 03:40:03.276759: Best export window [ ]
2026-08-18 03:40:03.277570: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:40:03.280757: Load divergence over 8.0 hours mean 393.6W, min 262.2W, max 702.6W, std dev 60.54W, divergence 7.69%
2026-08-18 03:40:03.298820: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:40:03.298940: LoadML is_calculating False
2026-08-18 03:40:03.299013: Creating pool of 12 processes to match your CPU count
2026-08-18 03:40:03.382395: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 03:40:03.383615: Optimise levels pass started at 2026-08-18 03:40:03
2026-08-18 03:40:03.385041: Optimise all windows, total charge 24 export 1
2026-08-18 03:40:03.701320: >> Region optimisation pass width 960 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:03.847610: >> Region optimisation pass width 480 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:04.066225: >> Region optimisation pass width 240 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:04.588905: >> Region optimisation pass width 120 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:04.589300: Calculated end_record as 08-19 04:00:00 based on best_price 8.0p, next_charge_start 08-18 04:00:00, max_windows 13
2026-08-18 03:40:04.589420: Optimise levels pass ended at 2026-08-18 03:40:04, duration 1.2 seconds tried 51 combinations
2026-08-18 03:40:04.589535: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 290.32p, best_keep 0kWh, best_cycle 37.04kWh, best_carbon 0kg, best_import 22.13kWh
2026-08-18 03:40:04.605775: Starting detailed optimisation end_record 08-19 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 03:40:06.625993: Tweak plan optimisation started metric 145.71p, cost 152.51p
2026-08-18 03:40:06.872270: Tweak optimisation finished metric 144.85p, cost 151.66p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.13kWh, changed 8 window(s)
2026-08-18 03:40:06.892542: Swap charge optimisation started metric 144.85p, cost 151.66p, min_improvement_swap 0.1p
2026-08-18 03:40:06.960230: Swap charge optimisation finished metric 144.85p, cost 151.66p
2026-08-18 03:40:07.009577: Pruned 1 dead plan slot(s) in 4 trial(s), nominal metric 143.96p -> 143.96p, plan now metric 145.47p, cost 151.66p, cycle 12.07kWh, import 4.13kWh
2026-08-18 03:40:07.017480: Raw charge windows [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:07.017800: Unclipped charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:07.017997: Unfiltered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:07.018180: Filtered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:07.046715: Previous plan best metric is 148.75 (cost 171.66) and new plan best metric is 144.85 (cost 151.66)
2026-08-18 03:40:07.046898: New plan metric is significantly better from previous plan, using new plan
2026-08-18 03:40:07.046940: Plan valid is now true after recompute was False
2026-08-18 03:40:07.071659: predict base end_record 08-19 04:00:00, final soc 13.44kWh, metric 304.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.44kWh, PV 0.0kWh
2026-08-18 03:40:07.182929: Battery has 20.08 hours left - now at 13.44kWh
2026-08-18 03:40:07.221277: predict base10 end_record 08-19 04:00:00, final soc 13.44kWh, metric 315.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.19kWh, PV 0.0kWh
2026-08-18 03:40:07.303223: predict best10 end_record 08-19 04:00:00, final soc 1.12kWh, metric 208.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.19kWh, PV 0.0kWh
2026-08-18 03:40:07.384756: predict best end_record 08-19 04:00:00, final soc 1.12kWh, metric 198.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.44kWh, PV 0.0kWh
2026-08-18 03:40:07.384835: Saving plan best values to HA entities
2026-08-18 03:40:07.528781: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:40:07.534225: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:40:07.539513: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.78kWh, house 3.35kWh, export 0.0kWh, metric 198.29p, metric10 208.37p
2026-08-18 03:40:07.613245: Marginal costs baseline metric (no standing charge): 151.6586
2026-08-18 03:40:07.892686: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:40:07.964386: Rate array import [{'start': 220, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 220, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:40:07.964810: - Your estimated bill for today is £1.26 and tomorrow is £3.42
2026-08-18 03:40:07.964860: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:40:07.964883: - The battery is currently at 84% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 03:40:07.964902: - For the next 48 hours there will be no solar generation.
2026-08-18 03:40:07.964928: - You will run out of battery in 20 hours.
2026-08-18 03:40:07.964947:
2026-08-18 03:40:08.012893: Plan calculation took 4.74 seconds
2026-08-18 03:40:08.013285: Inverter 0: Type SK Sunsynk
2026-08-18 03:40:08.013331: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:40:08.013602: Reserve min: 7%, battery_min: 7%
2026-08-18 03:40:08.013700: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:40:08.014069: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -541W, load power 542W, PV Power 0W
2026-08-18 03:40:08.014299: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:40:08.014399: Inverter 0 scheduled charge enable is True
2026-08-18 03:40:08.014450: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:40:08.014565: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:40:08.014702: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:40:08.014743: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:40:08.014780: Inverter 0 scheduled discharge enable is False
2026-08-18 03:40:08.014905: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:40:08.014942: Inverter 0 discharge windows currently []
2026-08-18 03:40:08.014965: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:40:08.014985: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:40:08.015002: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:40:08.070579: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 03:40:08.070719: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:40:08.070876: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:40:08.070999: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:40:08.071181: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:40:08.071435: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:40:08.071547: No export window planned
2026-08-18 03:40:08.071662: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:40:08.071728: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:40:08.071978: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:40:08.072082: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:40:08.072138: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:40:08.072269: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:40:08.072438: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072598: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072634: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072665: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072768: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072834: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072909: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.072967: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073029: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073114: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073171: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073357: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073410: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073435: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:08.073459: Inverter 0 count register writes 0
2026-08-18 03:40:08.094033: Total inverter register writes now 865
2026-08-18 03:40:08.127830: Info: Completed run status Hold charging
2026-08-18 03:40:08.133774: Info: record_status Hold charging target 84%-84%
2026-08-18 03:40:08.140927: Saved current settings to /config/predbat_config.json
2026-08-18 03:40:08.141285: Compare, best tariff: current metric 129.87p
2026-08-18 03:40:09.208526: Info: Refresh config entities due to their age of 480.0 minutes
2026-08-18 03:40:09.208654: Refreshing Predbat configuration
2026-08-18 03:40:09.826117: Saved current settings to /config/predbat_config.json
2026-08-18 03:40:09.829543: Validation of apps.yaml was successful
2026-08-18 03:40:09.829733: --------------- PredBat - update at 2026-08-18 03:40:00+01:00 with clock skew 0 minutes, minutes now 220
2026-08-18 03:40:09.830274: Saved current settings to /config/predbat_config.json
2026-08-18 03:40:09.830370: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.2 minutes
2026-08-18 03:40:09.830464: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:40:09.830541: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:40:09.848763: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:40:09.848927: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:40:09.849155: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:40:09.849742: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:40:09.849924: Predbat mode is set to Control charge & discharge
2026-08-18 03:40:10.019136: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:40:10.019266: Using load_power data to fill gaps in load_today data
2026-08-18 03:40:10.787151: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:40:10.787309: Zero load period starting at 2026-08-17T10:54:00+0100 (1006 minutes) for 189 minutes with base value 210.175
2026-08-18 03:40:10.788046: Processing 721 30-minute periods for power integration
2026-08-18 03:40:10.957193: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:40:10.957312: Car charging hold False, threshold 6.0kWh
2026-08-18 03:40:10.957356: Current data so far today: load 1.85kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:40:10.973798: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:40:10.973911: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:40:10.974734: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:40:10.974816: Standing charge is set to 46.63p
2026-08-18 03:40:11.077337: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:40:11.077567: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:40:11.077763: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:40:11.078813: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:40:11.078918: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:40:11.084080: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:40:11.084438: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:40:11.130452: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:40:11.130570: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:40:11.131750: High export rate found rates in range 99p to -99p
2026-08-18 03:40:11.157860: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:40:11.157978: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:40:11.169543: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:40:11.170019: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:40:11.208750: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 118.63p, import 72.0p, export 0.0p, carbon 0.0kg
2026-08-18 03:40:11.208865: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:40:11.283189: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:40:11.311889: Today's load divergence 92.58%, in-day adjustment 92.72%, damping 0.95x, yesterday 92.68% today 92.95% blend 84.72%
2026-08-18 03:40:11.312019: Today's predicted so far 2.94kWh with 0.0kWh car/iBoost excluded, 7.36kWh import ignored, and 2.94kWh forecast extra.
2026-08-18 03:40:11.312054: Today's actual load so far 1.82kWh with 0.0kWh car/iBoost excluded, and 7.36kWh import ignored.
2026-08-18 03:40:11.343439: Inverter 0: Type SK Sunsynk
2026-08-18 03:40:11.343519: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:40:11.343770: Reserve min: 7%, battery_min: 7%
2026-08-18 03:40:11.343879: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:40:11.344227: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -541W, load power 542W, PV Power 0W
2026-08-18 03:40:11.344415: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:40:11.344565: Inverter 0 scheduled charge enable is True
2026-08-18 03:40:11.344632: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:40:11.344811: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:40:11.344981: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:40:11.345041: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:40:11.345111: Inverter 0 scheduled discharge enable is False
2026-08-18 03:40:11.345274: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:40:11.345316: Inverter 0 discharge windows currently []
2026-08-18 03:40:11.345348: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:40:11.345387: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:40:11.345418: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:40:11.400988: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:40:11.401060: Will recompute the plan as it is invalid
2026-08-18 03:40:11.401146: Recompute is saving previous plan...
2026-08-18 03:40:11.402045: Best charge window [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84% ]
2026-08-18 03:40:11.402095: Best export window [ ]
2026-08-18 03:40:11.402938: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:40:11.406080: Load divergence over 8.0 hours mean 393.6W, min 262.2W, max 702.6W, std dev 60.54W, divergence 7.69%
2026-08-18 03:40:11.425015: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:40:11.425138: LoadML is_calculating False
2026-08-18 03:40:11.425216: Creating pool of 12 processes to match your CPU count
2026-08-18 03:40:11.510834: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 03:40:11.511665: Optimise levels pass started at 2026-08-18 03:40:11
2026-08-18 03:40:11.511747: Optimise all windows, total charge 24 export 1
2026-08-18 03:40:11.843130: >> Region optimisation pass width 960 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:11.979501: >> Region optimisation pass width 480 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:12.218986: >> Region optimisation pass width 240 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:12.727057: >> Region optimisation pass width 120 gives best_metric 290.32p, best_cost 295.66p, best_cycle 37.04kWh, best_import 22.13kWh
2026-08-18 03:40:12.727340: Calculated end_record as 08-19 04:00:00 based on best_price 8.0p, next_charge_start 08-18 04:00:00, max_windows 13
2026-08-18 03:40:12.727445: Optimise levels pass ended at 2026-08-18 03:40:12, duration 1.2 seconds tried 51 combinations
2026-08-18 03:40:12.727662: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 290.32p, best_keep 0kWh, best_cycle 37.04kWh, best_carbon 0kg, best_import 22.13kWh
2026-08-18 03:40:12.746041: Starting detailed optimisation end_record 08-19 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 03:40:14.762140: Tweak plan optimisation started metric 145.71p, cost 152.51p
2026-08-18 03:40:14.998275: Tweak optimisation finished metric 144.85p, cost 151.66p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.13kWh, changed 8 window(s)
2026-08-18 03:40:15.016733: Swap charge optimisation started metric 144.85p, cost 151.66p, min_improvement_swap 0.1p
2026-08-18 03:40:15.079355: Swap charge optimisation finished metric 144.85p, cost 151.66p
2026-08-18 03:40:15.130184: Pruned 1 dead plan slot(s) in 4 trial(s), nominal metric 143.96p -> 143.96p, plan now metric 145.47p, cost 151.66p, cycle 12.07kWh, import 4.13kWh
2026-08-18 03:40:15.138182: Raw charge windows [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:15.138498: Unclipped charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:15.138714: Unfiltered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:15.138879: Filtered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:40:15.167175: Previous plan best metric is 144.85 (cost 151.66) and new plan best metric is 144.85 (cost 151.66)
2026-08-18 03:40:15.167369: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 03:40:15.167558: Plan valid is now true after recompute was False
2026-08-18 03:40:15.192894: predict base end_record 08-19 04:00:00, final soc 13.44kWh, metric 304.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.44kWh, PV 0.0kWh
2026-08-18 03:40:15.282395: Battery has 20.08 hours left - now at 13.44kWh
2026-08-18 03:40:15.318021: predict base10 end_record 08-19 04:00:00, final soc 13.44kWh, metric 315.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.19kWh, PV 0.0kWh
2026-08-18 03:40:15.382525: predict best10 end_record 08-19 04:00:00, final soc 1.12kWh, metric 208.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.19kWh, PV 0.0kWh
2026-08-18 03:40:15.450639: predict best end_record 08-19 04:00:00, final soc 1.12kWh, metric 198.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.44kWh, PV 0.0kWh
2026-08-18 03:40:15.450736: Saving plan best values to HA entities
2026-08-18 03:40:15.576494: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:40:15.581711: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:40:15.587136: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.78kWh, house 3.35kWh, export 0.0kWh, metric 198.29p, metric10 208.37p
2026-08-18 03:40:15.653958: Marginal costs baseline metric (no standing charge): 151.6586
2026-08-18 03:40:15.864475: Marginal energy costs matrix computed: min=8.0 max=32.56
2026-08-18 03:40:15.923638: Rate array import [{'start': 220, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 220, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:40:15.924091: - Your estimated bill for today is £1.26 and tomorrow is £3.42
2026-08-18 03:40:15.924140: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:40:15.924163: - The battery is currently at 84% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 03:40:15.924182: - For the next 48 hours there will be no solar generation.
2026-08-18 03:40:15.924201: - You will run out of battery in 20 hours.
2026-08-18 03:40:15.924224:
2026-08-18 03:40:15.966408: Plan calculation took 4.57 seconds
2026-08-18 03:40:15.971453: Saved plan to storage
2026-08-18 03:40:15.973983: No high rate period found
2026-08-18 03:40:16.019308: Import threshold used for optimisation was 8.0p
2026-08-18 03:40:16.063388: Low import rate windows [0: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 1: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 2: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 3: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 4: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 5: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 6: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 7: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 8: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 9: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 10: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 11: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 12: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 13: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 14: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 15: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 16: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 17: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 18: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 19: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 20: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 21: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 22: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 23: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 24: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0]
2026-08-18 03:40:16.068857: Inverter 0: Type SK Sunsynk
2026-08-18 03:40:16.068926: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:40:16.069142: Reserve min: 7%, battery_min: 7%
2026-08-18 03:40:16.069236: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:40:16.069565: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -541W, load power 542W, PV Power 0W
2026-08-18 03:40:16.069796: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:40:16.069892: Inverter 0 scheduled charge enable is True
2026-08-18 03:40:16.069942: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:40:16.070045: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:40:16.070167: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:40:16.070206: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:40:16.070247: Inverter 0 scheduled discharge enable is False
2026-08-18 03:40:16.070367: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:40:16.070404: Inverter 0 discharge windows currently []
2026-08-18 03:40:16.070426: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:40:16.070445: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:40:16.070469: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:40:16.118954: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 03:40:16.119070: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:40:16.119188: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:40:16.119263: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:40:16.119375: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:40:16.119580: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:40:16.119768: No export window planned
2026-08-18 03:40:16.120023: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:40:16.120072: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:40:16.120233: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:40:16.120325: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:40:16.120388: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:40:16.120439: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:40:16.120543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120770: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120821: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120859: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120891: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120918: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120945: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.120978: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121004: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121067: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121124: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121153: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121178: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:40:16.121251: Inverter 0 count register writes 0
2026-08-18 03:40:16.140002: Total inverter register writes now 865
2026-08-18 03:40:16.169413: Info: Completed run status Hold charging
2026-08-18 03:40:16.175029: Info: record_status Hold charging target 84%-84%
2026-08-18 03:40:16.181234: Saved current settings to /config/predbat_config.json
2026-08-18 03:40:16.181540: Compare, best tariff: current metric 129.87p
2026-08-18 03:40:16.242561: Creating predbat dashboard at /config/predbat_dashboard.yaml
2026-08-18 03:40:49.282183: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:40:49.282431: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:40:49.282474: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:40:49.282607: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:40:49.282646: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:40:49.282667: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:40:49.282703: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:42:49.493257: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:42:49.493534: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:42:49.493583: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:42:49.493729: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:42:49.493765: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:42:49.493806: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:42:49.493831: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:45:00.712401: --------------- PredBat - update at 2026-08-18 03:45:00+01:00 with clock skew 0 minutes, minutes now 225
2026-08-18 03:45:00.713260: Saved current settings to /config/predbat_config.json
2026-08-18 03:45:00.713389: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 03:45:00.713477: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:45:00.713573: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:45:00.732561: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:45:00.732694: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:45:00.732923: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:45:00.733530: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:45:00.733632: Predbat mode is set to Control charge & discharge
2026-08-18 03:45:00.886950: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:45:00.887527: Using load_power data to fill gaps in load_today data
2026-08-18 03:45:01.570819: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:45:01.571006: Zero load period starting at 2026-08-17T10:54:00+0100 (1011 minutes) for 189 minutes with base value 210.15
2026-08-18 03:45:01.571745: Processing 721 30-minute periods for power integration
2026-08-18 03:45:01.725258: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:45:01.725360: Car charging hold False, threshold 6.0kWh
2026-08-18 03:45:01.725395: Current data so far today: load 1.9kWh, import 9.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:45:01.737531: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:45:01.737601: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:45:01.738354: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:45:01.738443: Standing charge is set to 46.63p
2026-08-18 03:45:01.832573: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:45:01.832793: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:45:01.832941: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:45:01.833820: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:45:01.833907: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:45:01.838090: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:45:01.838391: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:45:01.875321: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:45:01.875419: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:45:01.876431: High export rate found rates in range 99p to -99p
2026-08-18 03:45:01.897557: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:45:01.897635: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:45:01.907846: Battery level now 13.44kWh, -1hr ago 13.42kWh, at midnight 6.84kWh, battery value change in the last hour 0.11p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:45:01.908164: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:45:01.947886: Today's energy total net 9.0kWh, import 9.0kWh, export 0.0kWh, cost 118.63p, import 72.0p, export 0.0p, carbon 0.0kg
2026-08-18 03:45:01.948010: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:45:02.009850: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:45:02.032923: Today's load divergence 92.73%, in-day adjustment 92.74%, damping 0.95x, yesterday 92.68% today 93.09% blend 84.38%
2026-08-18 03:45:02.032997: Today's predicted so far 2.96kWh with 0.0kWh car/iBoost excluded, 7.38kWh import ignored, and 2.96kWh forecast extra.
2026-08-18 03:45:02.033023: Today's actual load so far 1.86kWh with 0.0kWh car/iBoost excluded, and 7.38kWh import ignored.
2026-08-18 03:45:02.062342: Inverter 0: Type SK Sunsynk
2026-08-18 03:45:02.062416: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:45:02.062619: Reserve min: 7%, battery_min: 7%
2026-08-18 03:45:02.062722: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:45:02.062993: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -10W, current battery voltage 51.2V, grid power -548W, load power 540W, PV Power 0W
2026-08-18 03:45:02.063165: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:45:02.063269: Inverter 0 scheduled charge enable is True
2026-08-18 03:45:02.063336: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:45:02.063457: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:45:02.063607: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:45:02.063649: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:45:02.063717: Inverter 0 scheduled discharge enable is False
2026-08-18 03:45:02.063870: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:45:02.063939: Inverter 0 discharge windows currently []
2026-08-18 03:45:02.063966: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:45:02.063993: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:45:02.064022: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:45:02.114441: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:45:02.114555: Plan was last updated on 2026-08-18 03:40:00+01:00 and is now 5.0 minutes old
2026-08-18 03:45:02.114799: Best charge window [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ]
2026-08-18 03:45:02.114855: Best export window [ ]
2026-08-18 03:45:02.115683: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:45:02.118958: Load divergence over 8.0 hours mean 393.58W, min 274.2W, max 741.0W, std dev 62.23W, divergence 7.91%
2026-08-18 03:45:02.137302: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:45:02.137416: LoadML is_calculating False
2026-08-18 03:45:02.137482: Creating pool of 12 processes to match your CPU count
2026-08-18 03:45:02.254907: predict base end_record 08-19 04:05:00, final soc 13.44kWh, metric 304.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.49kWh, PV 0.0kWh
2026-08-18 03:45:02.376826: Battery has 20.0 hours left - now at 13.44kWh
2026-08-18 03:45:02.418163: predict base10 end_record 08-19 04:05:00, final soc 13.44kWh, metric 315.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.23kWh, PV 0.0kWh
2026-08-18 03:45:02.482720: predict best10 end_record 08-19 04:05:00, final soc 1.44kWh, metric 211.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.23kWh, PV 0.0kWh
2026-08-18 03:45:02.560208: predict best end_record 08-19 04:05:00, final soc 1.51kWh, metric 201.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.49kWh, PV 0.0kWh
2026-08-18 03:45:02.560293: Saving plan best values to HA entities
2026-08-18 03:45:02.711106: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:45:02.716882: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:45:02.722183: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.19kWh, house 3.36kWh, export 0.0kWh, metric 201.61p, metric10 211.22p
2026-08-18 03:45:02.782332: Marginal costs baseline metric (no standing charge): 154.9799
2026-08-18 03:45:02.998480: Marginal energy costs matrix computed: min=8.0 max=32.57
2026-08-18 03:45:03.055416: Rate array import [{'start': 225, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1685, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 225, 'end': 1685, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:45:03.055852: - Your estimated bill for today is £1.26 and tomorrow is £3.42
2026-08-18 03:45:03.055927: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:45:03.055952: - The battery is currently at 84% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 03:45:03.055969: - For the next 48 hours there will be no solar generation.
2026-08-18 03:45:03.055987: - You will run out of battery in 20 hours.
2026-08-18 03:45:03.056001:
2026-08-18 03:45:03.100355: Plan calculation took 0.99 seconds
2026-08-18 03:45:03.103482: No high rate period found
2026-08-18 03:45:03.153123: Import threshold used for optimisation was 8.0p
2026-08-18 03:45:03.202850: Low import rate windows [0: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 1: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 2: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 3: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 4: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 5: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 6: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 7: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 8: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 9: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 10: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 11: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 12: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 13: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 14: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 15: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 16: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 17: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 18: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 19: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 20: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 21: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 22: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 23: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 24: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0]
2026-08-18 03:45:03.209411: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 03:45:03.209537: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:45:03.209732: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:45:03.209821: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:45:03.209969: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:45:03.210201: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:45:03.210335: No export window planned
2026-08-18 03:45:03.210469: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:45:03.210505: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:45:03.210639: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:45:03.210744: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:45:03.210804: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:45:03.210873: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:45:03.210989: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211063: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211206: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211238: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211270: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211325: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211387: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211438: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211486: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211828: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:45:03.211997: Inverter 0 count register writes 0
2026-08-18 03:45:03.228629: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 03:45:03.233762: Total inverter register writes now 865
2026-08-18 03:45:03.264752: Info: Completed run status Hold charging
2026-08-18 03:45:03.270292: Info: record_status Hold charging target 84%-84%
2026-08-18 03:45:03.276385: Saved current settings to /config/predbat_config.json
2026-08-18 03:45:03.276713: Compare, best tariff: current metric 129.87p
2026-08-18 03:45:34.377044: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:45:34.377558: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:45:34.377621: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:45:34.377900: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:45:34.377962: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:45:34.377988: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:45:34.378012: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:47:34.584487: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:47:34.584778: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:47:34.584822: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:47:34.584993: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:47:34.585039: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:47:34.585062: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:47:34.585080: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:47:59.953127: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 03:48:00.992166: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:48:00.992604: Zero load period starting at 2026-08-17T10:54:00+0100 (1011 minutes) for 189 minutes with base value 402.5
2026-08-18 03:48:00.993548: Processing 1345 30-minute periods for power integration
2026-08-18 03:48:01.097745: ML Component: Car charging hold False, car energy reported load False
2026-08-18 03:48:01.199294: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:48:01.299390: ML Temperature data points: 50176
2026-08-18 03:48:01.566796: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 03:48:01.604762: ML Component: Data fetch completed, load data age 59.0 days, 17157 data points
2026-08-18 03:48:01.604874: ML Component: No training needed, model age is 1.05 hours
2026-08-18 03:48:01.604932: ML Component: Generating predictions load data age 59.0 days, 17157 data points
2026-08-18 03:48:01.741055: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0466 max_dow {0: 0.08633055561814043, 1: 0.09144444428367747, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 03:48:02.212267: ML Component: Generated 576 predictions (total 29.84 kWh over 48h)
2026-08-18 03:48:02.257113: ML Component: Prediction cycle completed
2026-08-18 03:48:02.381222: ML Component: Saved 17157 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 03:49:48.807604: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:49:48.807880: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:49:48.807948: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:49:48.808092: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:49:48.808132: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:49:48.808154: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:49:48.808171: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:50:00.893181: --------------- PredBat - update at 2026-08-18 03:50:00+01:00 with clock skew 0 minutes, minutes now 230
2026-08-18 03:50:00.894058: Saved current settings to /config/predbat_config.json
2026-08-18 03:50:00.894253: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 03:50:00.894344: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:50:00.894442: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:50:00.911953: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:50:00.912092: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:50:00.912266: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:50:00.912786: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:50:00.912928: Predbat mode is set to Control charge & discharge
2026-08-18 03:50:01.107405: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:50:01.107525: Using load_power data to fill gaps in load_today data
2026-08-18 03:50:01.933767: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:50:01.933943: Zero load period starting at 2026-08-17T10:54:00+0100 (1016 minutes) for 189 minutes with base value 210.125
2026-08-18 03:50:01.934816: Processing 721 30-minute periods for power integration
2026-08-18 03:50:02.129120: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:50:02.129241: Car charging hold False, threshold 6.0kWh
2026-08-18 03:50:02.129287: Current data so far today: load 1.95kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:50:02.143609: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:50:02.143696: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:50:02.144423: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:50:02.144496: Standing charge is set to 46.63p
2026-08-18 03:50:02.243197: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:50:02.243430: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:50:02.243611: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:50:02.245021: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:50:02.245146: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:50:02.250356: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:50:02.250646: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:50:02.294845: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:50:02.294960: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:50:02.296164: High export rate found rates in range 99p to -99p
2026-08-18 03:50:02.321154: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:50:02.321241: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:50:02.332146: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 03:50:02.332482: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:50:02.375316: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 120.23p, import 73.6p, export 0.0p, carbon 0.0kg
2026-08-18 03:50:02.375426: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:50:02.448991: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:50:02.477146: Today's load divergence 92.91%, in-day adjustment 92.77%, damping 0.95x, yesterday 92.68% today 93.26% blend 84.03%
2026-08-18 03:50:02.477240: Today's predicted so far 2.97kWh with 0.0kWh car/iBoost excluded, 7.4kWh import ignored, and 2.97kWh forecast extra.
2026-08-18 03:50:02.477272: Today's actual load so far 1.9kWh with 0.0kWh car/iBoost excluded, and 7.4kWh import ignored.
2026-08-18 03:50:02.514124: Inverter 0: Type SK Sunsynk
2026-08-18 03:50:02.514205: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:50:02.514383: Reserve min: 7%, battery_min: 7%
2026-08-18 03:50:02.514456: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:50:02.514710: Inverter 0 SoC: 13.42kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -13W, current battery voltage 51.2V, grid power -547W, load power 543W, PV Power 0W
2026-08-18 03:50:02.514877: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:50:02.514983: Inverter 0 scheduled charge enable is True
2026-08-18 03:50:02.515042: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:50:02.515134: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:50:02.515257: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:50:02.515292: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:50:02.515351: Inverter 0 scheduled discharge enable is False
2026-08-18 03:50:02.515473: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:50:02.515510: Inverter 0 discharge windows currently []
2026-08-18 03:50:02.515532: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:50:02.515552: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:50:02.515570: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:50:02.571247: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:50:02.571345: Plan was last updated on 2026-08-18 03:40:00+01:00 and is now 10.0 minutes old
2026-08-18 03:50:02.571522: Best charge window [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ]
2026-08-18 03:50:02.571582: Best export window [ ]
2026-08-18 03:50:02.572474: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:50:02.575791: Load divergence over 8.0 hours mean 393.64W, min 297.6W, max 693.0W, std dev 51.87W, divergence 6.59%
2026-08-18 03:50:02.595384: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:50:02.595483: LoadML is_calculating False
2026-08-18 03:50:02.595543: Creating pool of 12 processes to match your CPU count
2026-08-18 03:50:02.696970: predict base end_record 08-19 04:10:00, final soc 13.44kWh, metric 305.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.54kWh, PV 0.0kWh
2026-08-18 03:50:02.814900: Battery has 19.92 hours left - now at 13.42kWh
2026-08-18 03:50:02.858522: predict base10 end_record 08-19 04:10:00, final soc 13.44kWh, metric 317.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.28kWh, PV 0.0kWh
2026-08-18 03:50:02.933087: predict best10 end_record 08-19 04:10:00, final soc 1.77kWh, metric 215.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.28kWh, PV 0.0kWh
2026-08-18 03:50:03.006435: predict best end_record 08-19 04:10:00, final soc 1.9kWh, metric 206.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.54kWh, PV 0.0kWh
2026-08-18 03:50:03.006521: Saving plan best values to HA entities
2026-08-18 03:50:03.149103: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:50:03.153799: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:50:03.158134: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.63kWh, house 3.35kWh, export 0.0kWh, metric 206.76p, metric10 215.79p
2026-08-18 03:50:03.214606: Marginal costs baseline metric (no standing charge): 160.1306
2026-08-18 03:50:03.444395: Marginal energy costs matrix computed: min=8.0 max=32.57
2026-08-18 03:50:03.505149: Rate array import [{'start': 230, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1690, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 230, 'end': 1690, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:50:03.505687: - Your estimated bill for today is £1.27 and tomorrow is £3.42
2026-08-18 03:50:03.506207: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:50:03.506252: - The battery is currently at 84% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 03:50:03.506282: - For the next 48 hours there will be no solar generation.
2026-08-18 03:50:03.506323: - You will run out of battery in 20 hours.
2026-08-18 03:50:03.506345:
2026-08-18 03:50:03.547824: Plan calculation took 0.98 seconds
2026-08-18 03:50:03.551230: No high rate period found
2026-08-18 03:50:03.593313: Import threshold used for optimisation was 8.0p
2026-08-18 03:50:03.637136: Low import rate windows [0: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 1: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 2: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 3: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 4: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 5: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 6: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 7: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 8: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 9: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 10: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 11: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 12: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 13: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 14: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 15: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 16: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 17: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 18: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 19: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 20: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 21: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 22: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 23: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 24: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0]
2026-08-18 03:50:03.641949: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 03:50:03.642041: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:50:03.642173: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:50:03.642259: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:50:03.642403: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:50:03.642597: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:50:03.642707: No export window planned
2026-08-18 03:50:03.642834: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:50:03.642864: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:50:03.642977: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:50:03.643049: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:50:03.643095: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.02kWh and this battery needs to add 0.02kWh to get to 13.44kWh
2026-08-18 03:50:03.643146: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:50:03.643238: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643294: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643360: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643385: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643442: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643470: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643491: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643515: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643537: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643565: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643590: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643686: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643789: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643810: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:03.643846: Inverter 0 count register writes 0
2026-08-18 03:50:03.657252: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 03:50:03.657377: Recompute is saving previous plan...
2026-08-18 03:50:03.658168: Best charge window [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84% ]
2026-08-18 03:50:03.658212: Best export window [ ]
2026-08-18 03:50:03.658900: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:50:03.661484: Load divergence over 8.0 hours mean 393.64W, min 297.6W, max 693.0W, std dev 51.87W, divergence 6.59%
2026-08-18 03:50:03.676640: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:50:03.676745: LoadML is_calculating False
2026-08-18 03:50:03.676802: Creating pool of 12 processes to match your CPU count
2026-08-18 03:50:03.748661: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 03:50:03.749405: Optimise levels pass started at 2026-08-18 03:50:03
2026-08-18 03:50:03.749451: Optimise all windows, total charge 24 export 1
2026-08-18 03:50:04.060627: >> Region optimisation pass width 960 gives best_metric 292.27p, best_cost 297.62p, best_cycle 37.08kWh, best_import 22.17kWh
2026-08-18 03:50:04.181471: >> Region optimisation pass width 480 gives best_metric 292.27p, best_cost 297.62p, best_cycle 37.08kWh, best_import 22.17kWh
2026-08-18 03:50:04.388621: >> Region optimisation pass width 240 gives best_metric 292.27p, best_cost 297.62p, best_cycle 37.08kWh, best_import 22.17kWh
2026-08-18 03:50:04.872918: >> Region optimisation pass width 120 gives best_metric 292.27p, best_cost 297.62p, best_cycle 37.08kWh, best_import 22.17kWh
2026-08-18 03:50:04.873408: Calculated end_record as 08-19 04:00:00 based on best_price 8.0p, next_charge_start 08-18 04:00:00, max_windows 13
2026-08-18 03:50:04.873507: Optimise levels pass ended at 2026-08-18 03:50:04, duration 1.1 seconds tried 51 combinations
2026-08-18 03:50:04.873598: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 292.27p, best_keep 0kWh, best_cycle 37.08kWh, best_carbon 0kg, best_import 22.17kWh
2026-08-18 03:50:04.890299: Starting detailed optimisation end_record 08-19 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 03:50:06.720255: Tweak plan optimisation started metric 146.87p, cost 153.69p
2026-08-18 03:50:06.943753: Tweak optimisation finished metric 146.02p, cost 152.83p, metric_keep 0kWh, cycle 12.1kWh, carbon 0kg, import 4.07kWh, changed 8 window(s)
2026-08-18 03:50:06.966210: Swap charge optimisation started metric 146.02p, cost 152.83p, min_improvement_swap 0.1p
2026-08-18 03:50:07.034941: Swap charge optimisation finished metric 146.02p, cost 152.83p
2026-08-18 03:50:07.094791: Pruned 1 dead plan slot(s) in 4 trial(s), nominal metric 145.13p -> 145.13p, plan now metric 146.65p, cost 152.83p, cycle 12.1kWh, import 4.07kWh
2026-08-18 03:50:07.104496: Raw charge windows [ 18-08 03:30:00 - 18-08 04:00:00 @ 8.0p 84%, 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:50:07.104869: Unclipped charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:50:07.105043: Unfiltered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:50:07.105187: Filtered charge windows [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 03:50:07.140858: Previous plan best metric is 146.02 (cost 152.83) and new plan best metric is 146.02 (cost 152.83)
2026-08-18 03:50:07.141045: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 03:50:07.141167: Plan valid is now true after recompute was False
2026-08-18 03:50:07.171838: predict base end_record 08-19 04:00:00, final soc 13.44kWh, metric 305.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.46kWh, PV 0.0kWh
2026-08-18 03:50:07.284397: Battery has 19.92 hours left - now at 13.42kWh
2026-08-18 03:50:07.348845: predict base10 end_record 08-19 04:00:00, final soc 13.44kWh, metric 316.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.2kWh, PV 0.0kWh
2026-08-18 03:50:07.420364: predict best10 end_record 08-19 04:00:00, final soc 1.12kWh, metric 209.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.2kWh, PV 0.0kWh
2026-08-18 03:50:07.493940: predict best end_record 08-19 04:00:00, final soc 1.12kWh, metric 199.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.46kWh, PV 0.0kWh
2026-08-18 03:50:07.494017: Saving plan best values to HA entities
2026-08-18 03:50:07.622508: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:50:07.627052: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:50:07.632470: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.72kWh, house 3.35kWh, export 0.0kWh, metric 199.46p, metric10 209.57p
2026-08-18 03:50:07.690803: Marginal costs baseline metric (no standing charge): 152.8304
2026-08-18 03:50:07.895240: Marginal energy costs matrix computed: min=8.0 max=32.57
2026-08-18 03:50:07.951286: Rate array import [{'start': 230, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 230, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:50:07.951609: - Your estimated bill for today is £1.27 and tomorrow is £3.42
2026-08-18 03:50:07.951645: - Import rates are cheap (8.0p) for the next 1 and three quarters hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:50:07.951664: - The battery is currently at 84% and is charging to 84% for the next 1 and a quarter hours.
2026-08-18 03:50:07.951679: - For the next 48 hours there will be no solar generation.
2026-08-18 03:50:07.951693: - You will run out of battery in 20 hours.
2026-08-18 03:50:07.951712:
2026-08-18 03:50:07.991006: Plan calculation took 4.33 seconds
2026-08-18 03:50:07.991326: Inverter 0: Type SK Sunsynk
2026-08-18 03:50:07.991369: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:50:07.991596: Reserve min: 7%, battery_min: 7%
2026-08-18 03:50:07.991671: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:50:07.992124: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -12W, current battery voltage 51.2V, grid power -544W, load power 540W, PV Power 0W
2026-08-18 03:50:07.992363: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:50:07.992463: Inverter 0 scheduled charge enable is True
2026-08-18 03:50:07.992515: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:50:07.992618: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:50:07.992760: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:50:07.992803: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:50:07.992841: Inverter 0 scheduled discharge enable is False
2026-08-18 03:50:07.992995: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:50:07.993039: Inverter 0 discharge windows currently []
2026-08-18 03:50:07.993085: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:50:07.993110: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:50:07.993133: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:50:08.044680: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 03:50:08.044828: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:50:08.044951: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:50:08.045028: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:50:08.045148: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:50:08.045324: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:50:08.045427: No export window planned
2026-08-18 03:50:08.045540: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:50:08.045574: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:50:08.045707: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:50:08.045822: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:50:08.045886: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:50:08.045936: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:50:08.046039: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046168: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046261: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046297: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046324: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046357: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046386: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046414: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046442: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046617: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046642: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046692: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:50:08.046711: Inverter 0 count register writes 0
2026-08-18 03:50:08.066516: Total inverter register writes now 865
2026-08-18 03:50:08.099327: Info: Completed run status Hold charging
2026-08-18 03:50:08.106287: Info: record_status Hold charging target 84%-84%
2026-08-18 03:50:08.112950: Saved current settings to /config/predbat_config.json
2026-08-18 03:50:08.113328: Compare, best tariff: current metric 129.87p
2026-08-18 03:50:49.217424: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:50:49.217774: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:50:49.217827: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:50:49.218006: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:50:49.218051: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:50:49.218074: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:50:49.218092: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:52:49.430079: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:52:49.430344: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:52:49.430387: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:52:49.430566: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:52:49.430605: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:52:49.430627: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:52:49.430645: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:54:49.635896: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:54:49.636215: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:54:49.636250: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:54:49.636425: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:54:49.636456: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:54:49.636485: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:54:49.636504: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:55:00.722124: --------------- PredBat - update at 2026-08-18 03:55:00+01:00 with clock skew 0 minutes, minutes now 235
2026-08-18 03:55:00.723067: Saved current settings to /config/predbat_config.json
2026-08-18 03:55:00.723253: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 03:55:00.723351: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 03:55:00.723466: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 03:55:00.740931: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 03:55:00.741045: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 03:55:00.741207: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 03:55:00.741701: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 03:55:00.741833: Predbat mode is set to Control charge & discharge
2026-08-18 03:55:00.905999: Found 21602 load_today datapoints going back 28 days
2026-08-18 03:55:00.906219: Using load_power data to fill gaps in load_today data
2026-08-18 03:55:01.628126: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 03:55:01.628633: Zero load period starting at 2026-08-17T10:54:00+0100 (1021 minutes) for 189 minutes with base value 210.1
2026-08-18 03:55:01.629555: Processing 721 30-minute periods for power integration
2026-08-18 03:55:01.824650: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 03:55:01.824793: Car charging hold False, threshold 6.0kWh
2026-08-18 03:55:01.824859: Current data so far today: load 2.0kWh, import 9.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 03:55:01.839710: Car 0 using Octopus Intelligent is unplugged
2026-08-18 03:55:01.839852: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 03:55:01.840721: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 03:55:01.840821: Standing charge is set to 46.63p
2026-08-18 03:55:01.941931: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:55:01.942166: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:55:01.942397: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 03:55:01.943477: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 03:55:01.943579: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 03:55:01.948667: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 03:55:01.949097: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 03:55:01.991814: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 03:55:01.991950: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 03:55:01.993129: High export rate found rates in range 99p to -99p
2026-08-18 03:55:02.020070: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 03:55:02.020191: Car 0 on Octopus Intelligent, no active plan
2026-08-18 03:55:02.033158: Battery level now 13.42kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -0.16p, change today 45.2p, rate_forward 6.87p
2026-08-18 03:55:02.033533: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 03:55:02.075197: Today's energy total net 9.2kWh, import 9.2kWh, export 0.0kWh, cost 120.23p, import 73.6p, export 0.0p, carbon 0.0kg
2026-08-18 03:55:02.075318: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 03:55:02.149755: Using weighted-bucket historical load forecast over 14 days
2026-08-18 03:55:02.177311: Today's load divergence 93.2%, in-day adjustment 92.82%, damping 0.95x, yesterday 92.68% today 93.54% blend 83.68%
2026-08-18 03:55:02.177625: Today's predicted so far 2.99kWh with 0.0kWh car/iBoost excluded, 7.41kWh import ignored, and 2.99kWh forecast extra.
2026-08-18 03:55:02.177671: Today's actual load so far 1.95kWh with 0.0kWh car/iBoost excluded, and 7.41kWh import ignored.
2026-08-18 03:55:02.218696: Inverter 0: Type SK Sunsynk
2026-08-18 03:55:02.218792: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 03:55:02.218990: Reserve min: 7%, battery_min: 7%
2026-08-18 03:55:02.219059: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 03:55:02.219327: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -541W, load power 541W, PV Power 0W
2026-08-18 03:55:02.219477: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:55:02.219580: Inverter 0 scheduled charge enable is True
2026-08-18 03:55:02.219629: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 03:55:02.219722: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 03:55:02.219862: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:55:02.219941: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:55:02.220008: Inverter 0 scheduled discharge enable is False
2026-08-18 03:55:02.220140: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:55:02.220176: Inverter 0 discharge windows currently []
2026-08-18 03:55:02.220198: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:55:02.220218: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:55:02.220278: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:55:02.275842: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 03:55:02.276029: Plan was last updated on 2026-08-18 03:50:00+01:00 and is now 5.0 minutes old
2026-08-18 03:55:02.276212: Best charge window [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ]
2026-08-18 03:55:02.276252: Best export window [ ]
2026-08-18 03:55:02.277143: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 03:55:02.280572: Load divergence over 8.0 hours mean 393.71W, min 292.8W, max 660.0W, std dev 54.91W, divergence 6.97%
2026-08-18 03:55:02.300414: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 03:55:02.300520: LoadML is_calculating False
2026-08-18 03:55:02.300579: Creating pool of 12 processes to match your CPU count
2026-08-18 03:55:02.421468: predict base end_record 08-19 04:05:00, final soc 13.44kWh, metric 305.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.52kWh, PV 0.0kWh
2026-08-18 03:55:02.540985: Battery has 19.83 hours left - now at 13.44kWh
2026-08-18 03:55:02.585433: predict base10 end_record 08-19 04:05:00, final soc 13.44kWh, metric 317.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.26kWh, PV 0.0kWh
2026-08-18 03:55:02.659726: predict best10 end_record 08-19 04:05:00, final soc 1.44kWh, metric 212.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.26kWh, PV 0.0kWh
2026-08-18 03:55:02.733975: predict best end_record 08-19 04:05:00, final soc 1.51kWh, metric 202.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.52kWh, PV 0.0kWh
2026-08-18 03:55:02.734551: Saving plan best values to HA entities
2026-08-18 03:55:02.890103: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 03:55:02.895136: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 03:55:02.900535: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.12kWh, house 3.36kWh, export 0.0kWh, metric 202.67p, metric10 212.84p
2026-08-18 03:55:02.965852: Marginal costs baseline metric (no standing charge): 156.0399
2026-08-18 03:55:03.218315: Marginal energy costs matrix computed: min=8.0 max=32.64
2026-08-18 03:55:03.354862: Rate array import [{'start': 235, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1685, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 235, 'end': 1685, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 03:55:03.355654: - Your estimated bill for today is £1.27 and tomorrow is £3.42
2026-08-18 03:55:03.355698: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 03:55:03.355722: - The battery is currently at 84% and is charging to 84% for the next 1 hour.
2026-08-18 03:55:03.355740: - For the next 48 hours there will be no solar generation.
2026-08-18 03:55:03.355785: - You will run out of battery in 19 hours.
2026-08-18 03:55:03.355805:
2026-08-18 03:55:03.396882: Plan calculation took 1.12 seconds
2026-08-18 03:55:03.400083: No high rate period found
2026-08-18 03:55:03.446556: Import threshold used for optimisation was 8.0p
2026-08-18 03:55:03.488320: Low import rate windows [0: 08-18 03:30:00 - 08-18 04:00:00 @ 8.0, 1: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 2: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 3: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 4: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 5: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 6: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 7: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 8: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 9: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 10: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 11: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 12: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 13: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 14: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 15: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 16: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 17: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 18: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 19: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 20: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 21: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 22: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 23: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 24: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0]
2026-08-18 03:55:03.493170: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 03:55:03.493261: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 03:55:03.493423: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 03:55:03.493511: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 03:55:03.493675: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:55:03.493917: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:55:03.494056: No export window planned
2026-08-18 03:55:03.494197: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 03:55:03.494232: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 03:55:03.494413: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 03:55:03.494502: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 03:55:03.494576: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 03:55:03.494658: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 03:55:03.494794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.494837: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.494872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.494894: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.494916: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.494935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.494960: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.494996: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495022: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495049: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495070: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495092: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495114: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495143: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495222: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495243: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495263: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495287: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495325: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 03:55:03.495346: Inverter 0 count register writes 0
2026-08-18 03:55:03.508971: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 03:55:03.514010: Total inverter register writes now 865
2026-08-18 03:55:03.541355: Info: Completed run status Hold charging
2026-08-18 03:55:03.546415: Info: record_status Hold charging target 84%-84%
2026-08-18 03:55:03.551712: Saved current settings to /config/predbat_config.json
2026-08-18 03:55:03.552025: Compare, best tariff: current metric 129.87p
2026-08-18 03:55:33.645027: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:55:33.645312: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:55:33.645368: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:55:33.645563: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:55:33.645605: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:55:33.645628: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:55:33.645646: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:55:41.720155: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 03:55:41.881848: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 03:57:33.867286: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:57:33.867542: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:57:33.867584: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:57:33.867717: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:57:33.867755: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:57:33.867777: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:57:33.867794: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 03:58:17.502876: Info: HAHistory: Pruning history data started.
2026-08-18 03:58:17.505528: Info: HAHistory: Pruning history data completed.
2026-08-18 03:59:34.078397: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 03:59:34.078673: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 03:59:34.078716: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 03:59:34.078849: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 03:59:34.078886: Note: Inverter does not support discharge freeze - disabled
2026-08-18 03:59:34.078907: Note: Inverter does not support charge freeze - disabled
2026-08-18 03:59:34.078924: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:00:00.175593: --------------- PredBat - update at 2026-08-18 04:00:00+01:00 with clock skew 0 minutes, minutes now 240
2026-08-18 04:00:00.176362: Saved current settings to /config/predbat_config.json
2026-08-18 04:00:00.176526: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 04:00:00.176607: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:00:00.176682: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:00:00.201563: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:00:00.201673: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:00:00.201809: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:00:00.202229: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:00:00.202342: Predbat mode is set to Control charge & discharge
2026-08-18 04:00:00.374897: Found 21602 load_today datapoints going back 27 days
2026-08-18 04:00:00.375013: Using load_power data to fill gaps in load_today data
2026-08-18 04:00:01.124677: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:00:01.124833: Zero load period starting at 2026-08-17T10:54:00+0100 (1026 minutes) for 189 minutes with base value 210.075
2026-08-18 04:00:01.125631: Processing 721 30-minute periods for power integration
2026-08-18 04:00:01.296818: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:00:01.296931: Car charging hold False, threshold 6.0kWh
2026-08-18 04:00:01.296977: Current data so far today: load 1.9kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:00:01.311978: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:00:01.312110: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:00:01.313457: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:00:01.313566: Standing charge is set to 46.63p
2026-08-18 04:00:01.415155: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:00:01.415497: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:00:01.415771: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:00:01.417750: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:00:01.417907: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:00:01.422560: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:00:01.422923: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:00:01.463720: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:00:01.463818: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:00:01.464916: High export rate found rates in range 99p to -99p
2026-08-18 04:00:01.486680: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:00:01.486795: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:00:01.497479: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:00:01.497800: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:00:01.549159: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 121.03p, import 74.4p, export 0.0p, carbon 0.0kg
2026-08-18 04:00:01.549312: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:00:01.625864: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:00:01.649488: Today's load divergence 92.03%, in-day adjustment 92.64%, damping 0.95x, yesterday 92.68% today 92.43% blend 83.33%
2026-08-18 04:00:01.649571: Today's predicted so far 3.1kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 3.1kWh forecast extra.
2026-08-18 04:00:01.649597: Today's actual load so far 1.9kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 04:00:01.687862: Inverter 0: Type SK Sunsynk
2026-08-18 04:00:01.687993: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:00:01.688239: Reserve min: 7%, battery_min: 7%
2026-08-18 04:00:01.688378: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:00:01.688739: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -545W, load power 545W, PV Power 0W
2026-08-18 04:00:01.688949: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:00:01.689076: Inverter 0 scheduled charge enable is True
2026-08-18 04:00:01.689151: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:00:01.689300: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:00:01.689488: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:00:01.689540: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:00:01.689608: Inverter 0 scheduled discharge enable is False
2026-08-18 04:00:01.689786: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:00:01.689830: Inverter 0 discharge windows currently []
2026-08-18 04:00:01.689858: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:00:01.689892: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:00:01.689933: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:00:01.755357: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:00:01.755459: Plan was last updated on 2026-08-18 03:50:00+01:00 and is now 10.0 minutes old
2026-08-18 04:00:01.755634: Best charge window [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ]
2026-08-18 04:00:01.755674: Best export window [ ]
2026-08-18 04:00:01.756611: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:00:01.759833: Load divergence over 8.0 hours mean 395.26W, min 281.4W, max 651.6W, std dev 57.58W, divergence 7.28%
2026-08-18 04:00:01.782333: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:00:01.782483: LoadML is_calculating False
2026-08-18 04:00:01.782578: Creating pool of 12 processes to match your CPU count
2026-08-18 04:00:01.922457: predict base end_record 08-19 04:10:00, final soc 13.44kWh, metric 305.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.4kWh, PV 0.0kWh
2026-08-18 04:00:02.119510: Battery has 19.75 hours left - now at 13.44kWh
2026-08-18 04:00:02.177112: predict base10 end_record 08-19 04:10:00, final soc 13.44kWh, metric 317.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.14kWh, PV 0.0kWh
2026-08-18 04:00:02.268510: predict best10 end_record 08-19 04:10:00, final soc 1.77kWh, metric 215.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.14kWh, PV 0.0kWh
2026-08-18 04:00:02.366275: predict best end_record 08-19 04:10:00, final soc 1.9kWh, metric 206.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.4kWh, PV 0.0kWh
2026-08-18 04:00:02.366367: Saving plan best values to HA entities
2026-08-18 04:00:02.590167: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:00:02.598192: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:00:02.606056: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.53kWh, house 3.34kWh, export 0.0kWh, metric 206.65p, metric10 215.6p
2026-08-18 04:00:02.685608: Marginal costs baseline metric (no standing charge): 160.0164
2026-08-18 04:00:02.919023: Marginal energy costs matrix computed: min=8.0 max=32.55
2026-08-18 04:00:02.993739: Rate array import [{'start': 240, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1690, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 240, 'end': 1690, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:00:02.994176: - Your estimated bill for today is £1.27 and tomorrow is £3.42
2026-08-18 04:00:02.994226: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:00:02.994264: - The battery is currently at 84% and is charging to 84% for the next 1 hour.
2026-08-18 04:00:02.994286: - For the next 48 hours there will be no solar generation.
2026-08-18 04:00:02.994304: - You will run out of battery in 19 hours.
2026-08-18 04:00:02.994326:
2026-08-18 04:00:03.051216: Plan calculation took 1.30 seconds
2026-08-18 04:00:03.054513: No high rate period found
2026-08-18 04:00:03.104298: Import threshold used for optimisation was 8.0p
2026-08-18 04:00:03.161022: Low import rate windows [0: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 1: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 2: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 3: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 4: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 5: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 6: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 7: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 8: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 9: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 10: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 11: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 12: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 13: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 14: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 15: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 16: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 17: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 18: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 19: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 20: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 21: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 22: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 23: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0]
2026-08-18 04:00:03.167181: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 04:00:03.167324: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:00:03.167480: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:00:03.167569: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:00:03.167717: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:00:03.168065: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:00:03.168244: No export window planned
2026-08-18 04:00:03.168442: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:00:03.168487: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:00:03.168672: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:00:03.168797: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:00:03.168869: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:00:03.168978: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:00:03.169123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169180: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169238: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169378: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169426: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169501: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169545: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169599: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169641: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169672: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169706: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169758: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169873: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169919: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169947: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.169995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.170029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.170055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:03.170076: Inverter 0 count register writes 0
2026-08-18 04:00:03.193375: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 04:00:03.193532: Recompute is saving previous plan...
2026-08-18 04:00:03.194426: Best charge window [ 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84% ]
2026-08-18 04:00:03.194494: Best export window [ ]
2026-08-18 04:00:03.195333: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:00:03.198484: Load divergence over 8.0 hours mean 395.26W, min 281.4W, max 651.6W, std dev 57.58W, divergence 7.28%
2026-08-18 04:00:03.217782: Calculating data from yesterday for savings calculation
2026-08-18 04:00:03.229862: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1680, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 04:00:03.279453: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 04:00:03.295744: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 04:00:03.317622: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 04:00:03.352785: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 04:00:03.420619: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 04:00:03.420766: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 04:00:03.432053: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:00:03.432172: LoadML is_calculating False
2026-08-18 04:00:03.432242: Creating pool of 12 processes to match your CPU count
2026-08-18 04:00:03.525159: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 04:00:03.525821: Optimise levels pass started at 2026-08-18 04:00:03
2026-08-18 04:00:03.525870: Optimise all windows, total charge 24 export 1
2026-08-18 04:00:03.939692: >> Region optimisation pass width 960 gives best_metric 292.62p, best_cost 298.4p, best_cycle 37.54kWh, best_import 22.17kWh
2026-08-18 04:00:04.096994: >> Region optimisation pass width 480 gives best_metric 292.62p, best_cost 298.4p, best_cycle 37.54kWh, best_import 22.17kWh
2026-08-18 04:00:04.368583: >> Region optimisation pass width 240 gives best_metric 292.62p, best_cost 298.4p, best_cycle 37.54kWh, best_import 22.17kWh
2026-08-18 04:00:04.879594: >> Region optimisation pass width 120 gives best_metric 292.62p, best_cost 298.4p, best_cycle 37.54kWh, best_import 22.17kWh
2026-08-18 04:00:04.879841: Calculated end_record as 08-19 04:00:00 based on best_price 8.0p, next_charge_start 08-18 04:00:00, max_windows 12
2026-08-18 04:00:04.879952: Optimise levels pass ended at 2026-08-18 04:00:04, duration 1.4 seconds tried 51 combinations
2026-08-18 04:00:04.880016: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 292.62p, best_keep 0kWh, best_cycle 37.54kWh, best_carbon 0kg, best_import 22.17kWh
2026-08-18 04:00:04.900150: Starting detailed optimisation end_record 08-19 04:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 04:00:06.949449: Tweak plan optimisation started metric 147.04p, cost 153.86p
2026-08-18 04:00:07.221817: Tweak optimisation finished metric 145.9p, cost 152.72p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 3.96kWh, changed 8 window(s)
2026-08-18 04:00:07.237036: Swap charge optimisation started metric 145.9p, cost 152.72p, min_improvement_swap 0.1p
2026-08-18 04:00:07.280941: Swap charge optimisation finished metric 145.9p, cost 152.72p
2026-08-18 04:00:07.330202: Pruned 1 dead plan slot(s) in 3 trial(s), nominal metric 145.02p -> 145.02p, plan now metric 146.52p, cost 152.72p, cycle 12.07kWh, import 3.96kWh
2026-08-18 04:00:07.338732: Raw charge windows [ 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 100%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:00:07.338983: Unclipped charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:00:07.339169: Unfiltered charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:00:07.339525: Filtered charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:00:07.375343: Previous plan best metric is 145.9 (cost 152.72) and new plan best metric is 145.9 (cost 152.72)
2026-08-18 04:00:07.375541: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 04:00:07.375690: Plan valid is now true after recompute was False
2026-08-18 04:00:07.401842: predict base end_record 08-19 04:00:00, final soc 13.44kWh, metric 305.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.32kWh, PV 0.0kWh
2026-08-18 04:00:07.516590: Battery has 19.75 hours left - now at 13.44kWh
2026-08-18 04:00:07.562244: predict base10 end_record 08-19 04:00:00, final soc 13.44kWh, metric 316.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.06kWh, PV 0.0kWh
2026-08-18 04:00:07.627602: predict best10 end_record 08-19 04:00:00, final soc 1.12kWh, metric 209.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.06kWh, PV 0.0kWh
2026-08-18 04:00:07.696500: predict best end_record 08-19 04:00:00, final soc 1.12kWh, metric 199.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.32kWh, PV 0.0kWh
2026-08-18 04:00:07.696589: Saving plan best values to HA entities
2026-08-18 04:00:07.856997: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:00:07.861806: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:00:07.866286: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.62kWh, house 3.34kWh, export 0.0kWh, metric 199.35p, metric10 209.38p
2026-08-18 04:00:07.928483: Marginal costs baseline metric (no standing charge): 152.7154
2026-08-18 04:00:08.144628: Marginal energy costs matrix computed: min=8.0 max=32.55
2026-08-18 04:00:08.197386: Rate array import [{'start': 240, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1680, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 240, 'end': 1680, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:00:08.197701: - Your estimated bill for today is £1.27 and tomorrow is £3.42
2026-08-18 04:00:08.197735: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:00:08.197754: - The battery is currently at 84% and is charging to 84% for the next 1 hour.
2026-08-18 04:00:08.197769: - For the next 48 hours there will be no solar generation.
2026-08-18 04:00:08.197786: - You will run out of battery in 19 hours.
2026-08-18 04:00:08.197809:
2026-08-18 04:00:08.243567: Plan calculation took 5.05 seconds
2026-08-18 04:00:08.243835: Inverter 0: Type SK Sunsynk
2026-08-18 04:00:08.243872: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:00:08.244104: Reserve min: 7%, battery_min: 7%
2026-08-18 04:00:08.244176: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:00:08.244468: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -545W, load power 545W, PV Power 0W
2026-08-18 04:00:08.244655: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:00:08.244739: Inverter 0 scheduled charge enable is True
2026-08-18 04:00:08.244776: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:00:08.244855: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:00:08.244955: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:00:08.244988: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:00:08.245018: Inverter 0 scheduled discharge enable is False
2026-08-18 04:00:08.245115: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:00:08.245146: Inverter 0 discharge windows currently []
2026-08-18 04:00:08.245165: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:00:08.245180: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:00:08.245194: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:00:08.291771: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 04:00:08.291872: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:00:08.292048: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:00:08.292116: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:00:08.292212: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:00:08.292394: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:00:08.292484: No export window planned
2026-08-18 04:00:08.292577: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:00:08.292606: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:00:08.292717: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:00:08.292804: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:00:08.292879: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:00:08.292927: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:00:08.293018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293052: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293213: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293338: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293391: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293420: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293442: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293471: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293494: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293522: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293574: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293602: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293649: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293709: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:00:08.293742: Inverter 0 count register writes 0
2026-08-18 04:00:08.314231: Total inverter register writes now 865
2026-08-18 04:00:08.346340: Info: Completed run status Hold charging
2026-08-18 04:00:08.352604: Info: record_status Hold charging target 84%-84%
2026-08-18 04:00:08.360387: Saved current settings to /config/predbat_config.json
2026-08-18 04:00:08.360717: Compare, best tariff: current metric 129.87p
2026-08-18 04:00:49.478047: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:00:49.478288: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:00:49.478331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:00:49.478517: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:00:49.478576: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:00:49.478609: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:00:49.478649: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:03:03.717535: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:03:03.717831: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:03:03.717916: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:03:03.718113: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:03:03.718166: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:03:03.718207: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:03:03.718241: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:05:00.935022: --------------- PredBat - update at 2026-08-18 04:05:00+01:00 with clock skew 0 minutes, minutes now 245
2026-08-18 04:05:00.935702: Saved current settings to /config/predbat_config.json
2026-08-18 04:05:00.935821: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 04:05:00.935959: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:05:00.936050: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:05:00.953046: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:05:00.953164: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:05:00.953325: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:05:00.953818: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:05:00.953947: Predbat mode is set to Control charge & discharge
2026-08-18 04:05:01.176586: Found 21602 load_today datapoints going back 27 days
2026-08-18 04:05:01.176902: Using load_power data to fill gaps in load_today data
2026-08-18 04:05:01.945830: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:05:01.946071: Zero load period starting at 2026-08-17T10:54:00+0100 (1031 minutes) for 189 minutes with base value 210.05
2026-08-18 04:05:01.946782: Processing 721 30-minute periods for power integration
2026-08-18 04:05:02.115062: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:05:02.115181: Car charging hold False, threshold 6.0kWh
2026-08-18 04:05:02.115223: Current data so far today: load 1.9kWh, import 9.3kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:05:02.129822: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:05:02.129936: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:05:02.130582: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:05:02.130640: Standing charge is set to 46.63p
2026-08-18 04:05:02.225867: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:05:02.226083: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:05:02.226315: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:05:02.227538: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:05:02.227670: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:05:02.232137: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:05:02.232422: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:05:02.270137: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:05:02.270243: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:05:02.271268: High export rate found rates in range 99p to -99p
2026-08-18 04:05:02.292624: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:05:02.292727: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:05:02.303947: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:05:02.304277: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:05:02.352788: Today's energy total net 9.3kWh, import 9.3kWh, export 0.0kWh, cost 121.03p, import 74.4p, export 0.0p, carbon 0.0kg
2026-08-18 04:05:02.352911: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:05:02.415882: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:05:02.440170: Today's load divergence 91.58%, in-day adjustment 92.56%, damping 0.95x, yesterday 92.68% today 92.0% blend 82.99%
2026-08-18 04:05:02.440252: Today's predicted so far 3.18kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 3.18kWh forecast extra.
2026-08-18 04:05:02.440279: Today's actual load so far 1.92kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 04:05:02.473835: Inverter 0: Type SK Sunsynk
2026-08-18 04:05:02.473918: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:05:02.474063: Reserve min: 7%, battery_min: 7%
2026-08-18 04:05:02.474134: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:05:02.474396: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -514W, load power 514W, PV Power 0W
2026-08-18 04:05:02.474550: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:05:02.474660: Inverter 0 scheduled charge enable is True
2026-08-18 04:05:02.474715: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:05:02.474824: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:05:02.474998: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:05:02.475046: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:05:02.475097: Inverter 0 scheduled discharge enable is False
2026-08-18 04:05:02.475233: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:05:02.475278: Inverter 0 discharge windows currently []
2026-08-18 04:05:02.475315: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:05:02.475335: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:05:02.475352: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:05:02.531340: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:05:02.531425: Plan was last updated on 2026-08-18 04:00:00+01:00 and is now 5.0 minutes old
2026-08-18 04:05:02.531567: Best charge window [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ]
2026-08-18 04:05:02.531598: Best export window [ ]
2026-08-18 04:05:02.532314: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:05:02.534837: Load divergence over 8.0 hours mean 396.77W, min 263.4W, max 664.2W, std dev 63.93W, divergence 8.06%
2026-08-18 04:05:02.550533: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:05:02.550631: LoadML is_calculating False
2026-08-18 04:05:02.550681: Creating pool of 12 processes to match your CPU count
2026-08-18 04:05:02.658810: predict base end_record 08-19 04:05:00, final soc 13.44kWh, metric 305.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.32kWh, PV 0.0kWh
2026-08-18 04:05:02.789936: Battery has 19.75 hours left - now at 13.44kWh
2026-08-18 04:05:02.835548: predict base10 end_record 08-19 04:05:00, final soc 13.44kWh, metric 316.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.06kWh, PV 0.0kWh
2026-08-18 04:05:02.936621: predict best10 end_record 08-19 04:05:00, final soc 1.44kWh, metric 211.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.06kWh, PV 0.0kWh
2026-08-18 04:05:03.016610: predict best end_record 08-19 04:05:00, final soc 1.51kWh, metric 202.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 17.32kWh, PV 0.0kWh
2026-08-18 04:05:03.016680: Saving plan best values to HA entities
2026-08-18 04:05:03.192139: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:05:03.199755: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:05:03.206840: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.04kWh, house 3.34kWh, export 0.0kWh, metric 202.67p, metric10 211.68p
2026-08-18 04:05:03.279198: Marginal costs baseline metric (no standing charge): 156.0359
2026-08-18 04:05:03.542870: Marginal energy costs matrix computed: min=8.0 max=32.51
2026-08-18 04:05:03.603517: Rate array import [{'start': 245, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1685, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 245, 'end': 1685, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:05:03.603860: - Your estimated bill for today is £1.26 and tomorrow is £3.42
2026-08-18 04:05:03.603932: - Import rates are cheap (8.0p) for the next 1 and a half hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:05:03.603956: - The battery is currently at 84% and is charging to 84% for the next 55 minutes.
2026-08-18 04:05:03.603972: - For the next 48 hours there will be no solar generation.
2026-08-18 04:05:03.604023: - You will run out of battery in 19 hours.
2026-08-18 04:05:03.604037:
2026-08-18 04:05:03.650699: Plan calculation took 1.12 seconds
2026-08-18 04:05:03.653857: No high rate period found
2026-08-18 04:05:03.696564: Import threshold used for optimisation was 8.0p
2026-08-18 04:05:03.738457: Low import rate windows [0: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 1: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 2: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 3: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 4: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 5: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 6: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 7: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 8: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 9: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 10: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 11: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 12: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 13: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 14: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 15: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 16: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 17: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 18: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 19: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 20: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 21: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 22: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 23: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 24: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0]
2026-08-18 04:05:03.744480: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 04:05:03.744601: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:05:03.744787: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:05:03.744905: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:05:03.745109: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:05:03.745381: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:05:03.745576: No export window planned
2026-08-18 04:05:03.745744: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:05:03.745786: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:05:03.745990: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:05:03.746103: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:05:03.746196: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:05:03.746299: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:05:03.746459: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746507: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746612: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746671: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746871: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.746976: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747042: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747097: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747165: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747223: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747283: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747584: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:05:03.747746: Inverter 0 count register writes 0
2026-08-18 04:05:03.763534: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 04:05:03.768810: Total inverter register writes now 865
2026-08-18 04:05:03.797801: Info: Completed run status Hold charging
2026-08-18 04:05:03.803327: Info: record_status Hold charging target 84%-84%
2026-08-18 04:05:03.808837: Saved current settings to /config/predbat_config.json
2026-08-18 04:05:03.809118: Compare, best tariff: current metric 129.87p
2026-08-18 04:05:33.904980: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:05:33.905252: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:05:33.905300: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:05:33.905437: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:05:33.905480: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:05:33.905501: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:05:33.905523: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:07:34.111958: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:07:34.112273: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:07:34.112355: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:07:34.112515: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:07:34.112553: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:07:34.112574: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:07:34.112595: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:09:34.322913: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:09:34.323185: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:09:34.323298: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:09:34.323649: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:09:34.323706: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:09:34.323730: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:09:34.323753: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:10:00.429464: --------------- PredBat - update at 2026-08-18 04:10:00+01:00 with clock skew 0 minutes, minutes now 250
2026-08-18 04:10:00.430175: Saved current settings to /config/predbat_config.json
2026-08-18 04:10:00.430316: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 04:10:00.430421: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:10:00.430551: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:10:00.447941: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:10:00.448063: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:10:00.448223: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:10:00.448735: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:10:00.448853: Predbat mode is set to Control charge & discharge
2026-08-18 04:10:00.631019: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:10:00.631154: Using load_power data to fill gaps in load_today data
2026-08-18 04:10:01.428029: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:10:01.428201: Zero load period starting at 2026-08-17T10:54:00+0100 (1036 minutes) for 189 minutes with base value 210.025
2026-08-18 04:10:01.428972: Processing 721 30-minute periods for power integration
2026-08-18 04:10:01.603694: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:10:01.603812: Car charging hold False, threshold 6.0kWh
2026-08-18 04:10:01.603856: Current data so far today: load 2.03kWh, import 9.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:10:01.618728: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:10:01.618878: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:10:01.619831: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:10:01.619951: Standing charge is set to 46.63p
2026-08-18 04:10:01.709877: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:10:01.710141: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:10:01.710488: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:10:01.711683: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:10:01.711832: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:10:01.716513: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:10:01.716873: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:10:01.751835: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:10:01.751955: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:10:01.753064: High export rate found rates in range 99p to -99p
2026-08-18 04:10:01.777820: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:10:01.777934: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:10:01.789937: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:10:01.790269: Last hour: net energy 0.55kWh, import 0.55kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 4.4p, import 4.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:10:01.831834: Today's energy total net 9.4kWh, import 9.4kWh, export 0.0kWh, cost 121.83p, import 75.2p, export 0.0p, carbon 0.0kg
2026-08-18 04:10:01.832000: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:10:01.905657: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:10:01.933845: Today's load divergence 92.23%, in-day adjustment 92.67%, damping 0.95x, yesterday 92.68% today 92.62% blend 82.64%
2026-08-18 04:10:01.933942: Today's predicted so far 3.18kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 3.18kWh forecast extra.
2026-08-18 04:10:01.933982: Today's actual load so far 2.01kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 04:10:01.972742: Inverter 0: Type SK Sunsynk
2026-08-18 04:10:01.972822: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:10:01.972998: Reserve min: 7%, battery_min: 7%
2026-08-18 04:10:01.973072: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:10:01.973353: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -513W, load power 513W, PV Power 0W
2026-08-18 04:10:01.973505: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:10:01.973591: Inverter 0 scheduled charge enable is True
2026-08-18 04:10:01.973639: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:10:01.973735: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:10:01.973854: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:10:01.973890: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:10:01.973926: Inverter 0 scheduled discharge enable is False
2026-08-18 04:10:01.974048: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:10:01.974084: Inverter 0 discharge windows currently []
2026-08-18 04:10:01.974105: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:10:01.974130: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:10:01.974148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:10:02.034790: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:10:02.034891: Plan was last updated on 2026-08-18 04:00:00+01:00 and is now 10.0 minutes old
2026-08-18 04:10:02.035068: Best charge window [ 18-08 03:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:00:00 @ 8.0p 100% ]
2026-08-18 04:10:02.035108: Best export window [ ]
2026-08-18 04:10:02.036062: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:10:02.039367: Load divergence over 8.0 hours mean 396.81W, min 262.2W, max 702.6W, std dev 62.02W, divergence 7.81%
2026-08-18 04:10:02.059781: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:10:02.059889: LoadML is_calculating False
2026-08-18 04:10:02.060050: Creating pool of 12 processes to match your CPU count
2026-08-18 04:10:02.183372: predict base end_record 08-19 04:10:00, final soc 13.44kWh, metric 305.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.46kWh, PV 0.0kWh
2026-08-18 04:10:02.302420: Battery has 19.58 hours left - now at 13.44kWh
2026-08-18 04:10:02.345756: predict base10 end_record 08-19 04:10:00, final soc 13.44kWh, metric 317.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.19kWh, PV 0.0kWh
2026-08-18 04:10:02.411120: predict best10 end_record 08-19 04:10:00, final soc 1.77kWh, metric 215.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.19kWh, PV 0.0kWh
2026-08-18 04:10:02.480421: predict best end_record 08-19 04:10:00, final soc 1.9kWh, metric 206.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.46kWh, PV 0.0kWh
2026-08-18 04:10:02.480498: Saving plan best values to HA entities
2026-08-18 04:10:02.613245: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:10:02.617703: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:10:02.622488: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.46kWh, house 3.34kWh, export 0.0kWh, metric 206.88p, metric10 215.59p
2026-08-18 04:10:02.684156: Marginal costs baseline metric (no standing charge): 160.2412
2026-08-18 04:10:02.895977: Marginal energy costs matrix computed: min=8.0 max=32.54
2026-08-18 04:10:02.948948: Rate array import [{'start': 250, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1690, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 250, 'end': 1690, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:10:02.949344: - Your estimated bill for today is £1.27 and tomorrow is £3.42
2026-08-18 04:10:02.949382: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:10:02.949401: - The battery is currently at 84% and is charging to 84% for the next 50 minutes.
2026-08-18 04:10:02.949424: - For the next 48 hours there will be no solar generation.
2026-08-18 04:10:02.949451: - You will run out of battery in 19 hours.
2026-08-18 04:10:02.949481:
2026-08-18 04:10:02.988356: Plan calculation took 0.95 seconds
2026-08-18 04:10:02.991055: No high rate period found
2026-08-18 04:10:03.033206: Import threshold used for optimisation was 8.0p
2026-08-18 04:10:03.103222: Low import rate windows [0: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 1: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 2: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 3: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 4: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 5: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 6: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 7: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 8: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 9: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 10: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 11: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 12: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 13: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 14: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 15: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 16: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 17: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 18: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 19: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 20: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 21: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 22: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 23: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 24: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0]
2026-08-18 04:10:03.109708: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 03:30:00
2026-08-18 04:10:03.109823: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:10:03.109978: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:10:03.110065: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:10:03.110209: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:10:03.110465: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:10:03.110595: No export window planned
2026-08-18 04:10:03.110720: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:10:03.110755: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:10:03.110889: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:10:03.110976: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:10:03.111035: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:10:03.111096: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:10:03.111207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111248: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111320: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111410: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111449: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111487: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111518: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111543: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111571: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111598: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111632: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111725: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111812: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111890: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:03.111977: Inverter 0 count register writes 0
2026-08-18 04:10:03.128246: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 04:10:03.128419: Recompute is saving previous plan...
2026-08-18 04:10:03.129337: Best charge window [ 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 84% ]
2026-08-18 04:10:03.129386: Best export window [ ]
2026-08-18 04:10:03.130258: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:10:03.133523: Load divergence over 8.0 hours mean 396.81W, min 262.2W, max 702.6W, std dev 62.02W, divergence 7.81%
2026-08-18 04:10:03.149451: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:10:03.149540: LoadML is_calculating False
2026-08-18 04:10:03.149594: Creating pool of 12 processes to match your CPU count
2026-08-18 04:10:03.230146: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 04:10:03.230917: Optimise levels pass started at 2026-08-18 04:10:03
2026-08-18 04:10:03.230972: Optimise all windows, total charge 24 export 1
2026-08-18 04:10:03.556688: >> Region optimisation pass width 960 gives best_metric 293.6p, best_cost 298.95p, best_cycle 37.03kWh, best_import 22.14kWh
2026-08-18 04:10:03.694243: >> Region optimisation pass width 480 gives best_metric 293.6p, best_cost 298.95p, best_cycle 37.03kWh, best_import 22.14kWh
2026-08-18 04:10:03.965282: >> Region optimisation pass width 240 gives best_metric 293.6p, best_cost 298.95p, best_cycle 37.03kWh, best_import 22.14kWh
2026-08-18 04:10:04.501529: >> Region optimisation pass width 120 gives best_metric 293.6p, best_cost 298.95p, best_cycle 37.03kWh, best_import 22.14kWh
2026-08-18 04:10:04.501776: Calculated end_record as 08-19 04:30:00 based on best_price 8.0p, next_charge_start 08-18 04:30:00, max_windows 13
2026-08-18 04:10:04.501899: Optimise levels pass ended at 2026-08-18 04:10:04, duration 1.3 seconds tried 60 combinations
2026-08-18 04:10:04.502029: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 293.6p, best_keep 0kWh, best_cycle 37.03kWh, best_carbon 0kg, best_import 22.14kWh
2026-08-18 04:10:04.521882: Starting detailed optimisation end_record 08-19 04:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 04:10:06.332117: Tweak plan optimisation started metric 149.49p, cost 156.29p
2026-08-18 04:10:06.564852: Tweak optimisation finished metric 148.63p, cost 155.43p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.2kWh, changed 8 window(s)
2026-08-18 04:10:06.583123: Swap charge optimisation started metric 148.63p, cost 155.43p, min_improvement_swap 0.1p
2026-08-18 04:10:06.634255: Swap charge optimisation finished metric 148.63p, cost 155.43p
2026-08-18 04:10:06.686675: Pruned 1 dead plan slot(s) in 3 trial(s), nominal metric 147.74p -> 147.74p, plan now metric 149.22p, cost 155.43p, cycle 12.07kWh, import 4.2kWh
2026-08-18 04:10:06.696834: Raw charge windows [ 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:10:06.697269: Unclipped charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:10:06.697566: Unfiltered charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:10:06.697794: Filtered charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:10:06.732265: Previous plan best metric is 152.53 (cost 175.43) and new plan best metric is 148.63 (cost 155.43)
2026-08-18 04:10:06.732496: New plan metric is significantly better from previous plan, using new plan
2026-08-18 04:10:06.732555: Plan valid is now true after recompute was False
2026-08-18 04:10:06.762645: predict base end_record 08-19 04:30:00, final soc 13.44kWh, metric 307.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.69kWh, PV 0.0kWh
2026-08-18 04:10:06.867616: Battery has 19.58 hours left - now at 13.44kWh
2026-08-18 04:10:06.910604: predict base10 end_record 08-19 04:30:00, final soc 13.44kWh, metric 319.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.43kWh, PV 0.0kWh
2026-08-18 04:10:06.977168: predict best10 end_record 08-19 04:30:00, final soc 1.12kWh, metric 211.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.43kWh, PV 0.0kWh
2026-08-18 04:10:07.055421: predict best end_record 08-19 04:30:00, final soc 1.12kWh, metric 202.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.69kWh, PV 0.0kWh
2026-08-18 04:10:07.055506: Saving plan best values to HA entities
2026-08-18 04:10:07.205090: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:10:07.210388: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:10:07.215571: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.55kWh, house 3.65kWh, export 0.0kWh, metric 202.07p, metric10 211.98p
2026-08-18 04:10:07.284220: Marginal costs baseline metric (no standing charge): 155.4346
2026-08-18 04:10:07.521284: Marginal energy costs matrix computed: min=8.0 max=32.54
2026-08-18 04:10:07.584076: Rate array import [{'start': 250, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1710, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 250, 'end': 1710, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:10:07.584422: - Your estimated bill for today is £1.27 and tomorrow is £3.95
2026-08-18 04:10:07.584460: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:10:07.584478: - The battery is currently at 84% and is charging to 84% for the next 50 minutes.
2026-08-18 04:10:07.584493: - For the next 48 hours there will be no solar generation.
2026-08-18 04:10:07.584508: - You will run out of battery in 19 hours.
2026-08-18 04:10:07.584522:
2026-08-18 04:10:07.625521: Plan calculation took 4.50 seconds
2026-08-18 04:10:07.625872: Inverter 0: Type SK Sunsynk
2026-08-18 04:10:07.625916: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:10:07.626150: Reserve min: 7%, battery_min: 7%
2026-08-18 04:10:07.626234: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:10:07.626594: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -9W, current battery voltage 51.2V, grid power -513W, load power 513W, PV Power 0W
2026-08-18 04:10:07.626836: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:10:07.626948: Inverter 0 scheduled charge enable is True
2026-08-18 04:10:07.627007: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:10:07.627131: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:10:07.627272: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:10:07.627333: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:10:07.627385: Inverter 0 scheduled discharge enable is False
2026-08-18 04:10:07.627553: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:10:07.627594: Inverter 0 discharge windows currently []
2026-08-18 04:10:07.627618: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:10:07.627634: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:10:07.627654: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:10:07.677672: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:10:07.677792: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:10:07.677913: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:10:07.677989: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:10:07.678105: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:10:07.678377: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:10:07.678518: No export window planned
2026-08-18 04:10:07.678640: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:10:07.678675: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:10:07.678819: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:10:07.678908: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:10:07.678971: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:10:07.679022: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:10:07.679126: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679199: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679371: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679410: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679441: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679467: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679494: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679522: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679551: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679615: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679722: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:10:07.679819: Inverter 0 count register writes 0
2026-08-18 04:10:07.699427: Total inverter register writes now 865
2026-08-18 04:10:07.726554: Info: Completed run status Hold charging
2026-08-18 04:10:07.732521: Info: record_status Hold charging target 84%-84%
2026-08-18 04:10:07.737963: Saved current settings to /config/predbat_config.json
2026-08-18 04:10:07.738209: Compare, best tariff: current metric 129.87p
2026-08-18 04:10:48.846444: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:10:48.846783: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:10:48.846835: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:10:48.847008: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:10:48.847051: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:10:48.847080: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:10:48.847120: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:12:49.047238: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:12:49.047513: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:12:49.047558: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:12:49.047691: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:12:49.047728: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:12:49.047749: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:12:49.047767: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:14:49.258055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:14:49.258307: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:14:49.258349: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:14:49.258477: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:14:49.258516: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:14:49.258538: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:14:49.258556: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:15:00.340991: --------------- PredBat - update at 2026-08-18 04:15:00+01:00 with clock skew 0 minutes, minutes now 255
2026-08-18 04:15:00.341701: Saved current settings to /config/predbat_config.json
2026-08-18 04:15:00.341819: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 04:15:00.341895: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:15:00.341968: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:15:00.359362: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:15:00.359481: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:15:00.359689: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:15:00.360223: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:15:00.360344: Predbat mode is set to Control charge & discharge
2026-08-18 04:15:00.542099: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:15:00.542229: Using load_power data to fill gaps in load_today data
2026-08-18 04:15:01.379302: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:15:01.379469: Zero load period starting at 2026-08-17T10:54:00+0100 (1041 minutes) for 189 minutes with base value 210.0
2026-08-18 04:15:01.380426: Processing 721 30-minute periods for power integration
2026-08-18 04:15:01.568860: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:15:01.568983: Car charging hold False, threshold 6.0kWh
2026-08-18 04:15:01.569028: Current data so far today: load 2.05kWh, import 9.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:15:01.584057: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:15:01.584155: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:15:01.584961: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:15:01.585040: Standing charge is set to 46.63p
2026-08-18 04:15:01.687478: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:15:01.687732: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:15:01.687987: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:15:01.689141: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:15:01.689243: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:15:01.694460: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:15:01.694851: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:15:01.738932: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:15:01.739048: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:15:01.740332: High export rate found rates in range 99p to -99p
2026-08-18 04:15:01.768450: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:15:01.768569: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:15:01.779853: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:15:01.780268: Last hour: net energy 0.5kWh, import 0.5kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 4.0p, import 4.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:15:01.822496: Today's energy total net 9.4kWh, import 9.4kWh, export 0.0kWh, cost 121.83p, import 75.2p, export 0.0p, carbon 0.0kg
2026-08-18 04:15:01.822627: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:15:01.897525: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:15:01.926230: Today's load divergence 92.24%, in-day adjustment 92.67%, damping 0.95x, yesterday 92.68% today 92.63% blend 82.29%
2026-08-18 04:15:01.926313: Today's predicted so far 3.19kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 3.19kWh forecast extra.
2026-08-18 04:15:01.926364: Today's actual load so far 2.02kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 04:15:01.961068: Inverter 0: Type SK Sunsynk
2026-08-18 04:15:01.961144: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:15:01.961312: Reserve min: 7%, battery_min: 7%
2026-08-18 04:15:01.961380: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:15:01.961646: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -14W, current battery voltage 51.2V, grid power -524W, load power 516W, PV Power 0W
2026-08-18 04:15:01.961791: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:15:01.961874: Inverter 0 scheduled charge enable is True
2026-08-18 04:15:01.961916: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:15:01.962010: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:15:01.962131: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:15:01.962167: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:15:01.962202: Inverter 0 scheduled discharge enable is False
2026-08-18 04:15:01.962315: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:15:01.962350: Inverter 0 discharge windows currently []
2026-08-18 04:15:01.962373: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:15:01.962395: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:15:01.962413: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:15:02.017071: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:15:02.017171: Plan was last updated on 2026-08-18 04:10:00+01:00 and is now 5.0 minutes old
2026-08-18 04:15:02.017349: Best charge window [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ]
2026-08-18 04:15:02.017390: Best export window [ ]
2026-08-18 04:15:02.018154: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:15:02.021218: Load divergence over 8.0 hours mean 396.76W, min 274.2W, max 741.0W, std dev 63.7W, divergence 8.03%
2026-08-18 04:15:02.040014: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:15:02.040153: LoadML is_calculating False
2026-08-18 04:15:02.040214: Creating pool of 12 processes to match your CPU count
2026-08-18 04:15:02.154056: predict base end_record 08-19 04:35:00, final soc 13.44kWh, metric 307.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.71kWh, PV 0.0kWh
2026-08-18 04:15:02.269539: Battery has 19.5 hours left - now at 13.44kWh
2026-08-18 04:15:02.307709: predict base10 end_record 08-19 04:35:00, final soc 13.44kWh, metric 319.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.46kWh, PV 0.0kWh
2026-08-18 04:15:02.370015: predict best10 end_record 08-19 04:35:00, final soc 1.44kWh, metric 214.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.46kWh, PV 0.0kWh
2026-08-18 04:15:02.434428: predict best end_record 08-19 04:35:00, final soc 1.51kWh, metric 205.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.71kWh, PV 0.0kWh
2026-08-18 04:15:02.434514: Saving plan best values to HA entities
2026-08-18 04:15:02.570478: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:15:02.575227: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:15:02.580004: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.96kWh, house 3.65kWh, export 0.0kWh, metric 205.4p, metric10 214.81p
2026-08-18 04:15:02.652287: Marginal costs baseline metric (no standing charge): 158.7623
2026-08-18 04:15:02.915680: Marginal energy costs matrix computed: min=8.0 max=32.54
2026-08-18 04:15:02.979005: Rate array import [{'start': 255, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1715, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 255, 'end': 1715, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:15:02.979463: - Your estimated bill for today is £1.27 and tomorrow is £3.95
2026-08-18 04:15:02.979519: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:15:02.979562: - The battery is currently at 84% and is charging to 84% for the next 45 minutes.
2026-08-18 04:15:02.979596: - For the next 48 hours there will be no solar generation.
2026-08-18 04:15:02.979670: - You will run out of battery in 19 hours.
2026-08-18 04:15:02.979705:
2026-08-18 04:15:03.023426: Plan calculation took 1.01 seconds
2026-08-18 04:15:03.027168: No high rate period found
2026-08-18 04:15:03.073975: Import threshold used for optimisation was 8.0p
2026-08-18 04:15:03.120213: Low import rate windows [0: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 1: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 2: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 3: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 4: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 5: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 6: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 7: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 8: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 9: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 10: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 11: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 12: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 13: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 14: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 15: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 16: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 17: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 18: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 19: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 20: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 21: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 22: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 23: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 24: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0]
2026-08-18 04:15:03.126818: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:15:03.126938: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:15:03.127093: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:15:03.127172: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:15:03.127338: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:15:03.127579: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:15:03.127735: No export window planned
2026-08-18 04:15:03.127881: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:15:03.127943: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:15:03.128111: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:15:03.128201: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:15:03.128256: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:15:03.128346: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:15:03.128453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128493: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128524: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128556: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128628: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128702: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128739: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128784: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128849: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128900: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128932: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.128961: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129025: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129112: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:15:03.129216: Inverter 0 count register writes 0
2026-08-18 04:15:03.145919: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 04:15:03.150703: Total inverter register writes now 865
2026-08-18 04:15:03.180646: Info: Completed run status Hold charging
2026-08-18 04:15:03.185691: Info: record_status Hold charging target 84%-84%
2026-08-18 04:15:03.191467: Saved current settings to /config/predbat_config.json
2026-08-18 04:15:03.191788: Compare, best tariff: current metric 129.87p
2026-08-18 04:15:34.290110: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:15:34.290469: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:15:34.290536: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:15:34.290756: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:15:34.290813: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:15:34.290854: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:15:34.290890: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:17:34.501869: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:17:34.502355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:17:34.502402: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:17:34.502539: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:17:34.502577: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:17:34.502598: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:17:34.502616: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:18:03.964383: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 04:18:04.850863: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:18:04.851015: Zero load period starting at 2026-08-17T10:54:00+0100 (1041 minutes) for 189 minutes with base value 402.25
2026-08-18 04:18:04.851829: Processing 1345 30-minute periods for power integration
2026-08-18 04:18:04.935240: ML Component: Car charging hold False, car energy reported load False
2026-08-18 04:18:05.018479: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:18:05.108955: ML Temperature data points: 50146
2026-08-18 04:18:05.346186: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 04:18:05.379731: ML Component: Data fetch completed, load data age 59.0 days, 17163 data points
2026-08-18 04:18:05.379962: ML Component: No training needed, model age is 1.55 hours
2026-08-18 04:18:05.380066: ML Component: Generating predictions load data age 59.0 days, 17163 data points
2026-08-18 04:18:05.494323: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0323 max_dow {0: 0.08633055561814043, 1: 0.09144444428367747, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 04:18:05.972393: ML Component: Generated 576 predictions (total 30.12 kWh over 48h)
2026-08-18 04:18:06.004949: ML Component: Prediction cycle completed
2026-08-18 04:18:06.106627: ML Component: Saved 17163 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 04:19:34.595060: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:19:34.595315: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:19:34.595358: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:19:34.595490: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:19:34.595527: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:19:34.595547: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:19:34.595565: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:20:00.696073: --------------- PredBat - update at 2026-08-18 04:20:00+01:00 with clock skew 0 minutes, minutes now 260
2026-08-18 04:20:00.696818: Saved current settings to /config/predbat_config.json
2026-08-18 04:20:00.696977: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 04:20:00.697101: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:20:00.697169: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:20:00.714022: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:20:00.714156: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:20:00.714319: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:20:00.714834: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:20:00.714967: Predbat mode is set to Control charge & discharge
2026-08-18 04:20:00.902549: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:20:00.902794: Using load_power data to fill gaps in load_today data
2026-08-18 04:20:01.646166: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:20:01.646342: Zero load period starting at 2026-08-17T10:54:00+0100 (1046 minutes) for 189 minutes with base value 209.975
2026-08-18 04:20:01.647238: Processing 721 30-minute periods for power integration
2026-08-18 04:20:01.839230: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:20:01.839347: Car charging hold False, threshold 6.0kWh
2026-08-18 04:20:01.839391: Current data so far today: load 2.15kWh, import 9.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:20:01.854083: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:20:01.854194: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:20:01.854984: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:20:01.855081: Standing charge is set to 46.63p
2026-08-18 04:20:01.951641: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:20:01.951894: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:20:01.952139: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:20:01.953209: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:20:01.953314: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:20:01.958573: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:20:01.958882: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:20:02.002454: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:20:02.002574: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:20:02.003791: High export rate found rates in range 99p to -99p
2026-08-18 04:20:02.029603: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:20:02.029711: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:20:02.041339: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:20:02.041689: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:20:02.092313: Today's energy total net 9.4kWh, import 9.4kWh, export 0.0kWh, cost 121.83p, import 75.2p, export 0.0p, carbon 0.0kg
2026-08-18 04:20:02.092453: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:20:02.153432: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:20:02.177576: Today's load divergence 92.58%, in-day adjustment 92.73%, damping 0.95x, yesterday 92.68% today 92.95% blend 81.94%
2026-08-18 04:20:02.177658: Today's predicted so far 3.23kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 3.23kWh forecast extra.
2026-08-18 04:20:02.177684: Today's actual load so far 2.11kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 04:20:02.213486: Inverter 0: Type SK Sunsynk
2026-08-18 04:20:02.213569: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:20:02.213746: Reserve min: 7%, battery_min: 7%
2026-08-18 04:20:02.213818: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:20:02.214086: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -8W, current battery voltage 51.2V, grid power -515W, load power 516W, PV Power 0W
2026-08-18 04:20:02.214232: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:20:02.214315: Inverter 0 scheduled charge enable is True
2026-08-18 04:20:02.214364: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:20:02.214450: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:20:02.214568: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:20:02.214605: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:20:02.214641: Inverter 0 scheduled discharge enable is False
2026-08-18 04:20:02.214761: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:20:02.214797: Inverter 0 discharge windows currently []
2026-08-18 04:20:02.214819: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:20:02.214856: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:20:02.214882: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:20:02.278990: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:20:02.279097: Plan was last updated on 2026-08-18 04:10:00+01:00 and is now 10.0 minutes old
2026-08-18 04:20:02.279279: Best charge window [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ]
2026-08-18 04:20:02.279346: Best export window [ ]
2026-08-18 04:20:02.280133: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:20:02.283237: Load divergence over 8.0 hours mean 396.68W, min 297.6W, max 693.0W, std dev 53.58W, divergence 6.75%
2026-08-18 04:20:02.299953: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:20:02.300042: LoadML is_calculating False
2026-08-18 04:20:02.300093: Creating pool of 12 processes to match your CPU count
2026-08-18 04:20:02.418664: predict base end_record 08-19 04:40:00, final soc 13.44kWh, metric 307.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.81kWh, PV 0.0kWh
2026-08-18 04:20:02.555009: Battery has 19.42 hours left - now at 13.44kWh
2026-08-18 04:20:02.597549: predict base10 end_record 08-19 04:40:00, final soc 13.44kWh, metric 319.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.56kWh, PV 0.0kWh
2026-08-18 04:20:02.671831: predict best10 end_record 08-19 04:40:00, final soc 1.77kWh, metric 217.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.56kWh, PV 0.0kWh
2026-08-18 04:20:02.748261: predict best end_record 08-19 04:40:00, final soc 1.9kWh, metric 208.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.81kWh, PV 0.0kWh
2026-08-18 04:20:02.748347: Saving plan best values to HA entities
2026-08-18 04:20:02.901986: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:20:02.907379: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:20:02.912641: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.37kWh, house 3.66kWh, export 0.0kWh, metric 208.72p, metric10 217.68p
2026-08-18 04:20:02.982627: Marginal costs baseline metric (no standing charge): 162.0876
2026-08-18 04:20:03.228126: Marginal energy costs matrix computed: min=8.0 max=32.55
2026-08-18 04:20:03.297998: Rate array import [{'start': 260, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1720, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 260, 'end': 1720, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:20:03.298320: - Your estimated bill for today is £1.27 and tomorrow is £3.95
2026-08-18 04:20:03.298355: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:20:03.298374: - The battery is currently at 84% and is charging to 84% for the next 40 minutes.
2026-08-18 04:20:03.298389: - For the next 48 hours there will be no solar generation.
2026-08-18 04:20:03.298402: - You will run out of battery in 19 hours.
2026-08-18 04:20:03.298417:
2026-08-18 04:20:03.342268: Plan calculation took 1.06 seconds
2026-08-18 04:20:03.346045: No high rate period found
2026-08-18 04:20:03.394978: Import threshold used for optimisation was 8.0p
2026-08-18 04:20:03.439973: Low import rate windows [0: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 1: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 2: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 3: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 4: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 5: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 6: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 7: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 8: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 9: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 10: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 11: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 12: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 13: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 14: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 15: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 16: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 17: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 18: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 19: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 20: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 21: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 22: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 23: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 24: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0]
2026-08-18 04:20:03.444712: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:20:03.444809: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:20:03.444958: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:20:03.445031: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:20:03.445152: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:20:03.445409: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:20:03.445585: No export window planned
2026-08-18 04:20:03.445753: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:20:03.445799: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:20:03.445952: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:20:03.446052: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:20:03.446104: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:20:03.446156: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:20:03.446250: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446284: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446330: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446349: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446390: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446421: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446447: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446476: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446499: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446525: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446549: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446579: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446655: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446760: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446868: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:03.446903: Inverter 0 count register writes 0
2026-08-18 04:20:03.460930: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 04:20:03.461067: Recompute is saving previous plan...
2026-08-18 04:20:03.461808: Best charge window [ 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 84% ]
2026-08-18 04:20:03.461858: Best export window [ ]
2026-08-18 04:20:03.462537: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:20:03.465142: Load divergence over 8.0 hours mean 396.68W, min 297.6W, max 693.0W, std dev 53.58W, divergence 6.75%
2026-08-18 04:20:03.479587: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:20:03.479673: LoadML is_calculating False
2026-08-18 04:20:03.479725: Creating pool of 12 processes to match your CPU count
2026-08-18 04:20:03.552265: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 04:20:03.552899: Optimise levels pass started at 2026-08-18 04:20:03
2026-08-18 04:20:03.552940: Optimise all windows, total charge 24 export 1
2026-08-18 04:20:03.851551: >> Region optimisation pass width 960 gives best_metric 293.76p, best_cost 299.11p, best_cycle 37.05kWh, best_import 22.16kWh
2026-08-18 04:20:03.973504: >> Region optimisation pass width 480 gives best_metric 293.76p, best_cost 299.11p, best_cycle 37.05kWh, best_import 22.16kWh
2026-08-18 04:20:04.200914: >> Region optimisation pass width 240 gives best_metric 293.76p, best_cost 299.11p, best_cycle 37.05kWh, best_import 22.16kWh
2026-08-18 04:20:04.650437: >> Region optimisation pass width 120 gives best_metric 293.76p, best_cost 299.11p, best_cycle 37.05kWh, best_import 22.16kWh
2026-08-18 04:20:04.650607: Calculated end_record as 08-19 04:30:00 based on best_price 8.0p, next_charge_start 08-18 04:30:00, max_windows 13
2026-08-18 04:20:04.650654: Optimise levels pass ended at 2026-08-18 04:20:04, duration 1.1 seconds tried 60 combinations
2026-08-18 04:20:04.650707: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 293.76p, best_keep 0kWh, best_cycle 37.05kWh, best_carbon 0kg, best_import 22.16kWh
2026-08-18 04:20:04.666189: Starting detailed optimisation end_record 08-19 04:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 04:20:06.512744: Tweak plan optimisation started metric 148.7p, cost 155.5p
2026-08-18 04:20:06.735782: Tweak optimisation finished metric 147.84p, cost 154.65p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.1kWh, changed 8 window(s)
2026-08-18 04:20:06.750714: Swap charge optimisation started metric 147.84p, cost 154.65p, min_improvement_swap 0.1p
2026-08-18 04:20:06.792795: Swap charge optimisation finished metric 147.84p, cost 154.65p
2026-08-18 04:20:06.835278: Pruned 1 dead plan slot(s) in 3 trial(s), nominal metric 146.95p -> 146.95p, plan now metric 148.46p, cost 154.65p, cycle 12.07kWh, import 4.1kWh
2026-08-18 04:20:06.843434: Raw charge windows [ 18-08 04:00:00 - 18-08 04:30:00 @ 8.0p 84%, 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:20:06.843672: Unclipped charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:20:06.843809: Unfiltered charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:20:06.843988: Filtered charge windows [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:20:06.873090: Previous plan best metric is 147.84 (cost 154.65) and new plan best metric is 147.84 (cost 154.65)
2026-08-18 04:20:06.873285: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 04:20:06.873405: Plan valid is now true after recompute was False
2026-08-18 04:20:06.900192: predict base end_record 08-19 04:30:00, final soc 13.44kWh, metric 307.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.72kWh, PV 0.0kWh
2026-08-18 04:20:07.008320: Battery has 19.42 hours left - now at 13.44kWh
2026-08-18 04:20:07.060598: predict base10 end_record 08-19 04:30:00, final soc 13.44kWh, metric 318.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.46kWh, PV 0.0kWh
2026-08-18 04:20:07.131026: predict best10 end_record 08-19 04:30:00, final soc 1.12kWh, metric 211.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.46kWh, PV 0.0kWh
2026-08-18 04:20:07.206939: predict best end_record 08-19 04:30:00, final soc 1.12kWh, metric 201.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.72kWh, PV 0.0kWh
2026-08-18 04:20:07.207033: Saving plan best values to HA entities
2026-08-18 04:20:07.348101: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:20:07.353029: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:20:07.358351: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.44kWh, house 3.66kWh, export 0.0kWh, metric 201.28p, metric10 211.32p
2026-08-18 04:20:07.426749: Marginal costs baseline metric (no standing charge): 154.6482
2026-08-18 04:20:07.686089: Marginal energy costs matrix computed: min=8.0 max=32.55
2026-08-18 04:20:07.746357: Rate array import [{'start': 260, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1710, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 260, 'end': 1710, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:20:07.746691: - Your estimated bill for today is £1.27 and tomorrow is £3.95
2026-08-18 04:20:07.746726: - Import rates are cheap (8.0p) for the next 1 and a quarter hours and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:20:07.746745: - The battery is currently at 84% and is charging to 84% for the next 40 minutes.
2026-08-18 04:20:07.746760: - For the next 48 hours there will be no solar generation.
2026-08-18 04:20:07.746773: - You will run out of battery in 19 hours.
2026-08-18 04:20:07.746792:
2026-08-18 04:20:07.790632: Plan calculation took 4.33 seconds
2026-08-18 04:20:07.790963: Inverter 0: Type SK Sunsynk
2026-08-18 04:20:07.791009: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:20:07.791235: Reserve min: 7%, battery_min: 7%
2026-08-18 04:20:07.791313: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:20:07.791630: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -517W, load power 517W, PV Power 0W
2026-08-18 04:20:07.791860: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:20:07.792005: Inverter 0 scheduled charge enable is True
2026-08-18 04:20:07.792067: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:20:07.792168: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:20:07.792295: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:20:07.792334: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:20:07.792371: Inverter 0 scheduled discharge enable is False
2026-08-18 04:20:07.792504: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:20:07.792540: Inverter 0 discharge windows currently []
2026-08-18 04:20:07.792563: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:20:07.792585: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:20:07.792602: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:20:07.839777: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:20:07.839899: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:20:07.840047: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:20:07.840111: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:20:07.840206: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:20:07.840354: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:20:07.840440: No export window planned
2026-08-18 04:20:07.840554: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:20:07.840584: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:20:07.840694: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:20:07.840775: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:20:07.840826: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:20:07.840882: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:20:07.840971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841004: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841069: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841115: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841193: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841225: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841266: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841288: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841318: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841341: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841364: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841414: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841437: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841457: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:20:07.841567: Inverter 0 count register writes 0
2026-08-18 04:20:07.861352: Total inverter register writes now 865
2026-08-18 04:20:07.892423: Info: Completed run status Hold charging
2026-08-18 04:20:07.898227: Info: record_status Hold charging target 84%-84%
2026-08-18 04:20:07.904834: Saved current settings to /config/predbat_config.json
2026-08-18 04:20:07.905171: Compare, best tariff: current metric 129.87p
2026-08-18 04:20:49.022060: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:20:49.022364: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:20:49.022411: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:20:49.022543: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:20:49.022580: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:20:49.022601: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:20:49.022619: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:22:49.229322: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:22:49.229643: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:22:49.229709: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:22:49.229909: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:22:49.230003: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:22:49.230035: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:22:49.230074: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:24:49.448584: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:24:49.448806: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:24:49.448835: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:24:49.448939: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:24:49.448964: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:24:49.448980: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:24:49.448994: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:25:00.527784: --------------- PredBat - update at 2026-08-18 04:25:00+01:00 with clock skew 0 minutes, minutes now 265
2026-08-18 04:25:00.528647: Saved current settings to /config/predbat_config.json
2026-08-18 04:25:00.528769: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 04:25:00.528846: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:25:00.529083: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:25:00.547570: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:25:00.547687: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:25:00.547843: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:25:00.548499: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:25:00.548624: Predbat mode is set to Control charge & discharge
2026-08-18 04:25:00.734203: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:25:00.734337: Using load_power data to fill gaps in load_today data
2026-08-18 04:25:01.532625: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:25:01.532798: Zero load period starting at 2026-08-17T10:54:00+0100 (1051 minutes) for 189 minutes with base value 209.95
2026-08-18 04:25:01.533549: Processing 721 30-minute periods for power integration
2026-08-18 04:25:01.690181: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:25:01.690311: Car charging hold False, threshold 6.0kWh
2026-08-18 04:25:01.690350: Current data so far today: load 2.2kWh, import 9.4kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:25:01.703396: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:25:01.703474: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:25:01.704261: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:25:01.704325: Standing charge is set to 46.63p
2026-08-18 04:25:01.798314: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:25:01.798585: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:25:01.798808: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:25:01.799734: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:25:01.799867: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:25:01.804680: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:25:01.805424: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:25:01.840988: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:25:01.841121: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:25:01.842190: High export rate found rates in range 99p to -99p
2026-08-18 04:25:01.864096: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:25:01.864207: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:25:01.874722: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:25:01.875121: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:25:01.914562: Today's energy total net 9.4kWh, import 9.4kWh, export 0.0kWh, cost 121.83p, import 75.2p, export 0.0p, carbon 0.0kg
2026-08-18 04:25:01.914667: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:25:01.977234: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:25:02.000144: Today's load divergence 92.82%, in-day adjustment 92.77%, damping 0.95x, yesterday 92.68% today 93.17% blend 81.6%
2026-08-18 04:25:02.000217: Today's predicted so far 3.25kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 3.25kWh forecast extra.
2026-08-18 04:25:02.000243: Today's actual load so far 2.16kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 04:25:02.039698: Inverter 0: Type SK Sunsynk
2026-08-18 04:25:02.039768: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:25:02.039945: Reserve min: 7%, battery_min: 7%
2026-08-18 04:25:02.040072: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:25:02.040347: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -516W, load power 516W, PV Power 0W
2026-08-18 04:25:02.040505: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:25:02.040614: Inverter 0 scheduled charge enable is True
2026-08-18 04:25:02.040656: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:25:02.040729: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:25:02.040853: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:25:02.040882: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:25:02.040912: Inverter 0 scheduled discharge enable is False
2026-08-18 04:25:02.041003: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:25:02.041043: Inverter 0 discharge windows currently []
2026-08-18 04:25:02.041064: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:25:02.041083: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:25:02.041097: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:25:02.089224: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:25:02.089344: Plan was last updated on 2026-08-18 04:20:00+01:00 and is now 5.0 minutes old
2026-08-18 04:25:02.089572: Best charge window [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ]
2026-08-18 04:25:02.089631: Best export window [ ]
2026-08-18 04:25:02.090458: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:25:02.092957: Load divergence over 8.0 hours mean 396.73W, min 292.8W, max 660.0W, std dev 56.56W, divergence 7.13%
2026-08-18 04:25:02.109258: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:25:02.109357: LoadML is_calculating False
2026-08-18 04:25:02.109408: Creating pool of 12 processes to match your CPU count
2026-08-18 04:25:02.209473: predict base end_record 08-19 04:35:00, final soc 13.44kWh, metric 307.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.76kWh, PV 0.0kWh
2026-08-18 04:25:02.327476: Battery has 19.33 hours left - now at 13.44kWh
2026-08-18 04:25:02.371857: predict base10 end_record 08-19 04:35:00, final soc 13.44kWh, metric 319.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.5kWh, PV 0.0kWh
2026-08-18 04:25:02.449429: predict best10 end_record 08-19 04:35:00, final soc 1.44kWh, metric 214.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.5kWh, PV 0.0kWh
2026-08-18 04:25:02.521511: predict best end_record 08-19 04:35:00, final soc 1.51kWh, metric 204.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.76kWh, PV 0.0kWh
2026-08-18 04:25:02.521583: Saving plan best values to HA entities
2026-08-18 04:25:02.681916: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:25:02.686528: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:25:02.691123: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.87kWh, house 3.65kWh, export 0.0kWh, metric 204.61p, metric10 214.61p
2026-08-18 04:25:02.750785: Marginal costs baseline metric (no standing charge): 157.9743
2026-08-18 04:25:02.964578: Marginal energy costs matrix computed: min=9.67 max=32.62
2026-08-18 04:25:03.018730: Rate array import [{'start': 265, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1715, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 265, 'end': 1715, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:25:03.019161: - Your estimated bill for today is £1.27 and tomorrow is £3.95
2026-08-18 04:25:03.019208: - Import rates are cheap (8.0p) for the next 1 hour and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:25:03.019242: - The battery is currently at 84% and is charging to 84% for the next 35 minutes.
2026-08-18 04:25:03.019270: - For the next 48 hours there will be no solar generation.
2026-08-18 04:25:03.019306: - You will run out of battery in 19 hours.
2026-08-18 04:25:03.019327:
2026-08-18 04:25:03.060247: Plan calculation took 0.97 seconds
2026-08-18 04:25:03.063451: No high rate period found
2026-08-18 04:25:03.108179: Import threshold used for optimisation was 8.0p
2026-08-18 04:25:03.148741: Low import rate windows [0: 08-18 04:00:00 - 08-18 04:30:00 @ 8.0, 1: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 2: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 3: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 4: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 5: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 6: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 7: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 8: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 9: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 10: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 11: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 12: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 13: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 14: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 15: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 16: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 17: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 18: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 19: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 20: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 21: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 22: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 23: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 24: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0]
2026-08-18 04:25:03.153201: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:25:03.153288: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:25:03.153424: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:25:03.153488: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:25:03.153605: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:25:03.153798: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:25:03.153905: No export window planned
2026-08-18 04:25:03.154006: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:25:03.154047: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:25:03.154162: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:25:03.154264: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:25:03.154313: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:25:03.154367: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:25:03.154454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154511: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154532: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154560: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154681: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154707: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154731: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154753: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154775: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154800: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154822: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154891: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154911: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154939: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.154979: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.155003: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:25:03.155020: Inverter 0 count register writes 0
2026-08-18 04:25:03.168000: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 04:25:03.172458: Total inverter register writes now 865
2026-08-18 04:25:03.198668: Info: Completed run status Hold charging
2026-08-18 04:25:03.203434: Info: record_status Hold charging target 84%-84%
2026-08-18 04:25:03.209295: Saved current settings to /config/predbat_config.json
2026-08-18 04:25:03.209632: Compare, best tariff: current metric 129.87p
2026-08-18 04:25:34.302111: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:25:34.302427: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:25:34.302480: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:25:34.302645: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:25:34.302688: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:25:34.302731: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:25:34.302775: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:27:34.513292: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:27:34.513538: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:27:34.513637: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:27:34.513791: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:27:34.513855: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:27:34.513876: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:27:34.513897: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:29:48.736394: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:29:48.736705: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:29:48.736749: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:29:48.736878: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:29:48.736923: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:29:48.736961: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:29:48.736980: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:30:00.827089: --------------- PredBat - update at 2026-08-18 04:30:00+01:00 with clock skew 0 minutes, minutes now 270
2026-08-18 04:30:00.827715: Saved current settings to /config/predbat_config.json
2026-08-18 04:30:00.827831: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 04:30:00.827938: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:30:00.828091: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:30:00.853003: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:30:00.853176: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:30:00.853447: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:30:00.854256: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:30:00.854455: Predbat mode is set to Control charge & discharge
2026-08-18 04:30:01.088058: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:30:01.088194: Using load_power data to fill gaps in load_today data
2026-08-18 04:30:01.856374: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:30:01.856609: Zero load period starting at 2026-08-17T10:54:00+0100 (1056 minutes) for 189 minutes with base value 209.925
2026-08-18 04:30:01.857417: Processing 721 30-minute periods for power integration
2026-08-18 04:30:02.023161: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:30:02.023569: Car charging hold False, threshold 6.0kWh
2026-08-18 04:30:02.023623: Current data so far today: load 2.25kWh, import 9.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:30:02.040722: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:30:02.040819: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:30:02.041646: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:30:02.041728: Standing charge is set to 46.63p
2026-08-18 04:30:02.139051: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:30:02.139273: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:30:02.139460: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:30:02.140399: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:30:02.140497: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:30:02.145075: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:30:02.145366: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:30:02.181107: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:30:02.181202: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:30:02.182304: High export rate found rates in range 99p to -99p
2026-08-18 04:30:02.203767: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:30:02.203867: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:30:02.215259: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:30:02.215549: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:30:02.258383: Today's energy total net 9.5kWh, import 9.5kWh, export 0.0kWh, cost 122.63p, import 76.0p, export 0.0p, carbon 0.0kg
2026-08-18 04:30:02.258484: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:30:02.320473: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:30:02.343283: Today's load divergence 92.33%, in-day adjustment 92.69%, damping 0.95x, yesterday 92.68% today 92.71% blend 81.25%
2026-08-18 04:30:02.343362: Today's predicted so far 3.39kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 3.39kWh forecast extra.
2026-08-18 04:30:02.343388: Today's actual load so far 2.23kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 04:30:02.378918: Inverter 0: Type SK Sunsynk
2026-08-18 04:30:02.378998: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:30:02.379156: Reserve min: 7%, battery_min: 7%
2026-08-18 04:30:02.379227: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:30:02.379470: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -513W, load power 512W, PV Power 0W
2026-08-18 04:30:02.379598: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:30:02.379669: Inverter 0 scheduled charge enable is True
2026-08-18 04:30:02.379705: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:30:02.379774: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:30:02.379882: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:30:02.379950: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:30:02.380005: Inverter 0 scheduled discharge enable is False
2026-08-18 04:30:02.380163: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:30:02.380198: Inverter 0 discharge windows currently []
2026-08-18 04:30:02.380235: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:30:02.380252: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:30:02.380266: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:30:02.430555: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:30:02.430654: Plan was last updated on 2026-08-18 04:20:00+01:00 and is now 10.0 minutes old
2026-08-18 04:30:02.430827: Best charge window [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ]
2026-08-18 04:30:02.430867: Best export window [ ]
2026-08-18 04:30:02.431621: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:30:02.434186: Load divergence over 8.0 hours mean 395.36W, min 281.4W, max 651.6W, std dev 57.69W, divergence 7.3%
2026-08-18 04:30:02.449428: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:30:02.449504: LoadML is_calculating False
2026-08-18 04:30:02.449553: Creating pool of 12 processes to match your CPU count
2026-08-18 04:30:02.560986: predict base end_record 08-19 04:40:00, final soc 13.44kWh, metric 307.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.8kWh, PV 0.0kWh
2026-08-18 04:30:02.689633: Battery has 19.25 hours left - now at 13.44kWh
2026-08-18 04:30:02.731322: predict base10 end_record 08-19 04:40:00, final soc 13.44kWh, metric 319.33p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.54kWh, PV 0.0kWh
2026-08-18 04:30:02.807849: predict best10 end_record 08-19 04:40:00, final soc 1.77kWh, metric 217.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.54kWh, PV 0.0kWh
2026-08-18 04:30:02.911737: predict best end_record 08-19 04:40:00, final soc 1.9kWh, metric 208.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.8kWh, PV 0.0kWh
2026-08-18 04:30:02.911835: Saving plan best values to HA entities
2026-08-18 04:30:03.075697: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:30:03.081772: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:30:03.087565: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.26kWh, house 3.66kWh, export 0.0kWh, metric 208.61p, metric10 217.68p
2026-08-18 04:30:03.159683: Marginal costs baseline metric (no standing charge): 161.9796
2026-08-18 04:30:03.424761: Marginal energy costs matrix computed: min=11.44 max=32.57
2026-08-18 04:30:03.491219: Rate array import [{'start': 270, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1720, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 270, 'end': 1720, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:30:03.491631: - Your estimated bill for today is £1.26 and tomorrow is £3.95
2026-08-18 04:30:03.491676: - Import rates are cheap (8.0p) for the next 1 hour and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:30:03.491699: - The battery is currently at 84% and is charging to 84% for the next 30 minutes.
2026-08-18 04:30:03.491717: - For the next 48 hours there will be no solar generation.
2026-08-18 04:30:03.491735: - You will run out of battery in 19 hours.
2026-08-18 04:30:03.491753:
2026-08-18 04:30:03.544584: Plan calculation took 1.11 seconds
2026-08-18 04:30:03.547788: No high rate period found
2026-08-18 04:30:03.596658: Import threshold used for optimisation was 8.0p
2026-08-18 04:30:03.650712: Low import rate windows [0: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 1: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 2: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 3: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 4: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 5: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 6: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 7: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 8: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 9: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 10: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 11: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 12: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 13: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 14: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 15: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 16: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 17: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 18: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 19: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 20: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 21: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 22: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 23: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0]
2026-08-18 04:30:03.656195: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:30:03.656329: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:30:03.656540: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:30:03.656643: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:30:03.656839: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:30:03.657109: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:30:03.657289: No export window planned
2026-08-18 04:30:03.657457: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:30:03.657499: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:30:03.657667: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:30:03.657785: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:30:03.657880: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:30:03.657988: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:30:03.658171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658237: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658473: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658600: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658657: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658702: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658758: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658818: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658868: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.658942: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659110: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659167: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659234: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659311: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:03.659357: Inverter 0 count register writes 0
2026-08-18 04:30:03.673470: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 04:30:03.673605: Recompute is saving previous plan...
2026-08-18 04:30:03.674341: Best charge window [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 84% ]
2026-08-18 04:30:03.674380: Best export window [ ]
2026-08-18 04:30:03.675185: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:30:03.677801: Load divergence over 8.0 hours mean 395.36W, min 281.4W, max 651.6W, std dev 57.69W, divergence 7.3%
2026-08-18 04:30:03.692429: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:30:03.692523: LoadML is_calculating False
2026-08-18 04:30:03.692575: Creating pool of 12 processes to match your CPU count
2026-08-18 04:30:03.779861: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 04:30:03.781624: Optimise levels pass started at 2026-08-18 04:30:03
2026-08-18 04:30:03.781708: Optimise all windows, total charge 24 export 1
2026-08-18 04:30:04.108877: >> Region optimisation pass width 960 gives best_metric 294.45p, best_cost 300.23p, best_cycle 37.55kWh, best_import 22.2kWh
2026-08-18 04:30:04.242342: >> Region optimisation pass width 480 gives best_metric 294.45p, best_cost 300.23p, best_cycle 37.55kWh, best_import 22.2kWh
2026-08-18 04:30:04.516514: >> Region optimisation pass width 240 gives best_metric 294.45p, best_cost 300.23p, best_cycle 37.55kWh, best_import 22.2kWh
2026-08-18 04:30:05.022574: >> Region optimisation pass width 120 gives best_metric 294.45p, best_cost 300.23p, best_cycle 37.55kWh, best_import 22.2kWh
2026-08-18 04:30:05.022806: Calculated end_record as 08-19 04:30:00 based on best_price 8.0p, next_charge_start 08-18 04:30:00, max_windows 12
2026-08-18 04:30:05.022891: Optimise levels pass ended at 2026-08-18 04:30:05, duration 1.2 seconds tried 59 combinations
2026-08-18 04:30:05.022973: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 294.45p, best_keep 0kWh, best_cycle 37.55kWh, best_carbon 0kg, best_import 22.2kWh
2026-08-18 04:30:05.037920: Starting detailed optimisation end_record 08-19 04:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 04:30:06.956539: Tweak plan optimisation started metric 147.73p, cost 154.55p
2026-08-18 04:30:07.205728: Tweak optimisation finished metric 147.73p, cost 154.55p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 3.99kWh, changed 8 window(s)
2026-08-18 04:30:07.226115: Swap charge optimisation started metric 147.73p, cost 154.55p, min_improvement_swap 0.1p
2026-08-18 04:30:07.261425: Swap charge optimisation finished metric 147.73p, cost 154.55p
2026-08-18 04:30:07.299066: Pruned 1 dead plan slot(s) in 2 trial(s), nominal metric 146.85p -> 146.85p, plan now metric 148.37p, cost 154.55p, cycle 12.07kWh, import 3.99kWh
2026-08-18 04:30:07.307449: Raw charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 100%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:30:07.307831: Unclipped charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:30:07.308058: Unfiltered charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:30:07.308182: Filtered charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:30:07.344500: Previous plan best metric is 147.73 (cost 154.55) and new plan best metric is 147.73 (cost 154.55)
2026-08-18 04:30:07.344703: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 04:30:07.344827: Plan valid is now true after recompute was False
2026-08-18 04:30:07.376259: predict base end_record 08-19 04:30:00, final soc 13.44kWh, metric 306.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.7kWh, PV 0.0kWh
2026-08-18 04:30:07.476312: Battery has 19.25 hours left - now at 13.44kWh
2026-08-18 04:30:07.515121: predict base10 end_record 08-19 04:30:00, final soc 13.44kWh, metric 318.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.44kWh, PV 0.0kWh
2026-08-18 04:30:07.595036: predict best10 end_record 08-19 04:30:00, final soc 1.12kWh, metric 211.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.44kWh, PV 0.0kWh
2026-08-18 04:30:07.673780: predict best end_record 08-19 04:30:00, final soc 1.12kWh, metric 201.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.7kWh, PV 0.0kWh
2026-08-18 04:30:07.673861: Saving plan best values to HA entities
2026-08-18 04:30:07.821855: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:30:07.827176: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:30:07.833926: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.33kWh, house 3.66kWh, export 0.0kWh, metric 201.18p, metric10 211.32p
2026-08-18 04:30:07.908978: Marginal costs baseline metric (no standing charge): 154.5482
2026-08-18 04:30:08.138718: Marginal energy costs matrix computed: min=11.44 max=32.57
2026-08-18 04:30:08.197452: Rate array import [{'start': 270, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1710, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 270, 'end': 1710, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:30:08.197768: - Your estimated bill for today is £1.26 and tomorrow is £3.95
2026-08-18 04:30:08.197808: - Import rates are cheap (8.0p) for the next 1 hour and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:30:08.197827: - The battery is currently at 84% and is charging to 84% for the next 30 minutes.
2026-08-18 04:30:08.197843: - For the next 48 hours there will be no solar generation.
2026-08-18 04:30:08.197858: - You will run out of battery in 19 hours.
2026-08-18 04:30:08.197876:
2026-08-18 04:30:08.244258: Plan calculation took 4.57 seconds
2026-08-18 04:30:08.244529: Inverter 0: Type SK Sunsynk
2026-08-18 04:30:08.244572: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:30:08.244775: Reserve min: 7%, battery_min: 7%
2026-08-18 04:30:08.244840: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:30:08.245143: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -516W, load power 516W, PV Power 0W
2026-08-18 04:30:08.245352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:30:08.245441: Inverter 0 scheduled charge enable is True
2026-08-18 04:30:08.245480: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:30:08.245562: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:30:08.245671: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:30:08.245702: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:30:08.245733: Inverter 0 scheduled discharge enable is False
2026-08-18 04:30:08.245864: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:30:08.245908: Inverter 0 discharge windows currently []
2026-08-18 04:30:08.245938: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:30:08.245968: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:30:08.245991: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:30:08.298868: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:30:08.298988: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:30:08.299111: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:30:08.299194: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:30:08.299329: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:30:08.299511: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:30:08.299615: No export window planned
2026-08-18 04:30:08.299727: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:30:08.299762: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:30:08.299892: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:30:08.300044: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:30:08.300107: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:30:08.300162: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:30:08.300299: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300372: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300452: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300518: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300556: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300584: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300614: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300646: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300678: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300706: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300793: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300824: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300849: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300879: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:30:08.300976: Inverter 0 count register writes 0
2026-08-18 04:30:08.326432: Total inverter register writes now 865
2026-08-18 04:30:08.356720: Info: Completed run status Hold charging
2026-08-18 04:30:08.363627: Info: record_status Hold charging target 84%-84%
2026-08-18 04:30:08.372694: Saved current settings to /config/predbat_config.json
2026-08-18 04:30:08.373084: Compare, best tariff: current metric 129.87p
2026-08-18 04:30:49.486915: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:30:49.487188: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:30:49.487251: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:30:49.487625: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:30:49.487674: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:30:49.487695: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:30:49.487711: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:33:03.706945: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:33:03.707355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:33:03.707417: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:33:03.707676: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:33:03.707727: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:33:03.707768: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:33:03.707805: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:35:00.923018: --------------- PredBat - update at 2026-08-18 04:35:00+01:00 with clock skew 0 minutes, minutes now 275
2026-08-18 04:35:00.923733: Saved current settings to /config/predbat_config.json
2026-08-18 04:35:00.923872: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 04:35:00.924014: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:35:00.924093: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:35:00.941305: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:35:00.941419: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:35:00.941576: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:35:00.942125: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:35:00.942242: Predbat mode is set to Control charge & discharge
2026-08-18 04:35:01.111941: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:35:01.112062: Using load_power data to fill gaps in load_today data
2026-08-18 04:35:01.933709: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:35:01.934144: Zero load period starting at 2026-08-17T10:54:00+0100 (1061 minutes) for 189 minutes with base value 209.9
2026-08-18 04:35:01.935096: Processing 721 30-minute periods for power integration
2026-08-18 04:35:02.113834: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:35:02.113945: Car charging hold False, threshold 6.0kWh
2026-08-18 04:35:02.113987: Current data so far today: load 2.3kWh, import 9.5kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:35:02.126155: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:35:02.126249: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:35:02.126889: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:35:02.126964: Standing charge is set to 46.63p
2026-08-18 04:35:02.211053: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:35:02.211250: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:35:02.211403: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:35:02.212307: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:35:02.212397: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:35:02.216756: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:35:02.217062: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:35:02.252189: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:35:02.252284: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:35:02.253293: High export rate found rates in range 99p to -99p
2026-08-18 04:35:02.276709: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:35:02.277299: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:35:02.289878: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:35:02.290263: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:35:02.335166: Today's energy total net 9.5kWh, import 9.5kWh, export 0.0kWh, cost 122.63p, import 76.0p, export 0.0p, carbon 0.0kg
2026-08-18 04:35:02.335313: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:35:02.410542: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:35:02.439766: Today's load divergence 92.1%, in-day adjustment 92.64%, damping 0.95x, yesterday 92.68% today 92.49% blend 80.9%
2026-08-18 04:35:02.439856: Today's predicted so far 3.48kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 3.48kWh forecast extra.
2026-08-18 04:35:02.439936: Today's actual load so far 2.29kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 04:35:02.498349: Inverter 0: Type SK Sunsynk
2026-08-18 04:35:02.498427: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:35:02.498617: Reserve min: 7%, battery_min: 7%
2026-08-18 04:35:02.498687: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:35:02.498946: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -535W, load power 535W, PV Power 0W
2026-08-18 04:35:02.499093: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:35:02.499176: Inverter 0 scheduled charge enable is True
2026-08-18 04:35:02.499226: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:35:02.499312: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:35:02.499430: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:35:02.499465: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:35:02.499500: Inverter 0 scheduled discharge enable is False
2026-08-18 04:35:02.499613: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:35:02.499648: Inverter 0 discharge windows currently []
2026-08-18 04:35:02.499670: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:35:02.499690: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:35:02.499707: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:35:02.561663: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:35:02.561766: Plan was last updated on 2026-08-18 04:30:00+01:00 and is now 5.0 minutes old
2026-08-18 04:35:02.562035: Best charge window [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ]
2026-08-18 04:35:02.562085: Best export window [ ]
2026-08-18 04:35:02.562974: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:35:02.566192: Load divergence over 8.0 hours mean 393.88W, min 263.4W, max 664.2W, std dev 62.63W, divergence 7.95%
2026-08-18 04:35:02.586255: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:35:02.586371: LoadML is_calculating False
2026-08-18 04:35:02.586452: Creating pool of 12 processes to match your CPU count
2026-08-18 04:35:02.702590: predict base end_record 08-19 04:35:00, final soc 13.44kWh, metric 306.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.75kWh, PV 0.0kWh
2026-08-18 04:35:02.827609: Battery has 19.25 hours left - now at 13.44kWh
2026-08-18 04:35:02.871767: predict base10 end_record 08-19 04:35:00, final soc 13.44kWh, metric 318.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.49kWh, PV 0.0kWh
2026-08-18 04:35:02.943180: predict best10 end_record 08-19 04:35:00, final soc 1.44kWh, metric 213.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.49kWh, PV 0.0kWh
2026-08-18 04:35:03.017867: predict best end_record 08-19 04:35:00, final soc 1.51kWh, metric 204.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 17.75kWh, PV 0.0kWh
2026-08-18 04:35:03.017969: Saving plan best values to HA entities
2026-08-18 04:35:03.166418: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:35:03.171412: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:35:03.176420: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.75kWh, house 3.66kWh, export 0.0kWh, metric 204.53p, metric10 213.82p
2026-08-18 04:35:03.244484: Marginal costs baseline metric (no standing charge): 157.8967
2026-08-18 04:35:03.492871: Marginal energy costs matrix computed: min=13.32 max=32.54
2026-08-18 04:35:03.559966: Rate array import [{'start': 275, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1715, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 275, 'end': 1715, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:35:03.560387: - Your estimated bill for today is £1.25 and tomorrow is £3.95
2026-08-18 04:35:03.560431: - Import rates are cheap (8.0p) for the next 55 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:35:03.560454: - The battery is currently at 84% and is charging to 84% for the next 25 minutes.
2026-08-18 04:35:03.560472: - For the next 48 hours there will be no solar generation.
2026-08-18 04:35:03.560489: - You will run out of battery in 19 hours.
2026-08-18 04:35:03.560506:
2026-08-18 04:35:03.607941: Plan calculation took 1.05 seconds
2026-08-18 04:35:03.611345: No high rate period found
2026-08-18 04:35:03.660463: Import threshold used for optimisation was 8.0p
2026-08-18 04:35:03.708555: Low import rate windows [0: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 1: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 2: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 3: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 4: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 5: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 6: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 7: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 8: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 9: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 10: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 11: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 12: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 13: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 14: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 15: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 16: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 17: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 18: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 19: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 20: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 21: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 22: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 23: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 24: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0]
2026-08-18 04:35:03.714700: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:35:03.714827: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:35:03.715064: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:35:03.715171: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:35:03.715332: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:35:03.715569: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:35:03.715703: No export window planned
2026-08-18 04:35:03.715823: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:35:03.715859: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:35:03.716063: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:35:03.716162: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:35:03.716227: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:35:03.716287: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:35:03.716400: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716533: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716569: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716620: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716698: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716735: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716769: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716799: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716833: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716859: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716887: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.716972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.717010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.717035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.717060: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.717084: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.717114: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.717138: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:35:03.717159: Inverter 0 count register writes 0
2026-08-18 04:35:03.733228: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 04:35:03.738418: Total inverter register writes now 865
2026-08-18 04:35:03.772560: Info: Completed run status Hold charging
2026-08-18 04:35:03.778480: Info: record_status Hold charging target 84%-84%
2026-08-18 04:35:03.785031: Saved current settings to /config/predbat_config.json
2026-08-18 04:35:03.785333: Compare, best tariff: current metric 129.87p
2026-08-18 04:35:33.888162: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:35:33.888437: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:35:33.888490: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:35:33.888663: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:35:33.888722: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:35:33.888748: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:35:33.888776: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:37:34.094234: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:37:34.094541: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:37:34.094592: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:37:34.094790: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:37:34.094839: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:37:34.094868: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:37:34.094902: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:39:34.312047: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:39:34.312292: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:39:34.312336: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:39:34.312471: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:39:34.312509: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:39:34.312531: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:39:34.312549: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:40:00.413559: --------------- PredBat - update at 2026-08-18 04:40:00+01:00 with clock skew 0 minutes, minutes now 280
2026-08-18 04:40:00.414307: Saved current settings to /config/predbat_config.json
2026-08-18 04:40:00.414472: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 04:40:00.414601: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:40:00.414703: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:40:00.432043: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:40:00.432172: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:40:00.432333: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:40:00.432846: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:40:00.432964: Predbat mode is set to Control charge & discharge
2026-08-18 04:40:00.605030: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:40:00.605166: Using load_power data to fill gaps in load_today data
2026-08-18 04:40:01.320085: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:40:01.320234: Zero load period starting at 2026-08-17T10:54:00+0100 (1066 minutes) for 189 minutes with base value 209.875
2026-08-18 04:40:01.320962: Processing 721 30-minute periods for power integration
2026-08-18 04:40:01.476180: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:40:01.476292: Car charging hold False, threshold 6.0kWh
2026-08-18 04:40:01.476331: Current data so far today: load 2.35kWh, import 9.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:40:01.488353: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:40:01.488435: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:40:01.489116: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:40:01.489178: Standing charge is set to 46.63p
2026-08-18 04:40:01.581447: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:40:01.581691: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:40:01.581848: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:40:01.582710: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:40:01.582797: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:40:01.587280: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:40:01.587656: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:40:01.622565: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:40:01.622672: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:40:01.623682: High export rate found rates in range 99p to -99p
2026-08-18 04:40:01.645704: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:40:01.645806: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:40:01.655608: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:40:01.655939: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:40:01.692333: Today's energy total net 9.6kWh, import 9.6kWh, export 0.0kWh, cost 123.43p, import 76.8p, export 0.0p, carbon 0.0kg
2026-08-18 04:40:01.692433: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:40:01.753432: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:40:01.776924: Today's load divergence 92.18%, in-day adjustment 92.66%, damping 0.95x, yesterday 92.68% today 92.57% blend 80.56%
2026-08-18 04:40:01.776993: Today's predicted so far 3.49kWh with 0.0kWh car/iBoost excluded, 7.43kWh import ignored, and 3.49kWh forecast extra.
2026-08-18 04:40:01.777019: Today's actual load so far 2.32kWh with 0.0kWh car/iBoost excluded, and 7.43kWh import ignored.
2026-08-18 04:40:01.810077: Inverter 0: Type SK Sunsynk
2026-08-18 04:40:01.810150: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:40:01.810297: Reserve min: 7%, battery_min: 7%
2026-08-18 04:40:01.810353: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:40:01.810601: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -551W, load power 551W, PV Power 0W
2026-08-18 04:40:01.810744: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:40:01.810815: Inverter 0 scheduled charge enable is True
2026-08-18 04:40:01.810850: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:40:01.810925: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:40:01.811025: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:40:01.811071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:40:01.811103: Inverter 0 scheduled discharge enable is False
2026-08-18 04:40:01.811201: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:40:01.811230: Inverter 0 discharge windows currently []
2026-08-18 04:40:01.811249: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:40:01.811264: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:40:01.811279: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:40:01.859725: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:40:01.859814: Plan was last updated on 2026-08-18 04:30:00+01:00 and is now 10.0 minutes old
2026-08-18 04:40:01.859997: Best charge window [ 18-08 04:00:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 04:30:00 @ 8.0p 100% ]
2026-08-18 04:40:01.860035: Best export window [ ]
2026-08-18 04:40:01.860759: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:40:01.863311: Load divergence over 8.0 hours mean 392.37W, min 262.2W, max 702.6W, std dev 60.77W, divergence 7.74%
2026-08-18 04:40:01.881896: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:40:01.881993: LoadML is_calculating False
2026-08-18 04:40:01.882044: Creating pool of 12 processes to match your CPU count
2026-08-18 04:40:01.978454: predict base end_record 08-19 04:40:00, final soc 13.44kWh, metric 307.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 17.8kWh, PV 0.0kWh
2026-08-18 04:40:02.104081: Battery has 19.08 hours left - now at 13.44kWh
2026-08-18 04:40:02.150004: predict base10 end_record 08-19 04:40:00, final soc 13.44kWh, metric 319.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.54kWh, PV 0.0kWh
2026-08-18 04:40:02.234886: predict best10 end_record 08-19 04:40:00, final soc 1.77kWh, metric 217.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.54kWh, PV 0.0kWh
2026-08-18 04:40:02.310670: predict best end_record 08-19 04:40:00, final soc 1.9kWh, metric 208.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 17.8kWh, PV 0.0kWh
2026-08-18 04:40:02.310743: Saving plan best values to HA entities
2026-08-18 04:40:02.495763: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:40:02.501565: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:40:02.507148: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.17kWh, house 3.65kWh, export 0.0kWh, metric 208.65p, metric10 217.35p
2026-08-18 04:40:02.580980: Marginal costs baseline metric (no standing charge): 162.0196
2026-08-18 04:40:02.843937: Marginal energy costs matrix computed: min=15.42 max=32.53
2026-08-18 04:40:02.913212: Rate array import [{'start': 280, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1720, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 280, 'end': 1720, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:40:02.913570: - Your estimated bill for today is £1.26 and tomorrow is £3.95
2026-08-18 04:40:02.913606: - Import rates are cheap (8.0p) for the next 50 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:40:02.913636: - The battery is currently at 84% and is charging to 84% for the next 20 minutes.
2026-08-18 04:40:02.913652: - For the next 48 hours there will be no solar generation.
2026-08-18 04:40:02.913666: - You will run out of battery in 19 hours.
2026-08-18 04:40:02.913680:
2026-08-18 04:40:02.961861: Plan calculation took 1.10 seconds
2026-08-18 04:40:02.965194: No high rate period found
2026-08-18 04:40:03.015814: Import threshold used for optimisation was 8.0p
2026-08-18 04:40:03.064493: Low import rate windows [0: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 1: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 2: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 3: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 4: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 5: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 6: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 7: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 8: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 9: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 10: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 11: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 12: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 13: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 14: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 15: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 16: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 17: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 18: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 19: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 20: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 21: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 22: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 23: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 24: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0]
2026-08-18 04:40:03.069325: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:00:00
2026-08-18 04:40:03.069432: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:40:03.069565: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:40:03.069661: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:40:03.069841: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:40:03.070044: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:40:03.070187: No export window planned
2026-08-18 04:40:03.070327: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:40:03.070361: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:40:03.070513: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:40:03.070601: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:40:03.070693: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:40:03.070773: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:40:03.070915: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.070958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.070993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071082: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071130: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071254: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071306: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071381: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071433: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071478: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071523: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071571: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071676: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071717: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071790: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071838: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071962: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:03.071996: Inverter 0 count register writes 0
2026-08-18 04:40:03.086939: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 04:40:03.087111: Recompute is saving previous plan...
2026-08-18 04:40:03.087981: Best charge window [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 84%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 84% ]
2026-08-18 04:40:03.088036: Best export window [ ]
2026-08-18 04:40:03.088728: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:40:03.091290: Load divergence over 8.0 hours mean 392.37W, min 262.2W, max 702.6W, std dev 60.77W, divergence 7.74%
2026-08-18 04:40:03.105941: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:40:03.106055: LoadML is_calculating False
2026-08-18 04:40:03.106132: Creating pool of 12 processes to match your CPU count
2026-08-18 04:40:03.188877: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 04:40:03.189589: Optimise levels pass started at 2026-08-18 04:40:03
2026-08-18 04:40:03.189652: Optimise all windows, total charge 24 export 1
2026-08-18 04:40:03.525174: >> Region optimisation pass width 960 gives best_metric 295.38p, best_cost 300.72p, best_cycle 37.03kWh, best_import 22.16kWh
2026-08-18 04:40:03.675335: >> Region optimisation pass width 480 gives best_metric 295.38p, best_cost 300.72p, best_cycle 37.03kWh, best_import 22.16kWh
2026-08-18 04:40:03.966832: >> Region optimisation pass width 240 gives best_metric 295.38p, best_cost 300.72p, best_cycle 37.03kWh, best_import 22.16kWh
2026-08-18 04:40:04.517845: >> Region optimisation pass width 120 gives best_metric 295.38p, best_cost 300.72p, best_cycle 37.03kWh, best_import 22.16kWh
2026-08-18 04:40:04.518045: Calculated end_record as 08-19 05:00:00 based on best_price 8.0p, next_charge_start 08-18 05:00:00, max_windows 13
2026-08-18 04:40:04.518109: Optimise levels pass ended at 2026-08-18 04:40:04, duration 1.3 seconds tried 60 combinations
2026-08-18 04:40:04.518174: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 295.38p, best_keep 0kWh, best_cycle 37.03kWh, best_carbon 0kg, best_import 22.16kWh
2026-08-18 04:40:04.533751: Starting detailed optimisation end_record 08-19 05:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 04:40:06.240398: Tweak plan optimisation started metric 150.09p, cost 156.9p
2026-08-18 04:40:06.455440: Tweak optimisation finished metric 150.09p, cost 156.9p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.18kWh, changed 8 window(s)
2026-08-18 04:40:06.474187: Swap charge optimisation started metric 150.09p, cost 156.9p, min_improvement_swap 0.1p
2026-08-18 04:40:06.510655: Swap charge optimisation finished metric 150.09p, cost 156.9p
2026-08-18 04:40:06.554993: Pruned 1 dead plan slot(s) in 2 trial(s), nominal metric 149.2p -> 149.2p, plan now metric 150.68p, cost 156.9p, cycle 12.07kWh, import 4.18kWh
2026-08-18 04:40:06.564699: Raw charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:40:06.565067: Unclipped charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:40:06.565337: Unfiltered charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:40:06.565559: Filtered charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:40:06.605682: Previous plan best metric is 153.99 (cost 176.9) and new plan best metric is 150.09 (cost 156.9)
2026-08-18 04:40:06.605887: New plan metric is significantly better from previous plan, using new plan
2026-08-18 04:40:06.605921: Plan valid is now true after recompute was False
2026-08-18 04:40:06.638963: predict base end_record 08-19 05:00:00, final soc 13.44kWh, metric 309.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.0kWh, PV 0.0kWh
2026-08-18 04:40:06.750658: Battery has 19.08 hours left - now at 13.44kWh
2026-08-18 04:40:06.788146: predict base10 end_record 08-19 05:00:00, final soc 13.44kWh, metric 320.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.74kWh, PV 0.0kWh
2026-08-18 04:40:06.858991: predict best10 end_record 08-19 05:00:00, final soc 1.12kWh, metric 213.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.74kWh, PV 0.0kWh
2026-08-18 04:40:06.935085: predict best end_record 08-19 05:00:00, final soc 1.12kWh, metric 203.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.0kWh, PV 0.0kWh
2026-08-18 04:40:06.935171: Saving plan best values to HA entities
2026-08-18 04:40:07.098306: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:40:07.104579: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:40:07.114440: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.24kWh, house 3.94kWh, export 0.0kWh, metric 203.53p, metric10 213.41p
2026-08-18 04:40:07.202142: Marginal costs baseline metric (no standing charge): 156.8986
2026-08-18 04:40:07.461591: Marginal energy costs matrix computed: min=15.42 max=32.53
2026-08-18 04:40:07.527549: Rate array import [{'start': 280, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1740, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 280, 'end': 1740, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:40:07.527966: - Your estimated bill for today is £1.26 and tomorrow is £4.48
2026-08-18 04:40:07.528018: - Import rates are cheap (8.0p) for the next 50 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:40:07.528043: - The battery is currently at 84% and is charging to 84% for the next 20 minutes.
2026-08-18 04:40:07.528062: - For the next 48 hours there will be no solar generation.
2026-08-18 04:40:07.528079: - You will run out of battery in 19 hours.
2026-08-18 04:40:07.528103:
2026-08-18 04:40:07.572574: Plan calculation took 4.49 seconds
2026-08-18 04:40:07.572947: Inverter 0: Type SK Sunsynk
2026-08-18 04:40:07.572998: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:40:07.573228: Reserve min: 7%, battery_min: 7%
2026-08-18 04:40:07.573324: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:40:07.573730: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -5W, current battery voltage 51.2V, grid power -538W, load power 538W, PV Power 0W
2026-08-18 04:40:07.573988: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:40:07.574138: Inverter 0 scheduled charge enable is True
2026-08-18 04:40:07.574210: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:40:07.574340: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:40:07.574506: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:40:07.574562: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:40:07.574636: Inverter 0 scheduled discharge enable is False
2026-08-18 04:40:07.574794: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:40:07.574831: Inverter 0 discharge windows currently []
2026-08-18 04:40:07.574853: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:40:07.574887: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:40:07.574915: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:40:07.625408: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:30:00
2026-08-18 04:40:07.625555: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:40:07.625726: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:40:07.625841: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:40:07.626035: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:40:07.626264: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:40:07.626418: No export window planned
2026-08-18 04:40:07.626595: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:40:07.626662: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:40:07.626882: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:40:07.627014: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:40:07.627111: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:40:07.627212: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:40:07.627379: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627432: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627593: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627814: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627868: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.627960: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628052: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628120: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628181: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628241: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628398: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628443: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628490: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628601: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:40:07.628726: Inverter 0 count register writes 0
2026-08-18 04:40:07.648893: Total inverter register writes now 865
2026-08-18 04:40:07.679584: Info: Completed run status Hold charging
2026-08-18 04:40:07.685220: Info: record_status Hold charging target 84%-84%
2026-08-18 04:40:07.691496: Saved current settings to /config/predbat_config.json
2026-08-18 04:40:07.691773: Compare, best tariff: current metric 129.87p
2026-08-18 04:40:48.802844: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:40:48.803161: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:40:48.803215: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:40:48.803401: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:40:48.803453: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:40:48.803481: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:40:48.803513: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:42:49.003324: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:42:49.003679: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:42:49.003738: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:42:49.003965: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:42:49.004045: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:42:49.004067: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:42:49.004093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:44:49.217531: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:44:49.217801: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:44:49.217843: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:44:49.217975: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:44:49.218013: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:44:49.218085: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:44:49.218105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:45:00.319573: --------------- PredBat - update at 2026-08-18 04:45:00+01:00 with clock skew 0 minutes, minutes now 285
2026-08-18 04:45:00.320349: Saved current settings to /config/predbat_config.json
2026-08-18 04:45:00.320473: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 04:45:00.320580: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:45:00.320680: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:45:00.336845: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:45:00.337039: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:45:00.337278: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:45:00.337895: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:45:00.338048: Predbat mode is set to Control charge & discharge
2026-08-18 04:45:00.519269: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:45:00.519399: Using load_power data to fill gaps in load_today data
2026-08-18 04:45:01.353984: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:45:01.354178: Zero load period starting at 2026-08-17T10:54:00+0100 (1071 minutes) for 189 minutes with base value 209.85
2026-08-18 04:45:01.355078: Processing 721 30-minute periods for power integration
2026-08-18 04:45:01.536073: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:45:01.536190: Car charging hold False, threshold 6.0kWh
2026-08-18 04:45:01.536234: Current data so far today: load 2.4kWh, import 9.6kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:45:01.552113: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:45:01.552261: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:45:01.553230: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:45:01.553310: Standing charge is set to 46.63p
2026-08-18 04:45:01.658915: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:45:01.659146: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:45:01.659330: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:45:01.660902: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:45:01.661069: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:45:01.666954: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:45:01.667305: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:45:01.713258: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:45:01.713631: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:45:01.715111: High export rate found rates in range 99p to -99p
2026-08-18 04:45:01.742457: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:45:01.742598: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:45:01.754405: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:45:01.754736: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:45:01.802700: Today's energy total net 9.6kWh, import 9.6kWh, export 0.0kWh, cost 123.43p, import 76.8p, export 0.0p, carbon 0.0kg
2026-08-18 04:45:01.802839: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:45:01.883258: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:45:01.907175: Today's load divergence 92.42%, in-day adjustment 92.7%, damping 0.95x, yesterday 92.68% today 92.8% blend 80.21%
2026-08-18 04:45:01.907268: Today's predicted so far 3.5kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 3.5kWh forecast extra.
2026-08-18 04:45:01.907295: Today's actual load so far 2.35kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 04:45:01.941047: Inverter 0: Type SK Sunsynk
2026-08-18 04:45:01.941152: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:45:01.941355: Reserve min: 7%, battery_min: 7%
2026-08-18 04:45:01.941427: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:45:01.941691: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -540W, load power 541W, PV Power 0W
2026-08-18 04:45:01.941842: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:45:01.941928: Inverter 0 scheduled charge enable is True
2026-08-18 04:45:01.941971: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:45:01.942058: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:45:01.942175: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:45:01.942209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:45:01.942245: Inverter 0 scheduled discharge enable is False
2026-08-18 04:45:01.942362: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:45:01.942397: Inverter 0 discharge windows currently []
2026-08-18 04:45:01.942420: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:45:01.942438: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:45:01.942455: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:45:01.990922: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:45:01.991005: Plan was last updated on 2026-08-18 04:40:00+01:00 and is now 5.0 minutes old
2026-08-18 04:45:01.991153: Best charge window [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ]
2026-08-18 04:45:01.991196: Best export window [ ]
2026-08-18 04:45:01.991876: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:45:01.994356: Load divergence over 8.0 hours mean 390.89W, min 274.2W, max 741.0W, std dev 63.16W, divergence 8.08%
2026-08-18 04:45:02.010293: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:45:02.010419: LoadML is_calculating False
2026-08-18 04:45:02.010516: Creating pool of 12 processes to match your CPU count
2026-08-18 04:45:02.118454: predict base end_record 08-19 05:05:00, final soc 13.39kWh, metric 309.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.07kWh, PV 0.0kWh
2026-08-18 04:45:02.224655: Battery has 19.0 hours left - now at 13.44kWh
2026-08-18 04:45:02.261329: predict base10 end_record 08-19 05:05:00, final soc 13.39kWh, metric 320.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.81kWh, PV 0.0kWh
2026-08-18 04:45:02.326116: predict best10 end_record 08-19 05:05:00, final soc 1.44kWh, metric 216.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.81kWh, PV 0.0kWh
2026-08-18 04:45:02.408800: predict best end_record 08-19 05:05:00, final soc 1.51kWh, metric 207.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.07kWh, PV 0.0kWh
2026-08-18 04:45:02.408891: Saving plan best values to HA entities
2026-08-18 04:45:02.547788: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:45:02.552952: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:45:02.558233: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.67kWh, house 3.95kWh, export 0.0kWh, metric 207.02p, metric10 216.56p
2026-08-18 04:45:02.624337: Marginal costs baseline metric (no standing charge): 160.3879
2026-08-18 04:45:02.834494: Marginal energy costs matrix computed: min=17.75 max=32.56
2026-08-18 04:45:02.896273: Rate array import [{'start': 285, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1745, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 285, 'end': 1745, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:45:02.896635: - Your estimated bill for today is £1.26 and tomorrow is £4.48
2026-08-18 04:45:02.896672: - Import rates are cheap (8.0p) for the next 45 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:45:02.896691: - The battery is currently at 84% and is charging to 84% for the next 15 minutes.
2026-08-18 04:45:02.896706: - For the next 48 hours there will be no solar generation.
2026-08-18 04:45:02.896720: - You will run out of battery in 19 hours.
2026-08-18 04:45:02.896734:
2026-08-18 04:45:02.937189: Plan calculation took 0.95 seconds
2026-08-18 04:45:02.939808: No high rate period found
2026-08-18 04:45:02.981042: Import threshold used for optimisation was 8.0p
2026-08-18 04:45:03.027793: Low import rate windows [0: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 1: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 2: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 3: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 4: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 5: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 6: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 7: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 8: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 9: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 10: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 11: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 12: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 13: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 14: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 15: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 16: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 17: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 18: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 19: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 20: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 21: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 22: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 23: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 24: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0]
2026-08-18 04:45:03.033596: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:30:00
2026-08-18 04:45:03.033705: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:45:03.033882: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:45:03.033968: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:45:03.034118: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:45:03.034348: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:45:03.034475: No export window planned
2026-08-18 04:45:03.034617: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:45:03.034652: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:45:03.034788: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:45:03.034872: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:45:03.034931: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:45:03.034994: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:45:03.035101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035173: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035233: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035335: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035373: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035405: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035434: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035465: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035511: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035547: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035646: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035677: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035707: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035776: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035804: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:45:03.035826: Inverter 0 count register writes 0
2026-08-18 04:45:03.051269: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 04:45:03.057637: Total inverter register writes now 865
2026-08-18 04:45:03.088474: Info: Completed run status Hold charging
2026-08-18 04:45:03.094675: Info: record_status Hold charging target 84%-84%
2026-08-18 04:45:03.101113: Saved current settings to /config/predbat_config.json
2026-08-18 04:45:03.101406: Compare, best tariff: current metric 129.87p
2026-08-18 04:45:07.551428: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 04:45:08.535685: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:45:08.535851: Zero load period starting at 2026-08-17T10:54:00+0100 (1071 minutes) for 189 minutes with base value 401.7
2026-08-18 04:45:08.536834: Processing 1345 30-minute periods for power integration
2026-08-18 04:45:08.630867: ML Component: Car charging hold False, car energy reported load False
2026-08-18 04:45:08.726888: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:45:08.831566: ML Temperature data points: 50116
2026-08-18 04:45:09.093595: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 04:45:09.130731: ML Component: Data fetch completed, load data age 59.0 days, 17169 data points
2026-08-18 04:45:09.130851: ML Component: Starting fine-tune training (2h interval), model age is 2.052514278611111 hours
2026-08-18 04:45:09.130873: ML Component: Doing training...
2026-08-18 04:45:09.143249: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-18 04:45:09.143344: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.6 days)
2026-08-18 04:45:09.195505: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-18 04:45:09.195636: ML Predictor: Starting initial training with 30 epochs
2026-08-18 04:45:09.737496: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-18 04:45:14.767698: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-18 04:45:14.977640: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0481) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7268 std=4.5888) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1925 std=0.5271)
2026-08-18 04:45:31.729256: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0319 val_mae=0.0100 kWh val_bias=+0.0031 kWh (+3.5%) combined=0.0064 kWh ema_combined=0.0064 kWh
2026-08-18 04:45:33.864528: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:45:33.864826: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:45:33.864886: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:45:33.865053: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:45:33.865100: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:45:33.865123: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:45:33.865147: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:45:45.604182: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0475 val_mae=0.0092 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0049 kWh ema_combined=0.0060 kWh
2026-08-18 04:45:59.450918: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0334 val_mae=0.0069 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0044 kWh ema_combined=0.0055 kWh
2026-08-18 04:46:12.101179: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0232 val_mae=0.0056 kWh val_bias=+0.0009 kWh (+1.1%) combined=0.0041 kWh ema_combined=0.0051 kWh
2026-08-18 04:46:25.738420: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0171 val_mae=0.0048 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0029 kWh ema_combined=0.0044 kWh
2026-08-18 04:46:38.724610: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0161 val_mae=0.0052 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0027 kWh ema_combined=0.0039 kWh
2026-08-18 04:46:51.663088: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0137 val_mae=0.0049 kWh val_bias=-0.0020 kWh (-2.2%) combined=0.0039 kWh ema_combined=0.0039 kWh
2026-08-18 04:47:04.459887: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0119 val_mae=0.0041 kWh val_bias=+0.0010 kWh (+1.1%) combined=0.0030 kWh ema_combined=0.0036 kWh
2026-08-18 04:47:17.470490: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0107 val_mae=0.0040 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0025 kWh ema_combined=0.0033 kWh
2026-08-18 04:47:32.071967: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0097 val_mae=0.0040 kWh val_bias=+0.0004 kWh (+0.4%) combined=0.0025 kWh ema_combined=0.0031 kWh
2026-08-18 04:47:34.208621: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:47:34.209001: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:47:34.209057: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:47:34.209331: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:47:34.209384: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:47:34.209482: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:47:34.209557: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:47:44.246434: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0091 val_mae=0.0038 kWh val_bias=-0.0005 kWh (-0.6%) combined=0.0021 kWh ema_combined=0.0028 kWh
2026-08-18 04:47:57.081459: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0096 val_mae=0.0042 kWh val_bias=-0.0026 kWh (-2.9%) combined=0.0038 kWh ema_combined=0.0031 kWh
2026-08-18 04:48:10.271896: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0091 val_mae=0.0055 kWh val_bias=-0.0035 kWh (-3.9%) combined=0.0046 kWh ema_combined=0.0035 kWh
2026-08-18 04:48:24.885679: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0088 val_mae=0.0040 kWh val_bias=-0.0011 kWh (-1.2%) combined=0.0025 kWh ema_combined=0.0032 kWh
2026-08-18 04:48:37.534250: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0081 val_mae=0.0033 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0021 kWh ema_combined=0.0029 kWh
2026-08-18 04:48:50.234370: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0075 val_mae=0.0034 kWh val_bias=-0.0015 kWh (-1.7%) combined=0.0028 kWh ema_combined=0.0029 kWh
2026-08-18 04:49:02.881290: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0070 val_mae=0.0029 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0015 kWh ema_combined=0.0025 kWh
2026-08-18 04:49:15.305509: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0071 val_mae=0.0030 kWh val_bias=+0.0005 kWh (+0.5%) combined=0.0016 kWh ema_combined=0.0022 kWh
2026-08-18 04:49:29.651655: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0071 val_mae=0.0032 kWh val_bias=-0.0009 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 04:49:34.568994: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:49:34.570472: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:49:34.570532: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:49:34.570704: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:49:34.570776: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:49:34.570882: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:49:34.570925: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:49:42.439752: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0067 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-18 04:49:55.017649: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0062 val_mae=0.0029 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 04:50:00.767580: --------------- PredBat - update at 2026-08-18 04:50:00+01:00 with clock skew 0 minutes, minutes now 290
2026-08-18 04:50:00.769114: Saved current settings to /config/predbat_config.json
2026-08-18 04:50:00.769405: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 04:50:00.769678: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:50:00.770018: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:50:00.800041: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:50:00.800362: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:50:00.800813: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:50:00.801747: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:50:00.806676: Predbat mode is set to Control charge & discharge
2026-08-18 04:50:01.127955: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:50:01.128184: Using load_power data to fill gaps in load_today data
2026-08-18 04:50:02.466653: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:50:02.466830: Zero load period starting at 2026-08-17T10:54:00+0100 (1076 minutes) for 189 minutes with base value 209.825
2026-08-18 04:50:02.468065: Processing 721 30-minute periods for power integration
2026-08-18 04:50:02.702296: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:50:02.702593: Car charging hold False, threshold 6.0kWh
2026-08-18 04:50:02.702758: Current data so far today: load 2.45kWh, import 9.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:50:02.726935: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:50:02.727209: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:50:02.730338: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:50:02.730521: Standing charge is set to 46.63p
2026-08-18 04:50:02.959279: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:50:02.959797: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:50:02.960173: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:50:02.961363: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:50:02.962017: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:50:02.967445: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:50:02.967789: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:50:03.013463: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:50:03.013643: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:50:03.014819: High export rate found rates in range 99p to -99p
2026-08-18 04:50:03.043638: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:50:03.043819: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:50:03.061243: Battery level now 13.44kWh, -1hr ago 13.42kWh, at midnight 6.84kWh, battery value change in the last hour 0.16p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:50:03.061777: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.53kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:50:03.165009: Today's energy total net 9.7kWh, import 9.7kWh, export 0.0kWh, cost 124.23p, import 77.6p, export 0.0p, carbon 0.0kg
2026-08-18 04:50:03.165175: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:50:03.396297: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:50:03.431052: Today's load divergence 92.59%, in-day adjustment 92.74%, damping 0.95x, yesterday 92.68% today 92.96% blend 79.86%
2026-08-18 04:50:03.431156: Today's predicted so far 3.52kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 3.52kWh forecast extra.
2026-08-18 04:50:03.431189: Today's actual load so far 2.4kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 04:50:03.484582: Inverter 0: Type SK Sunsynk
2026-08-18 04:50:03.484682: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:50:03.484898: Reserve min: 7%, battery_min: 7%
2026-08-18 04:50:03.484998: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:50:03.485327: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -13W, current battery voltage 51.2V, grid power -558W, load power 544W, PV Power 0W
2026-08-18 04:50:03.485524: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:50:03.485629: Inverter 0 scheduled charge enable is True
2026-08-18 04:50:03.485691: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:50:03.485804: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:50:03.485950: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:50:03.485995: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:50:03.486049: Inverter 0 scheduled discharge enable is False
2026-08-18 04:50:03.486195: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:50:03.486239: Inverter 0 discharge windows currently []
2026-08-18 04:50:03.486280: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:50:03.486313: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:50:03.486346: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:50:03.566381: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:50:03.566525: Plan was last updated on 2026-08-18 04:40:00+01:00 and is now 10.0 minutes old
2026-08-18 04:50:03.566770: Best charge window [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ]
2026-08-18 04:50:03.566850: Best export window [ ]
2026-08-18 04:50:03.568217: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:50:03.572943: Load divergence over 8.0 hours mean 392.31W, min 297.6W, max 693.0W, std dev 54.22W, divergence 6.91%
2026-08-18 04:50:03.602608: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:50:03.602873: LoadML is_calculating True
2026-08-18 04:50:03.602922: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 04:50:03.654512: predict base end_record 08-19 05:10:00, final soc 13.35kWh, metric 309.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.11kWh, PV 0.0kWh
2026-08-18 04:50:03.844144: Battery has 18.92 hours left - now at 13.44kWh
2026-08-18 04:50:03.892161: predict base10 end_record 08-19 05:10:00, final soc 13.34kWh, metric 321.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.86kWh, PV 0.0kWh
2026-08-18 04:50:04.041400: predict best10 end_record 08-19 05:10:00, final soc 1.77kWh, metric 220.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.86kWh, PV 0.0kWh
2026-08-18 04:50:04.222667: predict best end_record 08-19 05:10:00, final soc 1.9kWh, metric 211.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.11kWh, PV 0.0kWh
2026-08-18 04:50:04.222776: Saving plan best values to HA entities
2026-08-18 04:50:04.480112: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:50:04.496146: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:50:04.503033: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 1.08kWh, house 3.95kWh, export 0.0kWh, metric 211.11p, metric10 220.07p
2026-08-18 04:50:04.654798: Marginal costs baseline metric (no standing charge): 164.4796
2026-08-18 04:50:05.013061: Marginal energy costs matrix computed: min=19.9 max=32.56
2026-08-18 04:50:05.111034: Rate array import [{'start': 290, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1750, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 290, 'end': 1750, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:50:05.111605: - Your estimated bill for today is £1.27 and tomorrow is £4.48
2026-08-18 04:50:05.111660: - Import rates are cheap (8.0p) for the next 40 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:50:05.111723: - The battery is currently at 84% and is charging to 84% for the next 10 minutes.
2026-08-18 04:50:05.111815: - For the next 48 hours there will be no solar generation.
2026-08-18 04:50:05.111856: - You will run out of battery in 19 hours.
2026-08-18 04:50:05.111988:
2026-08-18 04:50:05.151167: Plan calculation took 1.58 seconds
2026-08-18 04:50:05.154777: No high rate period found
2026-08-18 04:50:05.226573: Import threshold used for optimisation was 8.0p
2026-08-18 04:50:05.351709: Low import rate windows [0: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 1: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 2: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 3: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 4: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 5: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 6: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 7: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 8: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 9: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 10: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 11: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 12: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 13: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 14: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 15: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 16: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 17: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 18: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 19: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 20: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 21: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 22: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 23: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 24: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0]
2026-08-18 04:50:05.359336: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:30:00
2026-08-18 04:50:05.359479: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:50:05.359619: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:50:05.359704: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:50:05.359842: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:50:05.360084: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:50:05.360230: No export window planned
2026-08-18 04:50:05.360360: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:50:05.360403: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:50:05.376218: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:50:05.376467: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:50:05.376568: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.0kWh and this battery needs to add 0.0kWh to get to 13.44kWh
2026-08-18 04:50:05.376643: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:50:05.376768: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.376821: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.376858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.376904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.376940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.376975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377070: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377116: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377153: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377187: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377231: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377356: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377411: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377702: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377795: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377871: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.377957: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.378031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.378117: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:05.378161: Inverter 0 count register writes 0
2026-08-18 04:50:05.409778: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 04:50:05.410004: Recompute is saving previous plan...
2026-08-18 04:50:05.411366: Best charge window [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 84%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 84% ]
2026-08-18 04:50:05.411430: Best export window [ ]
2026-08-18 04:50:05.412860: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:50:05.417788: Load divergence over 8.0 hours mean 392.31W, min 297.6W, max 693.0W, std dev 54.22W, divergence 6.91%
2026-08-18 04:50:05.473558: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:50:05.473680: LoadML is_calculating True
2026-08-18 04:50:05.476694: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 04:50:05.490920: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 04:50:05.491421: Optimise levels pass started at 2026-08-18 04:50:05
2026-08-18 04:50:05.491488: Optimise all windows, total charge 24 export 1
2026-08-18 04:50:07.827263: >> Region optimisation pass width 960 gives best_metric 296.35p, best_cost 301.7p, best_cycle 37.05kWh, best_import 22.18kWh
2026-08-18 04:50:08.085410: >> Region optimisation pass width 480 gives best_metric 296.35p, best_cost 301.7p, best_cycle 37.05kWh, best_import 22.18kWh
2026-08-18 04:50:08.462706: >> Region optimisation pass width 240 gives best_metric 296.35p, best_cost 301.7p, best_cycle 37.05kWh, best_import 22.18kWh
2026-08-18 04:50:09.566644: >> Region optimisation pass width 120 gives best_metric 296.35p, best_cost 301.7p, best_cycle 37.05kWh, best_import 22.18kWh
2026-08-18 04:50:09.567088: Calculated end_record as 08-19 05:00:00 based on best_price 8.0p, next_charge_start 08-18 05:00:00, max_windows 13
2026-08-18 04:50:09.567162: Optimise levels pass ended at 2026-08-18 04:50:09, duration 4.1 seconds tried 60 combinations
2026-08-18 04:50:09.567379: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 296.35p, best_keep 0kWh, best_cycle 37.05kWh, best_carbon 0kg, best_import 22.18kWh
2026-08-18 04:50:09.605467: Starting detailed optimisation end_record 08-19 05:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 04:50:19.827586: Tweak plan optimisation started metric 150.32p, cost 157.12p
2026-08-18 04:50:20.294538: Tweak optimisation finished metric 150.32p, cost 157.12p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.11kWh, changed 8 window(s)
2026-08-18 04:50:20.326294: Swap charge optimisation started metric 150.32p, cost 157.12p, min_improvement_swap 0.1p
2026-08-18 04:50:20.383647: Swap charge optimisation finished metric 150.32p, cost 157.12p
2026-08-18 04:50:20.429754: Pruned 1 dead plan slot(s) in 2 trial(s), nominal metric 149.43p -> 149.43p, plan now metric 150.93p, cost 157.12p, cycle 12.07kWh, import 4.11kWh
2026-08-18 04:50:20.440300: Raw charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:50:20.440818: Unclipped charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:50:20.440980: Unfiltered charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:50:20.441134: Filtered charge windows [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 04:50:20.477506: Previous plan best metric is 150.32 (cost 157.12) and new plan best metric is 150.32 (cost 157.12)
2026-08-18 04:50:20.477710: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 04:50:20.477872: Plan valid is now true after recompute was False
2026-08-18 04:50:20.506198: predict base end_record 08-19 05:00:00, final soc 13.44kWh, metric 309.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.03kWh, PV 0.0kWh
2026-08-18 04:50:20.633297: Battery has 18.92 hours left - now at 13.44kWh
2026-08-18 04:50:20.680043: predict base10 end_record 08-19 05:00:00, final soc 13.44kWh, metric 321.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.77kWh, PV 0.0kWh
2026-08-18 04:50:20.792937: predict best10 end_record 08-19 05:00:00, final soc 1.12kWh, metric 213.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.77kWh, PV 0.0kWh
2026-08-18 04:50:20.916898: predict best end_record 08-19 05:00:00, final soc 1.12kWh, metric 203.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.03kWh, PV 0.0kWh
2026-08-18 04:50:20.917007: Saving plan best values to HA entities
2026-08-18 04:50:21.207811: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:50:21.216361: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:50:21.224874: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.16kWh, house 3.95kWh, export 0.0kWh, metric 203.76p, metric10 213.79p
2026-08-18 04:50:21.332638: Marginal costs baseline metric (no standing charge): 157.1241
2026-08-18 04:50:21.980771: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0070 val_mae=0.0028 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 04:50:21.995946: Marginal energy costs matrix computed: min=19.9 max=32.56
2026-08-18 04:50:22.130068: Rate array import [{'start': 290, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1740, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 290, 'end': 1740, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:50:22.130507: - Your estimated bill for today is £1.27 and tomorrow is £4.48
2026-08-18 04:50:22.130552: - Import rates are cheap (8.0p) for the next 40 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:50:22.130593: - The battery is currently at 84% and is charging to 84% for the next 10 minutes.
2026-08-18 04:50:22.130612: - For the next 48 hours there will be no solar generation.
2026-08-18 04:50:22.130633: - You will run out of battery in 19 hours.
2026-08-18 04:50:22.130681:
2026-08-18 04:50:22.161334: Plan calculation took 16.75 seconds
2026-08-18 04:50:22.161548: Inverter 0: Type SK Sunsynk
2026-08-18 04:50:22.161594: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:50:22.161783: Reserve min: 7%, battery_min: 7%
2026-08-18 04:50:22.161889: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:50:22.162274: Inverter 0 SoC: 13.42kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -13W, current battery voltage 51.2V, grid power -559W, load power 546W, PV Power 0W
2026-08-18 04:50:22.162494: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:50:22.162593: Inverter 0 scheduled charge enable is True
2026-08-18 04:50:22.162647: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:50:22.162772: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:50:22.162911: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:50:22.162949: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:50:22.162987: Inverter 0 scheduled discharge enable is False
2026-08-18 04:50:22.163116: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:50:22.163175: Inverter 0 discharge windows currently []
2026-08-18 04:50:22.163200: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:50:22.163219: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:50:22.163236: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:50:22.260608: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:30:00
2026-08-18 04:50:22.260730: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:50:22.260839: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:50:22.260912: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:50:22.261019: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:50:22.261202: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:50:22.261297: No export window planned
2026-08-18 04:50:22.261392: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:50:22.261428: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:50:22.261581: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:50:22.261656: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:50:22.261717: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.02kWh and this battery needs to add 0.02kWh to get to 13.44kWh
2026-08-18 04:50:22.261761: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:50:22.261853: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.261893: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.261921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.261954: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.261980: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262007: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262031: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262157: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262205: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262296: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262340: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262401: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262537: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262635: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262791: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.262910: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.263029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.263119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.263231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.263319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.263422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:50:22.275981: Inverter 0 count register writes 0
2026-08-18 04:50:22.314192: Total inverter register writes now 865
2026-08-18 04:50:22.389107: Info: Completed run status Hold charging
2026-08-18 04:50:22.396396: Info: record_status Hold charging target 84%-84%
2026-08-18 04:50:22.406649: Saved current settings to /config/predbat_config.json
2026-08-18 04:50:22.407061: Compare, best tariff: current metric 129.87p
2026-08-18 04:50:36.094624: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0063 val_mae=0.0030 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 04:50:48.997074: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0059 val_mae=0.0027 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 04:51:01.975720: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-18 04:51:04.539021: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:51:04.539923: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:51:04.540071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:51:04.540332: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:51:04.540469: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:51:04.540586: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:51:04.540687: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:51:14.760040: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-18 04:51:26.728573: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0059 val_mae=0.0025 kWh val_bias=-0.0006 kWh (-0.6%) combined=0.0017 kWh ema_combined=0.0017 kWh
2026-08-18 04:51:41.002286: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0059 val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 04:51:53.571822: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-18 04:52:05.929662: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0054 val_mae=0.0025 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0017 kWh
2026-08-18 04:52:05.930803: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 04:52:05.930957: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 04:52:06.972802: ML Predictor: AR rollout over holdout: ar_mae=0.0025 kWh ar_bias=-0.0000 kWh (-0.0%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 04:52:07.001820: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0024 kWh
2026-08-18 04:52:07.073768: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-18 04:52:07.074013: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 04:52:07.622191: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 04:52:12.351221: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 04:52:12.402388: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7287 std=4.5873) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-18 04:52:12.486130: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 04:52:12.500449: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 04:52:12.524633: ML Predictor: Baseline (pre-finetune) val_mae=0.0040 kWh val_bias=+0.0005 kWh
2026-08-18 04:52:23.153981: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0043 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0028 kWh ema_combined=0.0028 kWh
2026-08-18 04:52:35.655608: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0117 val_mae=0.0049 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0034 kWh ema_combined=0.0030 kWh
2026-08-18 04:52:50.624538: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0126 val_mae=0.0048 kWh val_bias=+0.0023 kWh (+2.9%) combined=0.0039 kWh ema_combined=0.0032 kWh
2026-08-18 04:53:03.377516: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0105 val_mae=0.0037 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0020 kWh ema_combined=0.0029 kWh
2026-08-18 04:53:16.728542: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0102 val_mae=0.0033 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-18 04:53:19.527220: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:53:19.528014: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:53:19.528087: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:53:19.528262: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:53:19.528310: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:53:19.528337: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:53:19.528461: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:53:29.423063: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0086 val_mae=0.0038 kWh val_bias=-0.0012 kWh (-1.5%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-18 04:53:44.285219: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0093 val_mae=0.0039 kWh val_bias=+0.0006 kWh (+0.8%) combined=0.0030 kWh ema_combined=0.0027 kWh
2026-08-18 04:53:57.414400: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0089 val_mae=0.0034 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0023 kWh ema_combined=0.0026 kWh
2026-08-18 04:54:11.751687: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0112 val_mae=0.0034 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-18 04:54:24.927230: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0108 val_mae=0.0031 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 04:54:36.176851: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0096 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-18 04:54:51.018165: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0081 val_mae=0.0031 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 04:55:00.840190: --------------- PredBat - update at 2026-08-18 04:55:00+01:00 with clock skew 0 minutes, minutes now 295
2026-08-18 04:55:00.841199: Saved current settings to /config/predbat_config.json
2026-08-18 04:55:00.841377: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 04:55:00.841556: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 04:55:00.841722: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 04:55:01.412796: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 04:55:01.412943: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 04:55:01.413155: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 04:55:01.413876: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 04:55:01.414025: Predbat mode is set to Control charge & discharge
2026-08-18 04:55:01.726647: Found 21602 load_today datapoints going back 28 days
2026-08-18 04:55:01.726993: Using load_power data to fill gaps in load_today data
2026-08-18 04:55:02.654348: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 04:55:02.654610: Zero load period starting at 2026-08-17T10:54:00+0100 (1081 minutes) for 189 minutes with base value 209.8
2026-08-18 04:55:02.655640: Processing 721 30-minute periods for power integration
2026-08-18 04:55:02.814841: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 04:55:02.815125: Car charging hold False, threshold 6.0kWh
2026-08-18 04:55:02.815250: Current data so far today: load 2.5kWh, import 9.7kWh, export 0.0kWh, PV 0kWh
2026-08-18 04:55:02.830003: Car 0 using Octopus Intelligent is unplugged
2026-08-18 04:55:02.830315: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 04:55:02.831057: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 04:55:02.831252: Standing charge is set to 46.63p
2026-08-18 04:55:03.048680: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:55:03.049000: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:55:03.049215: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 04:55:03.050513: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 04:55:03.050641: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 04:55:03.054976: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 04:55:03.055187: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 04:55:03.101509: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 04:55:03.101635: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 04:55:03.103338: High export rate found rates in range 99p to -99p
2026-08-18 04:55:03.149561: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 04:55:03.149701: Car 0 on Octopus Intelligent, no active plan
2026-08-18 04:55:03.166465: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 04:55:03.166966: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.55kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 04:55:03.426293: Today's energy total net 9.7kWh, import 9.7kWh, export 0.0kWh, cost 124.23p, import 77.6p, export 0.0p, carbon 0.0kg
2026-08-18 04:55:03.426508: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 04:55:03.540413: Using weighted-bucket historical load forecast over 14 days
2026-08-18 04:55:03.565922: Today's load divergence 92.77%, in-day adjustment 92.77%, damping 0.95x, yesterday 92.68% today 93.13% blend 79.51%
2026-08-18 04:55:03.566014: Today's predicted so far 3.55kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 3.55kWh forecast extra.
2026-08-18 04:55:03.566045: Today's actual load so far 2.45kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 04:55:03.630062: Inverter 0: Type SK Sunsynk
2026-08-18 04:55:03.630170: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 04:55:03.630382: Reserve min: 7%, battery_min: 7%
2026-08-18 04:55:03.630486: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 04:55:03.630805: Inverter 0 SoC: 13.42kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -6W, current battery voltage 51.2V, grid power -537W, load power 537W, PV Power 0W
2026-08-18 04:55:03.630992: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:55:03.631098: Inverter 0 scheduled charge enable is True
2026-08-18 04:55:03.631161: Inverter 0 charge windows currently [{'start': 0, 'end': 300, 'average': 0}, {'start': 1440, 'end': 1740, 'average': 0}, {'start': 2880, 'end': 3180, 'average': 0}]
2026-08-18 04:55:03.631274: Inverter 0 Charge settings: 08-17 23:30:00-08-18 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 04:55:03.631419: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:55:03.631481: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:55:03.631534: Inverter 0 scheduled discharge enable is False
2026-08-18 04:55:03.631678: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:55:03.631723: Inverter 0 discharge windows currently []
2026-08-18 04:55:03.631752: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:55:03.631786: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:55:03.631810: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:55:03.751083: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 04:55:03.751206: Plan was last updated on 2026-08-18 04:50:00+01:00 and is now 5.0 minutes old
2026-08-18 04:55:03.751420: Best charge window [ 18-08 04:30:00 - 18-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ]
2026-08-18 04:55:03.751489: Best export window [ ]
2026-08-18 04:55:03.752800: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 04:55:03.757558: Load divergence over 8.0 hours mean 393.85W, min 292.8W, max 660.0W, std dev 57.66W, divergence 7.32%
2026-08-18 04:55:03.797585: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 04:55:03.797836: LoadML is_calculating True
2026-08-18 04:55:03.797961: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 04:55:03.830708: predict base end_record 08-19 05:05:00, final soc 13.39kWh, metric 309.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.08kWh, PV 0.0kWh
2026-08-18 04:55:03.988698: Battery has 18.83 hours left - now at 13.42kWh
2026-08-18 04:55:04.037660: predict base10 end_record 08-19 05:05:00, final soc 13.39kWh, metric 321.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.82kWh, PV 0.0kWh
2026-08-18 04:55:04.134496: predict best10 end_record 08-19 05:05:00, final soc 1.44kWh, metric 217.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.82kWh, PV 0.0kWh
2026-08-18 04:55:04.307605: predict best end_record 08-19 05:05:00, final soc 1.51kWh, metric 207.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.08kWh, PV 0.0kWh
2026-08-18 04:55:04.308029: Saving plan best values to HA entities
2026-08-18 04:55:04.591538: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 04:55:04.597652: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 04:55:04.616721: Best charging limit SoC's [13.5, 16.0, 16.0]kWh, export []kWh gives import battery 0.59kWh, house 3.96kWh, export 0.0kWh, metric 207.28p, metric10 217.35p
2026-08-18 04:55:04.758307: Marginal costs baseline metric (no standing charge): 160.6452
2026-08-18 04:55:04.991980: Marginal energy costs matrix computed: min=22.6 max=32.63
2026-08-18 04:55:05.139933: Rate array import [{'start': 295, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1745, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 295, 'end': 1745, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 04:55:05.156543: - Your estimated bill for today is £1.27 and tomorrow is £4.48
2026-08-18 04:55:05.156886: - Import rates are cheap (8.0p) for the next 35 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 04:55:05.156923: - The battery is currently at 84% and is charging to 84% for the next 5 minutes.
2026-08-18 04:55:05.156953: - For the next 48 hours there will be no solar generation.
2026-08-18 04:55:05.156978: - You will run out of battery in 18 hours.
2026-08-18 04:55:05.157008:
2026-08-18 04:55:05.191994: Plan calculation took 1.44 seconds
2026-08-18 04:55:05.196517: No high rate period found
2026-08-18 04:55:05.281330: Import threshold used for optimisation was 8.0p
2026-08-18 04:55:05.356997: Low import rate windows [0: 08-18 04:30:00 - 08-18 05:00:00 @ 8.0, 1: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 2: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 3: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 4: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 5: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 6: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 7: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 8: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 9: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 10: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 11: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 12: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 13: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 14: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 15: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 16: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 17: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 18: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 19: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 20: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 21: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 22: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 23: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 24: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0]
2026-08-18 04:55:05.371683: Include original charge start 08-17 23:30:00, keeping this instead of new start 08-18 04:30:00
2026-08-18 04:55:05.371805: Inverter 0 Charge window will be: 2026-08-17 23:30:00+01:00 - 2026-08-18 05:00:00+01:00 - current SoC 84%, target 84%
2026-08-18 04:55:05.371943: Inverter 0 Target SoC 84%, (this inverter 84%), battery temperature 20°C, select charge rate 5000W (real 5000W), current charge rate 5000W
2026-08-18 04:55:05.372024: Inverter 0 Hold charging as SoC 84% is above target SoC 84% (global soc target 84%) set_discharge_during_charge True
2026-08-18 04:55:05.372133: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:55:05.372312: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:55:05.372454: No export window planned
2026-08-18 04:55:05.372575: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 04:55:05.372612: Adjust idle time, charge 23:30:00-05:00:00 discharge 00:00:00-00:00:00
2026-08-18 04:55:05.372750: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 04:55:05.372827: Inverter 0 setting charging SoC to 84% as per target
2026-08-18 04:55:05.372880: Inverter 0 adjust target SoC for charge to 84% (13.44kWh/16.0kWh 16.0kWh) based on going from 84% -> 84% total add is 0.02kWh and this battery needs to add 0.02kWh to get to 13.44kWh
2026-08-18 04:55:05.372932: Inverter 0 Current Target SoC is 84%, already at target
2026-08-18 04:55:05.373018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373059: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373087: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373324: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373364: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373494: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373543: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373636: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373677: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373743: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373781: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373838: Inverter 0 Skipped service charge_start_service domain charge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.373993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.374101: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.374203: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.374317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.374428: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.374579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.374691: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 04:55:05.374795: Inverter 0 count register writes 0
2026-08-18 04:55:05.401766: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 04:55:05.409412: Total inverter register writes now 865
2026-08-18 04:55:05.473738: Info: Completed run status Hold charging
2026-08-18 04:55:05.481087: Info: record_status Hold charging target 84%-84%
2026-08-18 04:55:05.490024: Saved current settings to /config/predbat_config.json
2026-08-18 04:55:05.490339: Compare, best tariff: current metric 129.87p
2026-08-18 04:55:09.564578: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0083 val_mae=0.0031 kWh val_bias=-0.0008 kWh (-1.0%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 04:55:22.277867: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0075 val_mae=0.0027 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-18 04:55:34.202705: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0076 val_mae=0.0026 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 04:55:44.221917: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0066 val_mae=0.0029 kWh val_bias=+0.0011 kWh (+1.4%) combined=0.0023 kWh ema_combined=0.0020 kWh
2026-08-18 04:55:45.692244: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 04:55:45.837360: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 04:55:49.628028: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:55:49.628287: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:55:49.628350: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:55:49.628746: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:55:49.628875: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:55:49.628984: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:55:49.629122: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:56:01.932476: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0071 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-18 04:56:15.433884: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0063 val_mae=0.0025 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-18 04:56:28.231229: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0059 val_mae=0.0027 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-18 04:56:42.660126: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0058 val_mae=0.0023 kWh val_bias=+0.0004 kWh (+0.5%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-18 04:56:57.797299: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0058 val_mae=0.0025 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-18 04:57:11.694386: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 04:57:24.229394: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0052 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.6%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 04:57:37.631121: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0056 val_mae=0.0028 kWh val_bias=-0.0016 kWh (-2.0%) combined=0.0024 kWh ema_combined=0.0018 kWh
2026-08-18 04:57:50.821246: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0053 val_mae=0.0022 kWh val_bias=-0.0007 kWh (-0.9%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 04:58:04.028267: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 04:58:04.028828: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 04:58:04.029047: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 04:58:04.029425: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 04:58:04.029646: Note: Inverter does not support discharge freeze - disabled
2026-08-18 04:58:04.029860: Note: Inverter does not support charge freeze - disabled
2026-08-18 04:58:04.030040: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 04:58:05.825488: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0050 val_mae=0.0021 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-18 04:58:18.585082: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0011 kWh ema_combined=0.0015 kWh
2026-08-18 04:58:29.433813: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0056 val_mae=0.0020 kWh val_bias=+0.0002 kWh (+0.2%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 04:58:31.885739: Info: HAHistory: Pruning history data started.
2026-08-18 04:58:31.888793: Info: HAHistory: Pruning history data completed.
2026-08-18 04:58:41.488344: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0013 kWh
2026-08-18 04:58:53.861283: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0021 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 04:58:53.862419: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.4%)
2026-08-18 04:58:53.862694: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.4%)
2026-08-18 04:58:54.939435: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0002 kWh (-0.2%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 04:58:54.944098: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0020 kWh
2026-08-18 04:58:55.008116: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-18 04:58:55.008398: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 04:58:55.689223: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 04:59:00.418405: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 04:59:00.469901: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7251 std=4.5850) import_rate(mean=16.7043 std=8.3562) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-18 04:59:00.549871: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 04:59:00.562591: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 04:59:00.587559: ML Predictor: Baseline (pre-finetune) val_mae=0.0029 kWh val_bias=-0.0004 kWh
2026-08-18 04:59:12.367634: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0090 val_mae=0.0044 kWh val_bias=-0.0017 kWh (-3.0%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-18 04:59:25.261082: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0128 val_mae=0.0046 kWh val_bias=-0.0008 kWh (-1.4%) combined=0.0033 kWh ema_combined=0.0029 kWh
2026-08-18 04:59:39.600705: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0142 val_mae=0.0034 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0021 kWh ema_combined=0.0027 kWh
2026-08-18 04:59:52.134806: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0105 val_mae=0.0031 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-18 05:00:00.673293: --------------- PredBat - update at 2026-08-18 05:00:00+01:00 with clock skew 0 minutes, minutes now 300
2026-08-18 05:00:00.674750: Saved current settings to /config/predbat_config.json
2026-08-18 05:00:00.675020: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 05:00:00.675300: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:00:00.675549: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:00:00.721867: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:00:00.722152: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:00:00.722477: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:00:00.723283: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:00:00.723569: Predbat mode is set to Control charge & discharge
2026-08-18 05:00:01.020789: Found 21602 load_today datapoints going back 27 days
2026-08-18 05:00:01.020920: Using load_power data to fill gaps in load_today data
2026-08-18 05:00:02.578912: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:00:02.592099: Zero load period starting at 2026-08-17T10:54:00+0100 (1086 minutes) for 189 minutes with base value 209.75
2026-08-18 05:00:02.593242: Processing 721 30-minute periods for power integration
2026-08-18 05:00:02.933820: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:00:02.933952: Car charging hold False, threshold 6.0kWh
2026-08-18 05:00:02.934006: Current data so far today: load 2.55kWh, import 9.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:00:02.973172: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:00:02.973451: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:00:02.974595: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:00:02.976015: Standing charge is set to 46.63p
2026-08-18 05:00:03.239625: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:00:03.239978: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:00:03.240172: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:00:03.241230: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:00:03.241347: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:00:03.246768: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:00:03.247080: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:00:03.298199: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:00:03.298327: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:00:03.299798: High export rate found rates in range 99p to -99p
2026-08-18 05:00:03.334084: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:00:03.334532: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:00:03.348551: Battery level now 13.42kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -0.11p, change today 45.25p, rate_forward 6.87p
2026-08-18 05:00:03.349027: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.58kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:00:03.436124: Today's energy total net 9.8kWh, import 9.8kWh, export 0.0kWh, cost 125.03p, import 78.4p, export 0.0p, carbon 0.0kg
2026-08-18 05:00:03.436370: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:00:03.570973: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:00:03.652548: Today's load divergence 92.46%, in-day adjustment 92.71%, damping 0.95x, yesterday 92.68% today 92.84% blend 79.17%
2026-08-18 05:00:03.652785: Today's predicted so far 3.67kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 3.67kWh forecast extra.
2026-08-18 05:00:03.652926: Today's actual load so far 2.53kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 05:00:03.751940: Inverter 0: Type SK Sunsynk
2026-08-18 05:00:03.752037: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:00:03.752338: Reserve min: 7%, battery_min: 7%
2026-08-18 05:00:03.752576: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:00:03.752988: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 0W, current battery power -7W, current battery voltage 51.2V, grid power -529W, load power 529W, PV Power 0W
2026-08-18 05:00:03.753257: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as True == True
2026-08-18 05:00:03.753450: Inverter 0 scheduled charge enable is True
2026-08-18 05:00:03.753565: Inverter 0 charge windows currently [{'start': 1410, 'end': 1740, 'average': 0}, {'start': 2850, 'end': 3180, 'average': 0}]
2026-08-18 05:00:03.753786: Inverter 0 Charge settings: 08-18 23:30:00-08-19 05:00:00, limit 84.0%, power 5.0kW
2026-08-18 05:00:03.754062: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:00:03.754115: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:00:03.754374: Inverter 0 scheduled discharge enable is False
2026-08-18 05:00:03.754653: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:00:03.754707: Inverter 0 discharge windows currently []
2026-08-18 05:00:03.754907: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:00:03.754951: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:00:03.755018: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:00:03.888293: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:00:03.888417: Plan was last updated on 2026-08-18 04:50:00+01:00 and is now 10.0 minutes old
2026-08-18 05:00:03.888487: Current charge window has expired, removing it
2026-08-18 05:00:03.888683: Best charge window [ 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ]
2026-08-18 05:00:03.888736: Best export window [ ]
2026-08-18 05:00:03.890109: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:00:03.896810: Load divergence over 8.0 hours mean 395.34W, min 281.4W, max 651.6W, std dev 57.78W, divergence 7.31%
2026-08-18 05:00:03.945377: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:00:03.945526: LoadML is_calculating True
2026-08-18 05:00:03.945560: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 05:00:04.050030: predict base end_record 08-19 05:10:00, final soc 13.35kWh, metric 309.19p, metric_keep 0kWh, min_soc 1.45kWh @ 08-18 23:25:00, load 18.12kWh, PV 0.0kWh
2026-08-18 05:00:04.323952: Battery has 48.0 hours left - now at 13.44kWh
2026-08-18 05:00:04.386255: predict base10 end_record 08-19 05:10:00, final soc 13.34kWh, metric 321.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.86kWh, PV 0.0kWh
2026-08-18 05:00:04.530659: predict best10 end_record 08-19 05:10:00, final soc 1.77kWh, metric 221.66p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.86kWh, PV 0.0kWh
2026-08-18 05:00:04.729065: predict best end_record 08-19 05:10:00, final soc 1.9kWh, metric 211.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.12kWh, PV 0.0kWh
2026-08-18 05:00:04.738507: Saving plan best values to HA entities
2026-08-18 05:00:05.113601: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:00:05.130399: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 05:00:05.157674: Best charging limit SoC's [16.0, 16.0]kWh, export []kWh gives import battery 0.92kWh, house 4.01kWh, export 0.0kWh, metric 211.08p, metric10 221.66p
2026-08-18 05:00:05.272993: Marginal costs baseline metric (no standing charge): 164.4496
2026-08-18 05:00:05.761605: Marginal energy costs matrix computed: min=25.85 max=32.76
2026-08-18 05:00:05.939991: Rate array import [{'start': 300, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1750, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 300, 'end': 1750, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:00:05.940849: - Your estimated bill for today is £1.26 and tomorrow is £4.48
2026-08-18 05:00:05.940902: - Import rates are cheap (8.0p) for the next 30 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:00:05.940926: - The battery is currently at 84% and is in eco mode for the next 24 hours.
2026-08-18 05:00:05.940945: - For the next 48 hours there will be no solar generation.
2026-08-18 05:00:05.941042: - You will run out of battery in 18 hours.
2026-08-18 05:00:05.941079: - Your next charge slot will be in 24 hours where import rates will be cheap (8.0p).
2026-08-18 05:00:05.941129:
2026-08-18 05:00:05.981667: Plan calculation took 2.09 seconds
2026-08-18 05:00:05.985023: No high rate period found
2026-08-18 05:00:06.079584: Import threshold used for optimisation was 8.0p
2026-08-18 05:00:06.221695: Low import rate windows [0: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 1: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 2: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 3: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 4: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 5: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 6: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 7: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 8: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 9: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 10: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 11: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 12: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 13: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 14: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 15: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 16: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 17: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 18: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 19: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 20: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 21: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 22: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 23: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0]
2026-08-18 05:00:06.231242: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:00:00 target set_window_minutes 30 charge start time 08-19 05:00:00)
2026-08-18 05:00:06.240967: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:00:06.241333: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:00:11.273546: Inverter 0 Wrote scheduled_charge_enable to False successfully and got off
2026-08-18 05:00:11.273688: Inverter 0 Turning off scheduled charge
2026-08-18 05:00:11.273916: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:00:11.274201: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:00:16.287416: Inverter 0 write_and_poll_value: Wrote 00:00:00 to charge_start_time, successfully now 00:00:00
2026-08-18 05:00:18.890998: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0092 val_mae=0.0031 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-18 05:00:21.296626: Inverter 0 write_and_poll_value: Wrote 00:00:00 to charge_end_time, successfully now 00:00:00
2026-08-18 05:00:21.296751: Inverter 0 Updated start and end charge window to 00:00:00 - 00:00:00 (old 23:30:00 - 05:00:00)
2026-08-18 05:00:21.296804: No export window planned
2026-08-18 05:00:21.296987: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:00:21.297036: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:00:21.297279: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:00:21.297415: Inverter 0 current discharge rate is 0W and new target is 5000W
2026-08-18 05:00:26.309593: Inverter 0 write_and_poll_value: Wrote 5000 to discharge_rate, successfully now 5000.0
2026-08-18 05:00:31.437525: Inverter 0 write_and_poll_value: Wrote 98.0 to timed_discharge_current, successfully now 98.0
2026-08-18 05:00:31.437876: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:00:31.438042: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:00:31.438258: Inverter 0 Current charge limit is 84% and new target is 7%
2026-08-18 05:00:36.515198: Inverter 0 write_and_poll_value: Wrote 7 to charge_limit, successfully now 7.0
2026-08-18 05:00:36.515575: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog1_charge', 'option': 'Allow Gen'}
2026-08-18 05:00:36.617680: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog2_charge', 'option': 'Allow Gen'}
2026-08-18 05:00:36.722498: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog3_charge', 'option': 'Allow Gen'}
2026-08-18 05:00:36.842480: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog4_charge', 'option': 'Allow Gen'}
2026-08-18 05:00:36.937676: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog5_charge', 'option': 'Allow Gen'}
2026-08-18 05:00:37.045125: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_prog6_charge', 'option': 'Allow Gen'}
2026-08-18 05:00:37.125831: Inverter 0 Calling service charge_stop_service domain charge service_name select/select_option with data {'entity_id': 'select.sunsynk_load_limit', 'option': 'Zero Export'}
2026-08-18 05:00:37.147189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:37.147433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:37.147621: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:37.147746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:37.147856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:37.148064: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:37.148310: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:37.148440: Inverter 0 count register writes 2
2026-08-18 05:00:37.169504: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 05:00:37.169833: Recompute is saving previous plan...
2026-08-18 05:00:37.170854: Best charge window [ 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 84%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 84%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 84%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 84%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 84%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 84%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 84%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 84%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 84%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 84%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 84%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 84%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 84%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 84%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 84%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 84%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 84%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 84%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 84%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 84%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 84% ]
2026-08-18 05:00:37.171037: Best export window [ ]
2026-08-18 05:00:37.172048: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:00:37.190708: Load divergence over 8.0 hours mean 395.34W, min 281.4W, max 651.6W, std dev 57.78W, divergence 7.31%
2026-08-18 05:00:37.207641: Calculating data from yesterday for savings calculation
2026-08-18 05:00:37.228890: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1740, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 05:00:37.338125: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 05:00:37.355138: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 05:00:37.392129: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 05:00:37.466058: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 05:00:37.612024: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 05:00:37.612225: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 05:00:37.629934: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:00:37.630034: LoadML is_calculating True
2026-08-18 05:00:37.630059: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 05:00:37.642076: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 05:00:37.642517: Optimise levels pass started at 2026-08-18 05:00:37
2026-08-18 05:00:37.642561: Optimise all windows, total charge 24 export 1
2026-08-18 05:00:38.641303: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0090 val_mae=0.0029 kWh val_bias=-0.0010 kWh (-1.8%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-18 05:00:40.192894: >> Region optimisation pass width 960 gives best_metric 297.05p, best_cost 302.83p, best_cycle 37.55kWh, best_import 22.22kWh
2026-08-18 05:00:40.508760: >> Region optimisation pass width 480 gives best_metric 297.05p, best_cost 302.83p, best_cycle 37.55kWh, best_import 22.22kWh
2026-08-18 05:00:40.973703: >> Region optimisation pass width 240 gives best_metric 297.05p, best_cost 302.83p, best_cycle 37.55kWh, best_import 22.22kWh
2026-08-18 05:00:42.119961: >> Region optimisation pass width 120 gives best_metric 297.05p, best_cost 302.83p, best_cycle 37.55kWh, best_import 22.22kWh
2026-08-18 05:00:42.120230: Calculated end_record as 08-19 05:00:00 based on best_price 8.0p, next_charge_start 08-18 05:00:00, max_windows 12
2026-08-18 05:00:42.120283: Optimise levels pass ended at 2026-08-18 05:00:42, duration 4.5 seconds tried 59 combinations
2026-08-18 05:00:42.120319: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 297.05p, best_keep 0kWh, best_cycle 37.55kWh, best_carbon 0kg, best_import 22.22kWh
2026-08-18 05:00:42.138763: Starting detailed optimisation end_record 08-19 05:00:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 05:00:52.848865: Tweak plan optimisation started metric 150.34p, cost 157.15p
2026-08-18 05:00:53.338122: Tweak optimisation finished metric 150.34p, cost 157.15p, metric_keep 0kWh, cycle 12.07kWh, carbon 0kg, import 4.01kWh, changed 8 window(s)
2026-08-18 05:00:53.363577: Swap charge optimisation started metric 150.34p, cost 157.15p, min_improvement_swap 0.1p
2026-08-18 05:00:53.425775: Swap charge optimisation finished metric 150.34p, cost 157.15p
2026-08-18 05:00:53.518689: Pruned 1 dead plan slot(s) in 1 trial(s), nominal metric 149.46p -> 149.39p, plan now metric 151.14p, cost 157.09p, cycle 11.95kWh, import 4.01kWh
2026-08-18 05:00:53.538294: Raw charge windows [ 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:00:53.538586: Unclipped charge windows [ 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:00:53.538717: Unfiltered charge windows [ 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:00:53.538831: Filtered charge windows [ 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:00:53.603548: Previous plan best metric is 150.34 (cost 157.15) and new plan best metric is 150.34 (cost 157.15)
2026-08-18 05:00:53.616104: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 05:00:53.616225: Plan valid is now true after recompute was False
2026-08-18 05:00:53.668642: predict base end_record 08-19 05:00:00, final soc 13.44kWh, metric 309.19p, metric_keep 0kWh, min_soc 1.45kWh @ 08-18 23:25:00, load 18.03kWh, PV 0.0kWh
2026-08-18 05:00:53.868117: Battery has 48.0 hours left - now at 13.44kWh
2026-08-18 05:00:53.920641: predict base10 end_record 08-19 05:00:00, final soc 13.44kWh, metric 321.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.76kWh, PV 0.0kWh
2026-08-18 05:00:54.080854: predict best10 end_record 08-19 05:00:00, final soc 1.12kWh, metric 215.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.76kWh, PV 0.0kWh
2026-08-18 05:00:54.219072: predict best end_record 08-19 05:00:00, final soc 1.12kWh, metric 203.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.03kWh, PV 0.0kWh
2026-08-18 05:00:54.219168: Saving plan best values to HA entities
2026-08-18 05:00:54.481401: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:00:54.489985: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 05:00:54.506402: Best charging limit SoC's [16.0, 16.0]kWh, export []kWh gives import battery 0kWh, house 4.01kWh, export 0.0kWh, metric 203.72p, metric10 215.38p
2026-08-18 05:00:54.642943: Marginal costs baseline metric (no standing charge): 157.0861
2026-08-18 05:00:55.077665: Marginal energy costs matrix computed: min=25.85 max=32.76
2026-08-18 05:00:55.247157: Rate array import [{'start': 300, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1740, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 300, 'end': 1740, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:00:55.248407: - Your estimated bill for today is £1.26 and tomorrow is £4.48
2026-08-18 05:00:55.248484: - Import rates are cheap (8.0p) for the next 30 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:00:55.248511: - The battery is currently at 84% and is in eco mode for the next 24 hours.
2026-08-18 05:00:55.255245: - For the next 48 hours there will be no solar generation.
2026-08-18 05:00:55.255334: - You will run out of battery in 18 hours.
2026-08-18 05:00:55.255358: - Your next charge slot will be in 24 hours where import rates will be cheap (8.0p).
2026-08-18 05:00:55.255414:
2026-08-18 05:00:55.304560: Plan calculation took 18.13 seconds
2026-08-18 05:00:55.304830: Inverter 0: Type SK Sunsynk
2026-08-18 05:00:55.304878: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:00:55.305148: Reserve min: 7%, battery_min: 7%
2026-08-18 05:00:55.305260: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:00:55.305746: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 5250W, current battery power -8W, current battery voltage 51.2V, grid power -529W, load power 529W, PV Power 0W
2026-08-18 05:00:55.305990: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:00:55.306118: Inverter 0 scheduled charge enable is False
2026-08-18 05:00:55.306192: Inverter 0 charge windows currently []
2026-08-18 05:00:55.306251: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:00:55.306458: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:00:55.306530: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:00:55.306673: Inverter 0 scheduled discharge enable is False
2026-08-18 05:00:55.306902: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:00:55.306952: Inverter 0 discharge windows currently []
2026-08-18 05:00:55.307249: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:00:55.307290: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:00:55.307347: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:00:55.409445: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:00:00 target set_window_minutes 30 charge start time 08-19 05:00:00)
2026-08-18 05:00:55.409659: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:00:55.410141: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:00:55.410392: No export window planned
2026-08-18 05:00:55.410695: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:00:55.410824: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:00:55.411212: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:00:55.411560: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:00:55.411763: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:00:55.411979: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:00:55.412226: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.412415: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.412606: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.412785: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.417008: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.417281: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.417457: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.417721: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.417896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.418068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.418235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.418412: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.418597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.418763: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:00:55.418870: Inverter 0 count register writes 0
2026-08-18 05:00:55.474724: Total inverter register writes now 867
2026-08-18 05:00:55.553085: Info: Completed run status Demand
2026-08-18 05:00:55.928375: Info: record_status Demand
2026-08-18 05:00:55.941034: Saved current settings to /config/predbat_config.json
2026-08-18 05:00:55.941213: Compare, best tariff: current metric 129.87p
2026-08-18 05:01:04.903159: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0093 val_mae=0.0031 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-18 05:01:18.002303: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0091 val_mae=0.0029 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 05:01:31.219057: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0093 val_mae=0.0035 kWh val_bias=+0.0015 kWh (+2.6%) combined=0.0037 kWh ema_combined=0.0025 kWh
2026-08-18 05:01:34.164667: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:01:34.165340: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:01:34.165408: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:01:34.165605: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:01:34.165657: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:01:34.165761: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:01:34.165890: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:01:43.910808: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0105 val_mae=0.0032 kWh val_bias=+0.0011 kWh (+2.0%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-18 05:01:43.910921: ML Predictor: Early stopping at epoch 10
2026-08-18 05:01:43.912177: ML Predictor: Restored best weights from epoch with val_mae=0.0029 kWh val_bias=-0.0004 kWh (-0.8%)
2026-08-18 05:01:43.912323: ML Predictor: Training complete, final val_mae=0.0029 kWh val_bias=-0.0004 kWh (-0.8%)
2026-08-18 05:01:44.758378: ML Predictor: AR rollout over holdout: ar_mae=0.0035 kWh ar_bias=-0.0003 kWh (-0.5%) [drift vs teacher-forced: +0.0006 kWh]
2026-08-18 05:01:44.762090: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0029 kWh
2026-08-18 05:01:44.822179: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-18 05:01:44.822270: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 05:01:45.397377: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 05:01:50.079740: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 05:01:50.132438: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7161 std=4.5826) import_rate(mean=16.6662 std=8.3583) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-18 05:01:50.215195: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 05:01:50.229523: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 05:01:50.253310: ML Predictor: Baseline (pre-finetune) val_mae=0.0051 kWh val_bias=-0.0005 kWh
2026-08-18 05:02:02.004096: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0112 val_mae=0.0056 kWh val_bias=-0.0005 kWh (-1.3%) combined=0.0031 kWh ema_combined=0.0031 kWh
2026-08-18 05:02:15.921597: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0138 val_mae=0.0059 kWh val_bias=-0.0032 kWh (-7.4%) combined=0.0057 kWh ema_combined=0.0039 kWh
2026-08-18 05:02:30.468000: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0141 val_mae=0.0058 kWh val_bias=+0.0002 kWh (+0.6%) combined=0.0031 kWh ema_combined=0.0037 kWh
2026-08-18 05:02:44.534549: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0120 val_mae=0.0048 kWh val_bias=-0.0016 kWh (-3.7%) combined=0.0031 kWh ema_combined=0.0035 kWh
2026-08-18 05:02:58.589265: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0107 val_mae=0.0048 kWh val_bias=-0.0012 kWh (-2.7%) combined=0.0033 kWh ema_combined=0.0034 kWh
2026-08-18 05:03:15.515957: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0120 val_mae=0.0049 kWh val_bias=-0.0016 kWh (-3.6%) combined=0.0038 kWh ema_combined=0.0035 kWh
2026-08-18 05:03:29.681377: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0110 val_mae=0.0046 kWh val_bias=-0.0006 kWh (-1.5%) combined=0.0026 kWh ema_combined=0.0033 kWh
2026-08-18 05:03:43.428361: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0099 val_mae=0.0045 kWh val_bias=+0.0014 kWh (+3.2%) combined=0.0037 kWh ema_combined=0.0034 kWh
2026-08-18 05:03:48.710854: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:03:48.711117: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:03:48.711283: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:03:48.711589: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:03:48.711731: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:03:48.711852: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:03:48.711996: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:03:57.421877: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0113 val_mae=0.0042 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0029 kWh ema_combined=0.0032 kWh
2026-08-18 05:04:10.925200: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0104 val_mae=0.0039 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-18 05:04:25.950128: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0100 val_mae=0.0041 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0025 kWh ema_combined=0.0028 kWh
2026-08-18 05:04:39.579992: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0086 val_mae=0.0040 kWh val_bias=+0.0002 kWh (+0.6%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-18 05:04:53.190209: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0085 val_mae=0.0042 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0029 kWh ema_combined=0.0027 kWh
2026-08-18 05:05:00.999834: --------------- PredBat - update at 2026-08-18 05:05:00+01:00 with clock skew 0 minutes, minutes now 305
2026-08-18 05:05:01.000749: Saved current settings to /config/predbat_config.json
2026-08-18 05:05:01.000893: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 05:05:01.001038: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:05:01.001229: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:05:01.036613: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:05:01.036881: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:05:01.037173: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:05:01.037897: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:05:01.042817: Predbat mode is set to Control charge & discharge
2026-08-18 05:05:01.411657: Found 21602 load_today datapoints going back 27 days
2026-08-18 05:05:01.411784: Using load_power data to fill gaps in load_today data
2026-08-18 05:05:02.578048: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:05:02.596728: Zero load period starting at 2026-08-17T10:54:00+0100 (1091 minutes) for 189 minutes with base value 209.7
2026-08-18 05:05:02.598466: Processing 721 30-minute periods for power integration
2026-08-18 05:05:02.918296: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:05:02.918546: Car charging hold False, threshold 6.0kWh
2026-08-18 05:05:02.918635: Current data so far today: load 2.6kWh, import 9.8kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:05:02.939846: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:05:02.940291: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:05:02.941361: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:05:02.943036: Standing charge is set to 46.63p
2026-08-18 05:05:03.299387: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:05:03.300010: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:05:03.318054: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:05:03.320118: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:05:03.320419: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:05:03.332459: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:05:03.333192: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:05:03.467549: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:05:03.467860: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:05:03.470237: High export rate found rates in range 99p to -99p
2026-08-18 05:05:03.552033: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:05:03.552597: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:05:03.590867: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 05:05:03.591595: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:05:03.696663: Today's energy total net 9.8kWh, import 9.8kWh, export 0.0kWh, cost 125.03p, import 78.4p, export 0.0p, carbon 0.0kg
2026-08-18 05:05:03.696805: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:05:03.782550: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:05:03.805552: Today's load divergence 92.25%, in-day adjustment 92.67%, damping 0.95x, yesterday 92.68% today 92.64% blend 78.82%
2026-08-18 05:05:03.805716: Today's predicted so far 3.76kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 3.76kWh forecast extra.
2026-08-18 05:05:03.805753: Today's actual load so far 2.59kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 05:05:03.847239: Inverter 0: Type SK Sunsynk
2026-08-18 05:05:03.847327: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:05:03.847521: Reserve min: 7%, battery_min: 7%
2026-08-18 05:05:03.847598: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:05:03.847926: Inverter 0 SoC: 13.44kW 84%, current charge rate 5000W, current discharge rate 5250W, current battery power 451W, current battery voltage 51.2V, grid power -55W, load power 515W, PV Power 0W
2026-08-18 05:05:03.848133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:05:03.848263: Inverter 0 scheduled charge enable is False
2026-08-18 05:05:03.848305: Inverter 0 charge windows currently []
2026-08-18 05:05:03.848401: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:05:03.848584: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:05:03.848647: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:05:03.848755: Inverter 0 scheduled discharge enable is False
2026-08-18 05:05:03.848941: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:05:03.848983: Inverter 0 discharge windows currently []
2026-08-18 05:05:03.849068: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:05:03.849103: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:05:03.849158: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:05:03.920823: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:05:03.921051: Plan was last updated on 2026-08-18 05:00:00+01:00 and is now 5.0 minutes old
2026-08-18 05:05:03.921333: Best charge window [ 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ]
2026-08-18 05:05:03.921458: Best export window [ ]
2026-08-18 05:05:03.922667: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:05:03.927457: Load divergence over 8.0 hours mean 396.78W, min 263.4W, max 664.2W, std dev 61.83W, divergence 7.79%
2026-08-18 05:05:03.952449: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:05:03.952722: LoadML is_calculating True
2026-08-18 05:05:03.952836: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 05:05:03.997038: predict base end_record 08-19 05:05:00, final soc 1.12kWh, metric 203.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.08kWh, PV 0.0kWh
2026-08-18 05:05:04.245801: Battery has 18.75 hours left - now at 13.44kWh
2026-08-18 05:05:04.313781: predict base10 end_record 08-19 05:05:00, final soc 1.12kWh, metric 213.98p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.82kWh, PV 0.0kWh
2026-08-18 05:05:04.421956: predict best10 end_record 08-19 05:05:00, final soc 1.44kWh, metric 216.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.82kWh, PV 0.0kWh
2026-08-18 05:05:04.536686: predict best end_record 08-19 05:05:00, final soc 1.51kWh, metric 207.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.08kWh, PV 0.0kWh
2026-08-18 05:05:04.536918: Saving plan best values to HA entities
2026-08-18 05:05:04.840391: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:05:04.850776: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 05:05:04.862330: Best charging limit SoC's [16.0, 16.0]kWh, export []kWh gives import battery 0.46kWh, house 3.96kWh, export 0.0kWh, metric 207.07p, metric10 216.76p
2026-08-18 05:05:04.995852: Marginal costs baseline metric (no standing charge): 160.4354
2026-08-18 05:05:05.327767: Marginal energy costs matrix computed: min=24.45 max=32.59
2026-08-18 05:05:05.481172: Rate array import [{'start': 305, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1745, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 305, 'end': 1745, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:05:05.497084: - Your estimated bill for today is £1.26 and tomorrow is £4.48
2026-08-18 05:05:05.497164: - Import rates are cheap (8.0p) for the next 25 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:05:05.497194: - The battery is currently at 84% and is in eco mode for the next 23 hours.
2026-08-18 05:05:05.497220: - For the next 48 hours there will be no solar generation.
2026-08-18 05:05:05.497245: - You will run out of battery in 18 hours.
2026-08-18 05:05:05.497270: - Your next charge slot will be in 23 hours where import rates will be cheap (8.0p).
2026-08-18 05:05:05.497318:
2026-08-18 05:05:05.532016: Plan calculation took 1.61 seconds
2026-08-18 05:05:05.535045: No high rate period found
2026-08-18 05:05:05.610042: Import threshold used for optimisation was 8.0p
2026-08-18 05:05:05.688662: Low import rate windows [0: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 1: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 2: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 3: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 4: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 5: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 6: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 7: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 8: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 9: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 10: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 11: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 12: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 13: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 14: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 15: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 16: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 17: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 18: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 19: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 20: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 21: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 22: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 23: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 24: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:05:05.701270: Inverter 0 Charge window will be: 2026-08-19 05:00:00+01:00 - 2026-08-19 05:30:00+01:00 - current SoC 84%, target 100%
2026-08-18 05:05:05.701526: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:05:00 target set_window_minutes 30 charge start time 08-19 05:00:00) original inverter start time 08-20 00:00:00
2026-08-18 05:05:05.701660: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:05:05.701935: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:05:05.702073: No export window planned
2026-08-18 05:05:05.702250: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:05:05.702298: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:05:05.702568: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:05:05.702803: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:05:05.702866: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:05:05.703009: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:05:05.703151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703206: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703326: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703377: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703460: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703596: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.703861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.704005: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.704098: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.704220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.704302: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.704352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:05:05.704430: Inverter 0 count register writes 0
2026-08-18 05:05:05.728514: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 05:05:05.736321: Total inverter register writes now 867
2026-08-18 05:05:05.814813: Info: Completed run status Demand
2026-08-18 05:05:05.834196: Info: record_status Demand
2026-08-18 05:05:05.879051: Saved current settings to /config/predbat_config.json
2026-08-18 05:05:05.879292: Compare, best tariff: current metric 129.87p
2026-08-18 05:05:13.890135: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0080 val_mae=0.0035 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0024 kWh
2026-08-18 05:05:27.557101: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0076 val_mae=0.0036 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-18 05:05:40.475868: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0076 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 05:05:49.032676: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:05:49.032962: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:05:49.033014: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:05:49.033181: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:05:49.033228: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:05:49.033257: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:05:49.033282: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:05:55.114072: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0077 val_mae=0.0031 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0020 kWh ema_combined=0.0022 kWh
2026-08-18 05:06:08.959667: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0064 val_mae=0.0033 kWh val_bias=+0.0006 kWh (+1.4%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-18 05:06:23.245466: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0062 val_mae=0.0031 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0023 kWh ema_combined=0.0023 kWh
2026-08-18 05:06:40.760284: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0062 val_mae=0.0029 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-18 05:06:54.735584: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0060 val_mae=0.0030 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0025 kWh ema_combined=0.0022 kWh
2026-08-18 05:07:08.518939: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0058 val_mae=0.0028 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0019 kWh ema_combined=0.0021 kWh
2026-08-18 05:07:22.564234: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0056 val_mae=0.0028 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 05:07:37.347405: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0059 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.7%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 05:07:49.392512: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:07:49.392776: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:07:49.392842: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:07:49.393011: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:07:49.393064: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:07:49.393086: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:07:49.393105: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:07:50.682165: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0056 val_mae=0.0027 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-18 05:08:04.833084: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0027 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-18 05:08:18.100048: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0013 kWh ema_combined=0.0017 kWh
2026-08-18 05:08:32.350683: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0052 val_mae=0.0026 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 05:08:45.803539: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0053 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 05:08:59.280309: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0047 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 05:08:59.287626: ML Predictor: Restored best weights from epoch with val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-18 05:08:59.287861: ML Predictor: Training complete, final val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.4%)
2026-08-18 05:09:00.603052: ML Predictor: AR rollout over holdout: ar_mae=0.0076 kWh ar_bias=-0.0002 kWh (-0.5%) [drift vs teacher-forced: +0.0050 kWh]
2026-08-18 05:09:00.609047: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0026 kWh
2026-08-18 05:09:00.609232: ML Predictor: Curriculum final pass 5/5: full dataset (59.6 days)
2026-08-18 05:09:00.609410: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 05:09:01.292300: ML Predictor: Creating dataset with 1430 hours of training data, 48 hours validation
2026-08-18 05:09:06.682609: ML Predictor: Created 16880 training samples, 576 validation samples
2026-08-18 05:09:06.741597: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7061 std=4.5788) import_rate(mean=16.6397 std=8.3701) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1944 std=0.5281)
2026-08-18 05:09:06.836649: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 05:09:06.851446: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 05:09:06.921831: ML Predictor: Baseline (pre-finetune) val_mae=0.0038 kWh val_bias=-0.0001 kWh
2026-08-18 05:09:19.858264: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0100 val_mae=0.0037 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 05:09:34.712284: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0128 val_mae=0.0044 kWh val_bias=-0.0012 kWh (-2.8%) combined=0.0028 kWh ema_combined=0.0022 kWh
2026-08-18 05:09:48.552820: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0123 val_mae=0.0040 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 05:09:49.510399: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:09:49.510755: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:09:49.510813: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:09:49.511121: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:09:49.511186: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:09:49.511309: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:09:49.511393: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:10:00.732089: --------------- PredBat - update at 2026-08-18 05:10:00+01:00 with clock skew 0 minutes, minutes now 310
2026-08-18 05:10:00.733149: Saved current settings to /config/predbat_config.json
2026-08-18 05:10:00.733386: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 05:10:00.733562: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:10:00.733758: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:10:00.765207: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:10:00.765515: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:10:00.765873: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:10:00.766615: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:10:00.766871: Predbat mode is set to Control charge & discharge
2026-08-18 05:10:01.089305: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:10:01.089633: Using load_power data to fill gaps in load_today data
2026-08-18 05:10:02.412453: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:10:02.412681: Zero load period starting at 2026-08-17T10:54:00+0100 (1096 minutes) for 189 minutes with base value 209.675
2026-08-18 05:10:02.413890: Processing 721 30-minute periods for power integration
2026-08-18 05:10:02.748269: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:10:02.748539: Car charging hold False, threshold 6.0kWh
2026-08-18 05:10:02.748690: Current data so far today: load 2.65kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:10:02.763140: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:10:02.763298: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:10:02.764142: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:10:02.764304: Standing charge is set to 46.63p
2026-08-18 05:10:02.986276: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:10:02.986963: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:10:02.987232: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:10:02.988257: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:10:02.988535: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:10:02.993122: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:10:02.993417: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:10:03.035952: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:10:03.036094: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:10:03.037225: High export rate found rates in range 99p to -99p
2026-08-18 05:10:03.094120: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:10:03.094293: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:10:03.127102: Battery level now 13.44kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour 0.0p, change today 45.36p, rate_forward 6.87p
2026-08-18 05:10:03.127631: Last hour: net energy 0.48kWh, import 0.48kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 3.8p, import 3.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:10:03.233746: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:10:03.233925: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:10:03.422960: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:10:03.448834: Today's load divergence 92.44%, in-day adjustment 92.71%, damping 0.95x, yesterday 92.68% today 92.82% blend 78.47%
2026-08-18 05:10:03.449184: Today's predicted so far 3.76kWh with 0.0kWh car/iBoost excluded, 7.43kWh import ignored, and 3.76kWh forecast extra.
2026-08-18 05:10:03.449294: Today's actual load so far 2.62kWh with 0.0kWh car/iBoost excluded, and 7.43kWh import ignored.
2026-08-18 05:10:03.501326: Inverter 0: Type SK Sunsynk
2026-08-18 05:10:03.501412: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:10:03.501597: Reserve min: 7%, battery_min: 7%
2026-08-18 05:10:03.501674: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:10:03.501929: Inverter 0 SoC: 13.28kW 83%, current charge rate 5000W, current discharge rate 5250W, current battery power 450W, current battery voltage 51.2V, grid power -55W, load power 512W, PV Power 0W
2026-08-18 05:10:03.502078: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:10:03.502164: Inverter 0 scheduled charge enable is False
2026-08-18 05:10:03.502204: Inverter 0 charge windows currently []
2026-08-18 05:10:03.502231: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:10:03.502337: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:10:03.502375: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:10:03.502410: Inverter 0 scheduled discharge enable is False
2026-08-18 05:10:03.502537: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:10:03.502592: Inverter 0 discharge windows currently []
2026-08-18 05:10:03.502617: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:10:03.502643: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:10:03.502661: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:10:03.572903: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:10:03.573012: Plan was last updated on 2026-08-18 05:00:00+01:00 and is now 10.0 minutes old
2026-08-18 05:10:03.573161: Best charge window [ 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 100%, 19-08 23:30:00 - 20-08 05:00:00 @ 8.0p 100% ]
2026-08-18 05:10:03.573203: Best export window [ ]
2026-08-18 05:10:03.574031: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:10:03.577280: Load divergence over 8.0 hours mean 398.27W, min 262.2W, max 702.6W, std dev 61.37W, divergence 7.7%
2026-08-18 05:10:03.603796: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:10:03.604279: LoadML is_calculating True
2026-08-18 05:10:03.604350: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 05:10:03.642877: predict base end_record 08-19 05:10:00, final soc 1.12kWh, metric 205.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 18.13kWh, PV 0.0kWh
2026-08-18 05:10:03.808312: Battery has 18.5 hours left - now at 13.28kWh
2026-08-18 05:10:03.876488: predict base10 end_record 08-19 05:10:00, final soc 1.12kWh, metric 218.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.87kWh, PV 0.0kWh
2026-08-18 05:10:04.017821: predict best10 end_record 08-19 05:10:00, final soc 1.77kWh, metric 224.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 18.87kWh, PV 0.0kWh
2026-08-18 05:10:04.150681: predict best end_record 08-19 05:10:00, final soc 1.9kWh, metric 212.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 18.13kWh, PV 0.0kWh
2026-08-18 05:10:04.150892: Saving plan best values to HA entities
2026-08-18 05:10:04.472349: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:10:04.477824: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 05:10:04.495588: Best charging limit SoC's [16.0, 16.0]kWh, export []kWh gives import battery 0.92kWh, house 4.07kWh, export 0.0kWh, metric 212.4p, metric10 224.4p
2026-08-18 05:10:04.618214: Marginal costs baseline metric (no standing charge): 165.7623
2026-08-18 05:10:05.022693: Marginal energy costs matrix computed: min=27.39 max=32.96
2026-08-18 05:10:05.128724: Rate array import [{'start': 310, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1750, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 310, 'end': 1750, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:10:05.130002: - Your estimated bill for today is £1.28 and tomorrow is £4.48
2026-08-18 05:10:05.130071: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:10:05.130102: - The battery is currently at 83% and is in eco mode for the next 23 hours.
2026-08-18 05:10:05.130132: - For the next 48 hours there will be no solar generation.
2026-08-18 05:10:05.130180: - You will run out of battery in 18 hours.
2026-08-18 05:10:05.130210: - Your next charge slot will be in 23 hours where import rates will be cheap (8.0p).
2026-08-18 05:10:05.130343:
2026-08-18 05:10:05.166474: Plan calculation took 1.59 seconds
2026-08-18 05:10:05.171683: No high rate period found
2026-08-18 05:10:05.272460: Import threshold used for optimisation was 8.0p
2026-08-18 05:10:05.357616: Low import rate windows [0: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 1: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 2: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 3: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 4: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 5: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 6: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 7: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 8: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 9: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 10: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 11: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 12: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 13: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 14: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 15: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 16: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 17: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 18: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 19: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 20: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 21: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 22: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 23: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 24: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:10:05.365719: Inverter 0 Charge window will be: 2026-08-19 05:00:00+01:00 - 2026-08-19 05:30:00+01:00 - current SoC 83%, target 100%
2026-08-18 05:10:05.365918: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:10:00 target set_window_minutes 30 charge start time 08-19 05:00:00) original inverter start time 08-20 00:00:00
2026-08-18 05:10:05.366130: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:10:05.366423: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:10:05.366582: No export window planned
2026-08-18 05:10:05.366763: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:10:05.366811: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:10:05.367075: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:10:05.367304: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:10:05.367401: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:10:05.367505: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:10:05.367666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.367721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.367838: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.367958: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368139: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368187: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368350: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368401: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368515: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368698: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368858: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:05.368899: Inverter 0 count register writes 0
2026-08-18 05:10:05.390781: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 05:10:05.390975: Recompute is saving previous plan...
2026-08-18 05:10:05.392085: Best charge window [ 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 05:10:05.392288: Best export window [ ]
2026-08-18 05:10:05.393085: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:10:05.396198: Load divergence over 8.0 hours mean 398.27W, min 262.2W, max 702.6W, std dev 61.37W, divergence 7.7%
2026-08-18 05:10:05.419185: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:10:05.419373: LoadML is_calculating True
2026-08-18 05:10:05.419410: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 05:10:05.430025: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 05:10:05.430449: Optimise levels pass started at 2026-08-18 05:10:05
2026-08-18 05:10:05.430495: Optimise all windows, total charge 24 export 1
2026-08-18 05:10:07.362846: >> Region optimisation pass width 960 gives best_metric 299.38p, best_cost 304.72p, best_cycle 37.21kWh, best_import 22.36kWh
2026-08-18 05:10:07.455182: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0168 val_mae=0.0044 kWh val_bias=-0.0010 kWh (-2.3%) combined=0.0028 kWh ema_combined=0.0023 kWh
2026-08-18 05:10:07.632655: >> Region optimisation pass width 480 gives best_metric 299.38p, best_cost 304.72p, best_cycle 37.21kWh, best_import 22.36kWh
2026-08-18 05:10:08.127552: >> Region optimisation pass width 240 gives best_metric 299.38p, best_cost 304.72p, best_cycle 37.21kWh, best_import 22.36kWh
2026-08-18 05:10:09.318926: >> Region optimisation pass width 120 gives best_metric 299.38p, best_cost 304.72p, best_cycle 37.21kWh, best_import 22.36kWh
2026-08-18 05:10:09.319231: Calculated end_record as 08-19 05:30:00 based on best_price 8.0p, next_charge_start 08-18 05:30:00, max_windows 13
2026-08-18 05:10:09.319342: Optimise levels pass ended at 2026-08-18 05:10:09, duration 3.9 seconds tried 50 combinations
2026-08-18 05:10:09.319449: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 299.38p, best_keep 0kWh, best_cycle 37.21kWh, best_carbon 0kg, best_import 22.36kWh
2026-08-18 05:10:09.337132: Starting detailed optimisation end_record 08-19 05:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 05:10:19.103043: Tweak plan optimisation started metric 153.86p, cost 160.66p
2026-08-18 05:10:19.640524: Tweak optimisation finished metric 153.86p, cost 160.66p, metric_keep 0kWh, cycle 12.24kWh, carbon 0kg, import 4.35kWh, changed 8 window(s)
2026-08-18 05:10:19.654631: Swap charge optimisation started metric 153.86p, cost 160.66p, min_improvement_swap 0.1p
2026-08-18 05:10:19.683593: Swap charge optimisation finished metric 153.86p, cost 160.66p
2026-08-18 05:10:19.732890: Pruned 1 dead plan slot(s) in 1 trial(s), nominal metric 152.97p -> 152.72p, plan now metric 154.69p, cost 160.41p, cycle 11.8kWh, import 4.32kWh
2026-08-18 05:10:19.764779: Raw charge windows [ 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:10:19.765226: Unclipped charge windows [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:10:19.765321: Unfiltered charge windows [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:10:19.765432: Filtered charge windows [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:10:19.822961: Previous plan best metric is 157.76 (cost 180.66) and new plan best metric is 153.86 (cost 160.66)
2026-08-18 05:10:19.825461: New plan metric is significantly better from previous plan, using new plan
2026-08-18 05:10:19.825560: Plan valid is now true after recompute was False
2026-08-18 05:10:19.920860: predict base end_record 08-19 05:30:00, final soc 1.12kWh, metric 207.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 18.3kWh, PV 0.0kWh
2026-08-18 05:10:20.150461: Battery has 18.5 hours left - now at 13.28kWh
2026-08-18 05:10:20.215414: predict base10 end_record 08-19 05:30:00, final soc 1.12kWh, metric 220.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 19.04kWh, PV 0.0kWh
2026-08-18 05:10:20.313431: predict best10 end_record 08-19 05:30:00, final soc 1.12kWh, metric 220.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 19.04kWh, PV 0.0kWh
2026-08-18 05:10:20.401885: predict best end_record 08-19 05:30:00, final soc 1.12kWh, metric 207.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 18.3kWh, PV 0.0kWh
2026-08-18 05:10:20.402180: Saving plan best values to HA entities
2026-08-18 05:10:20.571328: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:10:20.577748: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 05:10:20.599374: Best charging limit SoC's [16.0]kWh, export []kWh gives import battery 0kWh, house 4.32kWh, export 0.0kWh, metric 207.05p, metric10 220.23p
2026-08-18 05:10:20.729314: Marginal costs baseline metric (no standing charge): 160.4132
2026-08-18 05:10:21.121368: Marginal energy costs matrix computed: min=27.39 max=32.96
2026-08-18 05:10:21.274953: Rate array import [{'start': 310, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 310, 'end': 1770, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:10:21.289456: - Your estimated bill for today is £1.28 and tomorrow is £5.01
2026-08-18 05:10:21.289539: - Import rates are cheap (8.0p) for the next 20 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:10:21.289571: - The battery is currently at 83% and is in eco mode for the next 42 hours.
2026-08-18 05:10:21.289609: - For the next 48 hours there will be no solar generation.
2026-08-18 05:10:21.289671: - You will run out of battery in 18 hours.
2026-08-18 05:10:21.289700: - Your next charge slot will be in 42 hours where import rates will be cheap (8.0p).
2026-08-18 05:10:21.289733:
2026-08-18 05:10:21.358513: Plan calculation took 15.97 seconds
2026-08-18 05:10:21.358777: Inverter 0: Type SK Sunsynk
2026-08-18 05:10:21.358828: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:10:21.359038: Reserve min: 7%, battery_min: 7%
2026-08-18 05:10:21.359124: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:10:21.359489: Inverter 0 SoC: 13.28kW 83%, current charge rate 5000W, current discharge rate 5250W, current battery power 450W, current battery voltage 51.2V, grid power -55W, load power 512W, PV Power 0W
2026-08-18 05:10:21.359712: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:10:21.359821: Inverter 0 scheduled charge enable is False
2026-08-18 05:10:21.359866: Inverter 0 charge windows currently []
2026-08-18 05:10:21.359926: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:10:21.360077: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:10:21.360123: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:10:21.360237: Inverter 0 scheduled discharge enable is False
2026-08-18 05:10:21.360402: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:10:21.360449: Inverter 0 discharge windows currently []
2026-08-18 05:10:21.360479: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:10:21.360542: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:10:21.360570: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:10:21.459388: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:10:00 target set_window_minutes 30 charge start time 08-19 23:30:00)
2026-08-18 05:10:21.459513: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:10:21.459773: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:10:21.459878: No export window planned
2026-08-18 05:10:21.460042: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:10:21.460093: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:10:21.460266: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:10:21.460441: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:10:21.460500: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:10:21.460576: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:10:21.460676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.460727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.460764: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.460798: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.460832: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.460865: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.460934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461103: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461181: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:10:21.461287: Inverter 0 count register writes 0
2026-08-18 05:10:21.490975: Total inverter register writes now 867
2026-08-18 05:10:21.577172: Info: Completed run status Demand
2026-08-18 05:10:21.584740: Info: record_status Demand
2026-08-18 05:10:21.592809: Saved current settings to /config/predbat_config.json
2026-08-18 05:10:21.593061: Compare, best tariff: current metric 129.87p
2026-08-18 05:10:29.306196: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0109 val_mae=0.0037 kWh val_bias=+0.0002 kWh (+0.6%) combined=0.0025 kWh ema_combined=0.0024 kWh
2026-08-18 05:10:43.577680: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0101 val_mae=0.0040 kWh val_bias=-0.0007 kWh (-1.6%) combined=0.0025 kWh ema_combined=0.0024 kWh
2026-08-18 05:10:55.797741: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0090 val_mae=0.0033 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 05:11:03.731174: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:11:03.731410: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:11:03.731476: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:11:03.731616: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:11:03.731756: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:11:03.731860: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:11:03.732003: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:11:07.648514: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0085 val_mae=0.0033 kWh val_bias=-0.0010 kWh (-2.3%) combined=0.0024 kWh ema_combined=0.0023 kWh
2026-08-18 05:11:19.386111: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0086 val_mae=0.0039 kWh val_bias=+0.0015 kWh (+3.4%) combined=0.0034 kWh ema_combined=0.0026 kWh
2026-08-18 05:11:31.252054: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0079 val_mae=0.0036 kWh val_bias=-0.0003 kWh (-0.8%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-18 05:11:45.530120: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0090 val_mae=0.0033 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0017 kWh ema_combined=0.0022 kWh
2026-08-18 05:11:45.530248: ML Predictor: Early stopping at epoch 11
2026-08-18 05:11:45.531200: ML Predictor: Restored best weights from epoch with val_mae=0.0037 kWh val_bias=-0.0005 kWh (-1.1%)
2026-08-18 05:11:45.531339: ML Predictor: Training complete, final val_mae=0.0037 kWh val_bias=-0.0005 kWh (-1.1%)
2026-08-18 05:11:46.545330: ML Predictor: AR rollout over holdout: ar_mae=0.0093 kWh ar_bias=-0.0012 kWh (-2.8%) [drift vs teacher-forced: +0.0056 kWh]
2026-08-18 05:11:46.551455: ML Predictor: Curriculum training complete, final val_mae=0.0037 kWh
2026-08-18 05:11:46.562483: ML Component: Training successful, val_mae=0.0037 kWh
2026-08-18 05:11:46.689924: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 05:11:46.693805: ML Component: Generating predictions load data age 59.0 days, 17169 data points
2026-08-18 05:11:46.819185: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0512 max_dow {0: 0.08633055561814043, 1: 0.09144444428367747, 2: 0.10890624959506094, 3: 0.10127187534738331, 4: 0.13576250035744158, 5: 0.10326944471680456, 6: 0.10121111101268067}
2026-08-18 05:11:47.292658: ML Component: Generated 576 predictions (total 30.05 kWh over 48h)
2026-08-18 05:11:47.332376: ML Component: Prediction cycle completed
2026-08-18 05:11:47.452067: ML Component: Saved 17169 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 05:13:04.020177: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:13:04.020405: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:13:04.020446: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:13:04.020577: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:13:04.020615: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:13:04.020637: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:13:04.020654: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:14:47.664690: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 05:14:48.616880: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:14:48.617063: Zero load period starting at 2026-08-17T10:54:00+0100 (1096 minutes) for 189 minutes with base value 401.45
2026-08-18 05:14:48.617972: Processing 1345 30-minute periods for power integration
2026-08-18 05:14:48.721041: ML Component: Car charging hold False, car energy reported load False
2026-08-18 05:14:48.822587: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:14:48.917355: ML Temperature data points: 50091
2026-08-18 05:14:49.189504: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 05:14:49.229449: ML Component: Data fetch completed, load data age 59.0 days, 17174 data points
2026-08-18 05:14:49.229550: ML Component: No training needed, model age is -0.03 hours
2026-08-18 05:14:49.229598: ML Component: Generating predictions load data age 59.0 days, 17174 data points
2026-08-18 05:14:49.353093: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0485 max_dow {0: 0.08345277784036266, 1: 0.08988611095034414, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-18 05:14:49.766434: ML Component: Generated 576 predictions (total 31.66 kWh over 48h)
2026-08-18 05:14:49.805203: ML Component: Prediction cycle completed
2026-08-18 05:14:49.924044: ML Component: Saved 17174 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 05:15:00.370225: --------------- PredBat - update at 2026-08-18 05:15:00+01:00 with clock skew 0 minutes, minutes now 315
2026-08-18 05:15:00.371027: Saved current settings to /config/predbat_config.json
2026-08-18 05:15:00.371159: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 05:15:00.371274: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:15:00.371368: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:15:00.388498: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:15:00.388619: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:15:00.388748: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:15:00.389140: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:15:00.389230: Predbat mode is set to Control charge & discharge
2026-08-18 05:15:00.565021: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:15:00.565180: Using load_power data to fill gaps in load_today data
2026-08-18 05:15:01.369268: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:15:01.369451: Zero load period starting at 2026-08-17T10:54:00+0100 (1101 minutes) for 189 minutes with base value 209.65
2026-08-18 05:15:01.370346: Processing 721 30-minute periods for power integration
2026-08-18 05:15:01.558431: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:15:01.558549: Car charging hold False, threshold 6.0kWh
2026-08-18 05:15:01.558592: Current data so far today: load 2.7kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:15:01.572927: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:15:01.573032: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:15:01.573709: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:15:01.573777: Standing charge is set to 46.63p
2026-08-18 05:15:01.671699: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:15:01.672036: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:15:01.672278: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:15:01.673492: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:15:01.673638: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:15:01.679030: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:15:01.679366: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:15:01.724603: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:15:01.724712: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:15:01.725973: High export rate found rates in range 99p to -99p
2026-08-18 05:15:01.755389: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:15:01.755531: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:15:01.766599: Battery level now 13.28kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -1.1p, change today 44.26p, rate_forward 6.87p
2026-08-18 05:15:01.767045: Last hour: net energy 0.45kWh, import 0.45kWh, export 0.0kWh, car 0kWh, load 0.6kWh, net cost 3.6p, import 3.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:15:01.808362: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:15:01.808477: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:15:01.883519: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:15:01.911834: Today's load divergence 92.66%, in-day adjustment 92.76%, damping 0.95x, yesterday 92.68% today 93.03% blend 78.12%
2026-08-18 05:15:01.912215: Today's predicted so far 3.76kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 3.76kWh forecast extra.
2026-08-18 05:15:01.912265: Today's actual load so far 2.66kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 05:15:01.951045: Inverter 0: Type SK Sunsynk
2026-08-18 05:15:01.951123: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:15:01.951292: Reserve min: 7%, battery_min: 7%
2026-08-18 05:15:01.951359: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:15:01.951601: Inverter 0 SoC: 13.28kW 83%, current charge rate 5000W, current discharge rate 5250W, current battery power 445W, current battery voltage 51.2V, grid power -55W, load power 506W, PV Power 0W
2026-08-18 05:15:01.951748: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:15:01.951832: Inverter 0 scheduled charge enable is False
2026-08-18 05:15:01.951866: Inverter 0 charge windows currently []
2026-08-18 05:15:01.951892: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:15:01.952064: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:15:01.952099: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:15:01.952135: Inverter 0 scheduled discharge enable is False
2026-08-18 05:15:01.952254: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:15:01.952290: Inverter 0 discharge windows currently []
2026-08-18 05:15:01.952312: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:15:01.952330: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:15:01.952354: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:15:02.004966: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:15:02.005066: Plan was last updated on 2026-08-18 05:10:00+01:00 and is now 5.0 minutes old
2026-08-18 05:15:02.005202: Best charge window [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:15:02.005263: Best export window [ ]
2026-08-18 05:15:02.006226: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:15:02.009451: Load divergence over 8.0 hours mean 399.82W, min 274.2W, max 741.0W, std dev 67.25W, divergence 8.41%
2026-08-18 05:15:02.028708: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:15:02.028808: LoadML is_calculating False
2026-08-18 05:15:02.028890: Creating pool of 12 processes to match your CPU count
2026-08-18 05:15:02.144578: predict base end_record 08-19 05:35:00, final soc 1.12kWh, metric 208.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.36kWh, PV 0.0kWh
2026-08-18 05:15:02.258782: Battery has 18.5 hours left - now at 13.28kWh
2026-08-18 05:15:02.302133: predict base10 end_record 08-19 05:35:00, final soc 1.12kWh, metric 220.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 19.1kWh, PV 0.0kWh
2026-08-18 05:15:02.371161: predict best10 end_record 08-19 05:35:00, final soc 1.12kWh, metric 220.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 19.1kWh, PV 0.0kWh
2026-08-18 05:15:02.445824: predict best end_record 08-19 05:35:00, final soc 1.12kWh, metric 208.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.36kWh, PV 0.0kWh
2026-08-18 05:15:02.445920: Saving plan best values to HA entities
2026-08-18 05:15:02.591718: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:15:02.596548: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:15:02.601642: Best charging limit SoC's [16.0]kWh, export []kWh gives import battery 0kWh, house 4.33kWh, export 0.0kWh, metric 208.2p, metric10 220.54p
2026-08-18 05:15:02.660223: Marginal costs baseline metric (no standing charge): 161.5617
2026-08-18 05:15:02.903182: Marginal energy costs matrix computed: min=26.54 max=32.85
2026-08-18 05:15:02.978140: Rate array import [{'start': 315, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1775, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 315, 'end': 1775, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:15:02.979124: - Your estimated bill for today is £1.28 and tomorrow is £5.01
2026-08-18 05:15:02.979168: - Import rates are cheap (8.0p) for the next 15 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:15:02.979190: - The battery is currently at 83% and is in eco mode for the next 42 hours.
2026-08-18 05:15:02.979209: - For the next 48 hours there will be no solar generation.
2026-08-18 05:15:02.979226: - You will run out of battery in 18 hours.
2026-08-18 05:15:02.979243: - Your next charge slot will be in 42 hours where import rates will be cheap (8.0p).
2026-08-18 05:15:02.979260:
2026-08-18 05:15:03.021367: Plan calculation took 1.02 seconds
2026-08-18 05:15:03.024752: No high rate period found
2026-08-18 05:15:03.069527: Import threshold used for optimisation was 8.0p
2026-08-18 05:15:03.114790: Low import rate windows [0: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 1: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 2: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 3: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 4: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 5: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 6: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 7: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 8: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 9: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 10: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 11: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 12: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 13: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 14: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 15: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 16: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 17: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 18: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 19: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 20: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 21: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 22: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 23: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 24: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:15:03.119995: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:15:00 target set_window_minutes 30 charge start time 08-19 23:30:00)
2026-08-18 05:15:03.120130: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:15:03.120372: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:15:03.120463: No export window planned
2026-08-18 05:15:03.120580: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:15:03.120615: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:15:03.120746: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:15:03.120915: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:15:03.121004: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:15:03.121066: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:15:03.121151: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121213: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121243: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121269: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121294: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121320: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121344: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121409: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121471: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121498: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:15:03.121591: Inverter 0 count register writes 0
2026-08-18 05:15:03.135288: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 05:15:03.139878: Total inverter register writes now 867
2026-08-18 05:15:03.172425: Info: Completed run status Demand
2026-08-18 05:15:03.178399: Info: record_status Demand
2026-08-18 05:15:03.184470: Saved current settings to /config/predbat_config.json
2026-08-18 05:15:03.184777: Compare, best tariff: current metric 129.87p
2026-08-18 05:15:34.286271: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:15:34.286561: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:15:34.286626: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:15:34.286859: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:15:34.286933: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:15:34.286969: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:15:34.286990: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:17:34.496177: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:17:34.496451: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:17:34.496515: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:17:34.496741: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:17:34.496786: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:17:34.496831: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:17:34.496900: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:19:48.728470: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:19:48.728697: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:19:48.728727: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:19:48.728832: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:19:48.728864: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:19:48.728881: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:19:48.728907: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:20:00.814473: --------------- PredBat - update at 2026-08-18 05:20:00+01:00 with clock skew 0 minutes, minutes now 320
2026-08-18 05:20:00.815356: Saved current settings to /config/predbat_config.json
2026-08-18 05:20:01.140381: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:20:01.140495: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:20:01.157796: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:20:01.157919: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:20:01.158075: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:20:01.158579: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:20:01.158693: Predbat mode is set to Control charge & discharge
2026-08-18 05:20:01.342700: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:20:01.342832: Using load_power data to fill gaps in load_today data
2026-08-18 05:20:02.212923: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:20:02.213138: Zero load period starting at 2026-08-17T10:54:00+0100 (1106 minutes) for 189 minutes with base value 209.625
2026-08-18 05:20:02.214064: Processing 721 30-minute periods for power integration
2026-08-18 05:20:02.399872: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:20:02.400105: Car charging hold False, threshold 6.0kWh
2026-08-18 05:20:02.400156: Current data so far today: load 2.6kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:20:02.416087: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:20:02.416194: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:20:02.416962: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:20:02.417030: Standing charge is set to 46.63p
2026-08-18 05:20:02.499029: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:20:02.499251: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:20:02.499419: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:20:02.500317: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:20:02.500405: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:20:02.504616: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:20:02.504993: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:20:02.539695: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:20:02.539812: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:20:02.540890: High export rate found rates in range 99p to -99p
2026-08-18 05:20:02.564078: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:20:02.564175: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:20:02.574842: Battery level now 13.28kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -1.1p, change today 44.26p, rate_forward 6.87p
2026-08-18 05:20:02.575395: Last hour: net energy 0.42kWh, import 0.42kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 3.4p, import 3.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:20:02.620038: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:20:02.620165: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:20:02.696617: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:20:02.724430: Today's load divergence 91.91%, in-day adjustment 92.6%, damping 0.95x, yesterday 92.68% today 92.31% blend 77.78%
2026-08-18 05:20:02.724523: Today's predicted so far 3.78kWh with 0.0kWh car/iBoost excluded, 7.5kWh import ignored, and 3.78kWh forecast extra.
2026-08-18 05:20:02.724572: Today's actual load so far 2.57kWh with 0.0kWh car/iBoost excluded, and 7.5kWh import ignored.
2026-08-18 05:20:02.758411: Inverter 0: Type SK Sunsynk
2026-08-18 05:20:02.758495: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:20:02.758723: Reserve min: 7%, battery_min: 7%
2026-08-18 05:20:02.758819: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:20:02.759285: Inverter 0 SoC: 13.28kW 83%, current charge rate 5000W, current discharge rate 5250W, current battery power 449W, current battery voltage 51.2V, grid power -54W, load power 508W, PV Power 0W
2026-08-18 05:20:02.759454: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:20:02.759555: Inverter 0 scheduled charge enable is False
2026-08-18 05:20:02.759588: Inverter 0 charge windows currently []
2026-08-18 05:20:02.759614: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:20:02.759732: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:20:02.759767: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:20:02.759804: Inverter 0 scheduled discharge enable is False
2026-08-18 05:20:02.760002: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:20:02.760054: Inverter 0 discharge windows currently []
2026-08-18 05:20:02.760078: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:20:02.760105: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:20:02.760124: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:20:02.813557: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:20:02.813673: Plan was last updated on 2026-08-18 05:10:00+01:00 and is now 10.0 minutes old
2026-08-18 05:20:02.813817: Best charge window [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:20:02.813860: Best export window [ ]
2026-08-18 05:20:02.814705: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:20:02.818103: Load divergence over 8.0 hours mean 398.34W, min 297.6W, max 693.0W, std dev 60.06W, divergence 7.54%
2026-08-18 05:20:02.836680: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:20:02.836799: LoadML is_calculating False
2026-08-18 05:20:02.836861: Creating pool of 12 processes to match your CPU count
2026-08-18 05:20:02.952801: predict base end_record 08-19 05:40:00, final soc 1.12kWh, metric 208.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.23kWh, PV 0.0kWh
2026-08-18 05:20:03.067293: Battery has 18.42 hours left - now at 13.28kWh
2026-08-18 05:20:03.108223: predict base10 end_record 08-19 05:40:00, final soc 1.12kWh, metric 219.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.98kWh, PV 0.0kWh
2026-08-18 05:20:03.182324: predict best10 end_record 08-19 05:40:00, final soc 1.12kWh, metric 219.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.98kWh, PV 0.0kWh
2026-08-18 05:20:03.257677: predict best end_record 08-19 05:40:00, final soc 1.12kWh, metric 208.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.23kWh, PV 0.0kWh
2026-08-18 05:20:03.257767: Saving plan best values to HA entities
2026-08-18 05:20:03.402711: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:20:03.408452: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:20:03.414422: Best charging limit SoC's [16.0]kWh, export []kWh gives import battery 0kWh, house 4.31kWh, export 0.0kWh, metric 208.95p, metric10 219.74p
2026-08-18 05:20:03.485430: Marginal costs baseline metric (no standing charge): 162.3206
2026-08-18 05:20:03.738239: Marginal energy costs matrix computed: min=25.02 max=32.66
2026-08-18 05:20:03.798233: Rate array import [{'start': 320, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1780, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 320, 'end': 1780, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:20:03.799073: - Your estimated bill for today is £1.27 and tomorrow is £5.01
2026-08-18 05:20:03.799109: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:20:03.799128: - The battery is currently at 83% and is in eco mode for the next 42 hours.
2026-08-18 05:20:03.799144: - For the next 48 hours there will be no solar generation.
2026-08-18 05:20:03.799158: - You will run out of battery in 18 hours.
2026-08-18 05:20:03.799171: - Your next charge slot will be in 42 hours where import rates will be cheap (8.0p).
2026-08-18 05:20:03.799185:
2026-08-18 05:20:03.840293: Plan calculation took 1.03 seconds
2026-08-18 05:20:03.842964: No high rate period found
2026-08-18 05:20:03.889153: Import threshold used for optimisation was 8.0p
2026-08-18 05:20:03.938819: Low import rate windows [0: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 1: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 2: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 3: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 4: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 5: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 6: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 7: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 8: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 9: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 10: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 11: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 12: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 13: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 14: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 15: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 16: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 17: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 18: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 19: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 20: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 21: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 22: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 23: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 24: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:20:03.944518: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:20:00 target set_window_minutes 30 charge start time 08-19 23:30:00)
2026-08-18 05:20:03.944668: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:20:03.944920: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:20:03.945013: No export window planned
2026-08-18 05:20:03.945141: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:20:03.945175: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:20:03.945307: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:20:03.945478: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:20:03.945557: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:20:03.945621: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:20:03.945711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.945771: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.945803: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.945828: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.945862: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.945887: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.945912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.945975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.946011: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.946037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.946061: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.946089: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.946113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.946142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:03.946162: Inverter 0 count register writes 0
2026-08-18 05:20:03.961762: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 05:20:03.961924: Recompute is saving previous plan...
2026-08-18 05:20:03.962942: Best charge window [ 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 05:20:03.963013: Best export window [ ]
2026-08-18 05:20:03.963848: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:20:03.967023: Load divergence over 8.0 hours mean 398.34W, min 297.6W, max 693.0W, std dev 60.06W, divergence 7.54%
2026-08-18 05:20:03.984921: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:20:03.985041: LoadML is_calculating False
2026-08-18 05:20:03.985113: Creating pool of 12 processes to match your CPU count
2026-08-18 05:20:04.066898: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 05:20:04.067826: Optimise levels pass started at 2026-08-18 05:20:04
2026-08-18 05:20:04.067926: Optimise all windows, total charge 24 export 1
2026-08-18 05:20:04.380400: >> Region optimisation pass width 960 gives best_metric 299.34p, best_cost 304.68p, best_cycle 37.18kWh, best_import 22.36kWh
2026-08-18 05:20:04.497103: >> Region optimisation pass width 480 gives best_metric 299.34p, best_cost 304.68p, best_cycle 37.18kWh, best_import 22.36kWh
2026-08-18 05:20:04.736405: >> Region optimisation pass width 240 gives best_metric 299.34p, best_cost 304.68p, best_cycle 37.18kWh, best_import 22.36kWh
2026-08-18 05:20:05.268699: >> Region optimisation pass width 120 gives best_metric 299.34p, best_cost 304.68p, best_cycle 37.18kWh, best_import 22.36kWh
2026-08-18 05:20:05.268949: Calculated end_record as 08-19 05:30:00 based on best_price 8.0p, next_charge_start 08-18 05:30:00, max_windows 13
2026-08-18 05:20:05.269051: Optimise levels pass ended at 2026-08-18 05:20:05, duration 1.2 seconds tried 50 combinations
2026-08-18 05:20:05.269151: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 299.34p, best_keep 0kWh, best_cycle 37.18kWh, best_carbon 0kg, best_import 22.36kWh
2026-08-18 05:20:05.288344: Starting detailed optimisation end_record 08-19 05:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 05:20:06.969982: Tweak plan optimisation started metric 153.12p, cost 159.93p
2026-08-18 05:20:07.204406: Tweak optimisation finished metric 153.12p, cost 159.93p, metric_keep 0kWh, cycle 12.23kWh, carbon 0kg, import 4.26kWh, changed 8 window(s)
2026-08-18 05:20:07.223072: Swap charge optimisation started metric 153.12p, cost 159.93p, min_improvement_swap 0.1p
2026-08-18 05:20:07.241177: Swap charge optimisation finished metric 153.12p, cost 159.93p
2026-08-18 05:20:07.274794: Pruned 1 dead plan slot(s) in 1 trial(s), nominal metric 152.23p -> 151.98p, plan now metric 153.58p, cost 159.68p, cycle 11.8kWh, import 4.23kWh
2026-08-18 05:20:07.284238: Raw charge windows [ 18-08 05:00:00 - 18-08 05:30:00 @ 8.0p 0%, 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:20:07.284558: Unclipped charge windows [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:20:07.284708: Unfiltered charge windows [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:20:07.284830: Filtered charge windows [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:20:07.317907: Previous plan best metric is 153.12 (cost 159.93) and new plan best metric is 153.12 (cost 159.93)
2026-08-18 05:20:07.318200: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 05:20:07.318353: Plan valid is now true after recompute was False
2026-08-18 05:20:07.349911: predict base end_record 08-19 05:30:00, final soc 1.12kWh, metric 206.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.15kWh, PV 0.0kWh
2026-08-18 05:20:07.463266: Battery has 18.42 hours left - now at 13.28kWh
2026-08-18 05:20:07.505803: predict base10 end_record 08-19 05:30:00, final soc 1.12kWh, metric 216.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.89kWh, PV 0.0kWh
2026-08-18 05:20:07.578999: predict best10 end_record 08-19 05:30:00, final soc 1.12kWh, metric 216.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.89kWh, PV 0.0kWh
2026-08-18 05:20:07.647238: predict best end_record 08-19 05:30:00, final soc 1.12kWh, metric 206.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.15kWh, PV 0.0kWh
2026-08-18 05:20:07.647312: Saving plan best values to HA entities
2026-08-18 05:20:07.777718: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:20:07.782873: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:20:07.787263: Best charging limit SoC's [16.0]kWh, export []kWh gives import battery 0kWh, house 4.23kWh, export 0.0kWh, metric 206.32p, metric10 216.97p
2026-08-18 05:20:07.845634: Marginal costs baseline metric (no standing charge): 159.6812
2026-08-18 05:20:08.045128: Marginal energy costs matrix computed: min=25.02 max=32.66
2026-08-18 05:20:08.101327: Rate array import [{'start': 320, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 320, 'end': 1770, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:20:08.102320: - Your estimated bill for today is £1.27 and tomorrow is £5.01
2026-08-18 05:20:08.102363: - Import rates are cheap (8.0p) for the next 10 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:20:08.102385: - The battery is currently at 83% and is in eco mode for the next 42 hours.
2026-08-18 05:20:08.102403: - For the next 48 hours there will be no solar generation.
2026-08-18 05:20:08.102438: - You will run out of battery in 18 hours.
2026-08-18 05:20:08.102456: - Your next charge slot will be in 42 hours where import rates will be cheap (8.0p).
2026-08-18 05:20:08.102476:
2026-08-18 05:20:08.147951: Plan calculation took 4.19 seconds
2026-08-18 05:20:08.148291: Inverter 0: Type SK Sunsynk
2026-08-18 05:20:08.148360: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:20:08.148601: Reserve min: 7%, battery_min: 7%
2026-08-18 05:20:08.148678: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:20:08.149003: Inverter 0 SoC: 13.28kW 83%, current charge rate 5000W, current discharge rate 5250W, current battery power 451W, current battery voltage 51.2V, grid power -55W, load power 512W, PV Power 0W
2026-08-18 05:20:08.149227: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:20:08.149330: Inverter 0 scheduled charge enable is False
2026-08-18 05:20:08.149365: Inverter 0 charge windows currently []
2026-08-18 05:20:08.149394: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:20:08.149589: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:20:08.149646: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:20:08.149687: Inverter 0 scheduled discharge enable is False
2026-08-18 05:20:08.149833: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:20:08.149871: Inverter 0 discharge windows currently []
2026-08-18 05:20:08.149894: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:20:08.149913: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:20:08.149931: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:20:08.202000: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:20:00 target set_window_minutes 30 charge start time 08-19 23:30:00)
2026-08-18 05:20:08.202111: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:20:08.202291: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:20:08.202371: No export window planned
2026-08-18 05:20:08.202475: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:20:08.202510: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:20:08.202661: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:20:08.202817: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:20:08.202871: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:20:08.202931: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:20:08.203018: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203057: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203091: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203155: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203233: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203331: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203438: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203517: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:20:08.203552: Inverter 0 count register writes 0
2026-08-18 05:20:08.223753: Total inverter register writes now 867
2026-08-18 05:20:08.256756: Info: Completed run status Demand
2026-08-18 05:20:08.262750: Info: record_status Demand
2026-08-18 05:20:08.269543: Saved current settings to /config/predbat_config.json
2026-08-18 05:20:08.269879: Compare, best tariff: current metric 129.87p
2026-08-18 05:20:49.384620: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:20:49.384819: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:20:49.384847: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:20:49.384954: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:20:49.384987: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:20:49.385004: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:20:49.385019: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:22:49.580636: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:22:49.580835: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:22:49.580864: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:22:49.580982: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:22:49.581023: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:22:49.581041: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:22:49.581056: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:25:00.796251: --------------- PredBat - update at 2026-08-18 05:25:00+01:00 with clock skew 0 minutes, minutes now 325
2026-08-18 05:25:00.797018: Saved current settings to /config/predbat_config.json
2026-08-18 05:25:00.797136: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 05:25:00.797202: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:25:00.797330: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:25:00.814448: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:25:00.814572: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:25:00.814759: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:25:00.815244: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:25:00.815377: Predbat mode is set to Control charge & discharge
2026-08-18 05:25:01.010892: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:25:01.011422: Using load_power data to fill gaps in load_today data
2026-08-18 05:25:01.841883: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:25:01.842065: Zero load period starting at 2026-08-17T10:54:00+0100 (1111 minutes) for 189 minutes with base value 209.6
2026-08-18 05:25:01.843039: Processing 721 30-minute periods for power integration
2026-08-18 05:25:02.025546: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:25:02.025654: Car charging hold False, threshold 6.0kWh
2026-08-18 05:25:02.025691: Current data so far today: load 2.6kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:25:02.041296: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:25:02.041406: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:25:02.042124: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:25:02.042194: Standing charge is set to 46.63p
2026-08-18 05:25:02.141052: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:25:02.141302: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:25:02.141537: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:25:02.142591: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:25:02.142692: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:25:02.148209: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:25:02.148719: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:25:02.191955: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:25:02.192070: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:25:02.193361: High export rate found rates in range 99p to -99p
2026-08-18 05:25:02.221965: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:25:02.222081: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:25:02.233358: Battery level now 13.28kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -1.1p, change today 44.26p, rate_forward 6.87p
2026-08-18 05:25:02.233719: Last hour: net energy 0.4kWh, import 0.4kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 3.2p, import 3.2p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:25:02.276604: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:25:02.276728: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:25:02.353472: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:25:02.382241: Today's load divergence 91.87%, in-day adjustment 92.59%, damping 0.95x, yesterday 92.68% today 92.28% blend 77.43%
2026-08-18 05:25:02.382341: Today's predicted so far 3.8kWh with 0.0kWh car/iBoost excluded, 7.51kWh import ignored, and 3.8kWh forecast extra.
2026-08-18 05:25:02.382372: Today's actual load so far 2.58kWh with 0.0kWh car/iBoost excluded, and 7.51kWh import ignored.
2026-08-18 05:25:02.414030: Inverter 0: Type SK Sunsynk
2026-08-18 05:25:02.414116: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:25:02.414336: Reserve min: 7%, battery_min: 7%
2026-08-18 05:25:02.414422: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:25:02.414732: Inverter 0 SoC: 13.28kW 83%, current charge rate 5000W, current discharge rate 5250W, current battery power 454W, current battery voltage 51.2V, grid power -56W, load power 514W, PV Power 0W
2026-08-18 05:25:02.414891: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:25:02.414980: Inverter 0 scheduled charge enable is False
2026-08-18 05:25:02.415019: Inverter 0 charge windows currently []
2026-08-18 05:25:02.415049: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:25:02.415167: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:25:02.415203: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:25:02.415241: Inverter 0 scheduled discharge enable is False
2026-08-18 05:25:02.415394: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:25:02.415432: Inverter 0 discharge windows currently []
2026-08-18 05:25:02.415456: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:25:02.415477: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:25:02.415506: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:25:02.472635: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:25:02.472736: Plan was last updated on 2026-08-18 05:20:00+01:00 and is now 5.0 minutes old
2026-08-18 05:25:02.472843: Best charge window [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:25:02.472879: Best export window [ ]
2026-08-18 05:25:02.473784: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:25:02.477012: Load divergence over 8.0 hours mean 396.81W, min 292.8W, max 660.0W, std dev 61.49W, divergence 7.75%
2026-08-18 05:25:02.494177: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:25:02.494271: LoadML is_calculating False
2026-08-18 05:25:02.494624: Creating pool of 12 processes to match your CPU count
2026-08-18 05:25:02.604021: predict base end_record 08-19 05:35:00, final soc 1.12kWh, metric 207.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.16kWh, PV 0.0kWh
2026-08-18 05:25:02.724970: Battery has 18.42 hours left - now at 13.28kWh
2026-08-18 05:25:02.767709: predict base10 end_record 08-19 05:35:00, final soc 1.12kWh, metric 217.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.9kWh, PV 0.0kWh
2026-08-18 05:25:02.834409: predict best10 end_record 08-19 05:35:00, final soc 1.12kWh, metric 217.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 18.9kWh, PV 0.0kWh
2026-08-18 05:25:02.910729: predict best end_record 08-19 05:35:00, final soc 1.12kWh, metric 207.36p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 18.16kWh, PV 0.0kWh
2026-08-18 05:25:02.910813: Saving plan best values to HA entities
2026-08-18 05:25:03.049677: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:25:03.053912: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:25:03.059485: Best charging limit SoC's [16.0]kWh, export []kWh gives import battery 0kWh, house 4.23kWh, export 0.0kWh, metric 207.36p, metric10 217.4p
2026-08-18 05:25:03.131770: Marginal costs baseline metric (no standing charge): 160.7254
2026-08-18 05:25:03.351083: Marginal energy costs matrix computed: min=24.38 max=32.58
2026-08-18 05:25:03.414406: Rate array import [{'start': 325, 'end': 330, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1775, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 325, 'end': 1775, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:25:03.415279: - Your estimated bill for today is £1.27 and tomorrow is £5.01
2026-08-18 05:25:03.415323: - Import rates are cheap (8.0p) for the next 5 minutes and then very expensive (33.8p) for the next 18 hours.
2026-08-18 05:25:03.415342: - The battery is currently at 83% and is in eco mode for the next 42 hours.
2026-08-18 05:25:03.415357: - For the next 48 hours there will be no solar generation.
2026-08-18 05:25:03.415371: - You will run out of battery in 18 hours.
2026-08-18 05:25:03.415385: - Your next charge slot will be in 42 hours where import rates will be cheap (8.0p).
2026-08-18 05:25:03.415398:
2026-08-18 05:25:03.455366: Plan calculation took 0.98 seconds
2026-08-18 05:25:03.459088: No high rate period found
2026-08-18 05:25:03.504051: Import threshold used for optimisation was 8.0p
2026-08-18 05:25:03.552244: Low import rate windows [0: 08-18 05:00:00 - 08-18 05:30:00 @ 8.0, 1: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 2: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 3: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 4: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 5: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 6: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 7: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 8: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 9: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 10: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 11: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 12: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 13: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 14: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 15: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 16: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 17: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 18: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 19: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 20: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 21: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 22: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 23: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 24: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:25:03.558020: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:25:00 target set_window_minutes 30 charge start time 08-19 23:30:00)
2026-08-18 05:25:03.558170: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:25:03.558444: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:25:03.558538: No export window planned
2026-08-18 05:25:03.558669: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:25:03.558704: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:25:03.558840: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:25:03.559014: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:25:03.559076: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:25:03.559134: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:25:03.559229: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559281: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559315: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559360: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559397: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559423: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559518: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559553: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559579: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559640: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559668: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:25:03.559721: Inverter 0 count register writes 0
2026-08-18 05:25:03.575213: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 05:25:03.580499: Total inverter register writes now 867
2026-08-18 05:25:03.612141: Info: Completed run status Demand
2026-08-18 05:25:03.617816: Info: record_status Demand
2026-08-18 05:25:03.623927: Saved current settings to /config/predbat_config.json
2026-08-18 05:25:03.624239: Compare, best tariff: current metric 129.87p
2026-08-18 05:25:33.721829: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:25:33.722055: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:25:33.722094: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:25:33.722284: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:25:33.722329: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:25:33.722351: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:25:33.722370: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:27:33.929001: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:27:33.929254: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:27:33.929289: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:27:33.929490: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:27:33.929527: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:27:33.929545: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:27:33.929561: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:29:34.128738: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:29:34.128964: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:29:34.129008: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:29:34.129154: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:29:34.129239: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:29:34.129262: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:29:34.129279: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:30:00.229898: --------------- PredBat - update at 2026-08-18 05:30:00+01:00 with clock skew 0 minutes, minutes now 330
2026-08-18 05:30:00.230623: Saved current settings to /config/predbat_config.json
2026-08-18 05:30:00.230739: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 05:30:00.230803: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:30:00.230913: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:30:00.250524: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:30:00.250631: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:30:00.250841: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:30:00.251541: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:30:00.251717: Predbat mode is set to Control charge & discharge
2026-08-18 05:30:00.448702: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:30:00.448816: Using load_power data to fill gaps in load_today data
2026-08-18 05:30:01.261523: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:30:01.261707: Zero load period starting at 2026-08-17T10:54:00+0100 (1116 minutes) for 189 minutes with base value 209.575
2026-08-18 05:30:01.262640: Processing 721 30-minute periods for power integration
2026-08-18 05:30:01.448879: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:30:01.448996: Car charging hold False, threshold 6.0kWh
2026-08-18 05:30:01.449057: Current data so far today: load 2.72kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:30:01.463542: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:30:01.463642: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:30:01.464489: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:30:01.464571: Standing charge is set to 46.63p
2026-08-18 05:30:01.569669: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:30:01.569906: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:30:01.570105: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:30:01.571193: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:30:01.571299: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:30:01.576474: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:30:01.576834: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:30:01.622146: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:30:01.622258: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:30:01.623461: High export rate found rates in range 99p to -99p
2026-08-18 05:30:01.652289: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:30:01.652408: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:30:01.671324: Battery level now 13.28kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -1.1p, change today 44.26p, rate_forward 6.87p
2026-08-18 05:30:01.671684: Last hour: net energy 0.35kWh, import 0.35kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 2.8p, import 2.8p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:30:01.722750: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:30:01.722870: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:30:01.800557: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:30:01.827528: Today's load divergence 92.09%, in-day adjustment 92.63%, damping 0.95x, yesterday 92.68% today 92.48% blend 77.08%
2026-08-18 05:30:01.827610: Today's predicted so far 3.91kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 3.91kWh forecast extra.
2026-08-18 05:30:01.827637: Today's actual load so far 2.72kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 05:30:01.858698: Inverter 0: Type SK Sunsynk
2026-08-18 05:30:01.858776: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:30:01.858930: Reserve min: 7%, battery_min: 7%
2026-08-18 05:30:01.858996: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:30:01.859280: Inverter 0 SoC: 13.13kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power 449W, current battery voltage 51.2V, grid power -54W, load power 511W, PV Power 0W
2026-08-18 05:30:01.859420: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:30:01.859491: Inverter 0 scheduled charge enable is False
2026-08-18 05:30:01.859516: Inverter 0 charge windows currently []
2026-08-18 05:30:01.859537: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:30:01.859622: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:30:01.859650: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:30:01.859681: Inverter 0 scheduled discharge enable is False
2026-08-18 05:30:01.859785: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:30:01.859815: Inverter 0 discharge windows currently []
2026-08-18 05:30:01.859834: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:30:01.859849: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:30:01.859866: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:30:01.917829: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:30:01.917922: Plan was last updated on 2026-08-18 05:20:00+01:00 and is now 10.0 minutes old
2026-08-18 05:30:01.918023: Best charge window [ 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:30:01.918055: Best export window [ ]
2026-08-18 05:30:01.918675: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:30:01.921296: Load divergence over 8.0 hours mean 395.4W, min 281.4W, max 651.6W, std dev 57.84W, divergence 7.31%
2026-08-18 05:30:01.937613: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:30:01.937741: LoadML is_calculating False
2026-08-18 05:30:01.937800: Creating pool of 12 processes to match your CPU count
2026-08-18 05:30:02.039803: predict base end_record 08-19 05:40:00, final soc 1.12kWh, metric 209.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.29kWh, PV 0.0kWh
2026-08-18 05:30:02.180307: Battery has 18.25 hours left - now at 13.13kWh
2026-08-18 05:30:02.226162: predict base10 end_record 08-19 05:40:00, final soc 1.12kWh, metric 222.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 19.03kWh, PV 0.0kWh
2026-08-18 05:30:02.302058: predict best10 end_record 08-19 05:40:00, final soc 1.12kWh, metric 222.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 19.03kWh, PV 0.0kWh
2026-08-18 05:30:02.391244: predict best end_record 08-19 05:40:00, final soc 1.12kWh, metric 209.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 18.29kWh, PV 0.0kWh
2026-08-18 05:30:02.391330: Saving plan best values to HA entities
2026-08-18 05:30:02.550253: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:30:02.555418: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:30:02.561364: Best charging limit SoC's [16.0]kWh, export []kWh gives import battery 0kWh, house 4.38kWh, export 0.0kWh, metric 209.59p, metric10 222.27p
2026-08-18 05:30:02.625525: Marginal costs baseline metric (no standing charge): 162.954
2026-08-18 05:30:02.834234: Marginal energy costs matrix computed: min=27.0 max=32.91
2026-08-18 05:30:02.907496: Rate array import [{'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 1780, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 330, 'end': 1780, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:30:02.908614: - Your estimated bill for today is £1.27 and tomorrow is £5.01
2026-08-18 05:30:02.908666: - Import rates are very expensive (33.8p) for the next 18 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:30:02.908689: - The battery is currently at 82% and is in eco mode for the next 42 hours.
2026-08-18 05:30:02.908712: - For the next 48 hours there will be no solar generation.
2026-08-18 05:30:02.908744: - You will run out of battery in 18 hours.
2026-08-18 05:30:02.908781: - Your next charge slot will be in 42 hours where import rates will be cheap (8.0p).
2026-08-18 05:30:02.908802:
2026-08-18 05:30:02.959630: Plan calculation took 1.04 seconds
2026-08-18 05:30:02.962840: No high rate period found
2026-08-18 05:30:03.011367: Import threshold used for optimisation was 8.0p
2026-08-18 05:30:03.059128: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:30:03.064556: Inverter 0 Disabled charge window while waiting for schedule (now 08-18 05:30:00 target set_window_minutes 30 charge start time 08-19 23:30:00)
2026-08-18 05:30:03.064672: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:30:03.064889: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:30:03.064998: No export window planned
2026-08-18 05:30:03.065188: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:30:03.065233: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:30:03.065408: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:30:03.065564: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:30:03.065620: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:30:03.065673: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:30:03.065752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065779: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065830: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065851: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065895: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065950: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065974: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.065998: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.066017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.066036: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.066055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.066089: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:03.066113: Inverter 0 count register writes 0
2026-08-18 05:30:03.081903: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 05:30:03.082043: Recompute is saving previous plan...
2026-08-18 05:30:03.082919: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 05:30:03.082987: Best export window [ ]
2026-08-18 05:30:03.083854: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:30:03.087514: Load divergence over 8.0 hours mean 395.4W, min 281.4W, max 651.6W, std dev 57.84W, divergence 7.31%
2026-08-18 05:30:03.105685: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:30:03.105806: LoadML is_calculating False
2026-08-18 05:30:03.105871: Creating pool of 12 processes to match your CPU count
2026-08-18 05:30:03.188665: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 05:30:03.190308: Optimise levels pass started at 2026-08-18 05:30:03
2026-08-18 05:30:03.190374: Optimise all windows, total charge 24 export 1
2026-08-18 05:30:03.534690: >> Region optimisation pass width 960 gives best_metric 301.55p, best_cost 306.38p, best_cycle 37.86kWh, best_import 22.57kWh
2026-08-18 05:30:03.676614: >> Region optimisation pass width 480 gives best_metric 301.55p, best_cost 306.38p, best_cycle 37.86kWh, best_import 22.57kWh
2026-08-18 05:30:03.929676: >> Region optimisation pass width 240 gives best_metric 301.55p, best_cost 306.38p, best_cycle 37.86kWh, best_import 22.57kWh
2026-08-18 05:30:04.438134: >> Region optimisation pass width 120 gives best_metric 301.55p, best_cost 306.38p, best_cycle 37.86kWh, best_import 22.57kWh
2026-08-18 05:30:04.438327: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 05:30:04.438393: Optimise levels pass ended at 2026-08-18 05:30:04, duration 1.2 seconds tried 49 combinations
2026-08-18 05:30:04.438451: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 301.55p, best_keep 0kWh, best_cycle 37.86kWh, best_carbon 0kg, best_import 22.57kWh
2026-08-18 05:30:04.458001: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 05:30:07.261754: Tweak plan optimisation started metric 264.77p, cost 274.9p
2026-08-18 05:30:07.653520: Tweak optimisation finished metric 264.77p, cost 274.9p, metric_keep 0kWh, cycle 37.15kWh, carbon 0kg, import 18.63kWh, changed 8 window(s)
2026-08-18 05:30:07.672628: Swap charge optimisation started metric 264.77p, cost 274.9p, min_improvement_swap 0.1p
2026-08-18 05:30:08.489881: Swap charge optimisation finished metric 264.77p, cost 274.9p
2026-08-18 05:30:08.618610: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.22p -> 262.06p, plan now metric 265.21p, cost 272.87p, cycle 37.42kWh, import 18.38kWh
2026-08-18 05:30:08.628165: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:30:08.628935: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:30:08.629155: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:30:08.629299: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:30:08.660164: Previous plan best metric is 555.01 (cost 557.98) and new plan best metric is 264.77 (cost 274.9)
2026-08-18 05:30:08.660344: New plan metric is significantly better from previous plan, using new plan
2026-08-18 05:30:08.660375: Plan valid is now true after recompute was False
2026-08-18 05:30:08.693053: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 604.62p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.0kWh, PV 0.0kWh
2026-08-18 05:30:08.835232: Battery has 18.25 hours left - now at 13.13kWh
2026-08-18 05:30:08.886679: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.29kWh, PV 0.0kWh
2026-08-18 05:30:08.961727: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 337.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.29kWh, PV 0.0kWh
2026-08-18 05:30:09.033953: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 319.5p, metric_keep 0kWh, min_soc 1.4kWh @ 08-18 23:25:00, load 30.0kWh, PV 0.0kWh
2026-08-18 05:30:09.034029: Saving plan best values to HA entities
2026-08-18 05:30:09.186399: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:30:09.192638: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:30:09.198392: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.38kWh, house 0.0kWh, export 0.0kWh, metric 319.5p, metric10 337.4p
2026-08-18 05:30:09.272236: Marginal costs baseline metric (no standing charge): 272.8679
2026-08-18 05:30:09.552330: Marginal energy costs matrix computed: min=27.32 max=32.95
2026-08-18 05:30:09.637716: Rate array import [{'start': 330, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 330, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:30:09.638527: - Your estimated bill for today is £1.50 and tomorrow is £1.94
2026-08-18 05:30:09.638572: - Import rates are very expensive (33.8p) for the next 18 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:30:09.638595: - The battery is currently at 82% and is in eco mode for the next 18 hours.
2026-08-18 05:30:09.638613: - For the next 48 hours there will be no solar generation.
2026-08-18 05:30:09.638649: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 05:30:09.638667: - Your next charge slot will be in 18 hours where import rates will be cheap (8.0p).
2026-08-18 05:30:09.638690:
2026-08-18 05:30:09.702525: Plan calculation took 6.62 seconds
2026-08-18 05:30:09.702863: Inverter 0: Type SK Sunsynk
2026-08-18 05:30:09.702910: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:30:09.703155: Reserve min: 7%, battery_min: 7%
2026-08-18 05:30:09.703233: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:30:09.703559: Inverter 0 SoC: 13.13kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power 449W, current battery voltage 51.2V, grid power -54W, load power 511W, PV Power 0W
2026-08-18 05:30:09.703781: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:30:09.703880: Inverter 0 scheduled charge enable is False
2026-08-18 05:30:09.703954: Inverter 0 charge windows currently []
2026-08-18 05:30:09.704020: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:30:09.704170: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:30:09.704212: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:30:09.704251: Inverter 0 scheduled discharge enable is False
2026-08-18 05:30:09.704385: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:30:09.704423: Inverter 0 discharge windows currently []
2026-08-18 05:30:09.704445: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:30:09.704466: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:30:09.704483: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:30:09.760927: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 82%, target 100%
2026-08-18 05:30:09.761091: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:30:09.761162: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:30:09.761344: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:30:09.761424: No export window planned
2026-08-18 05:30:09.761535: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:30:09.761570: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:30:09.761699: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:30:09.761858: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:30:09.761908: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:30:09.761965: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:30:09.762089: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762156: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762270: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762319: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762375: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762403: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762475: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762512: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762564: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762591: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762638: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:30:09.762665: Inverter 0 count register writes 0
2026-08-18 05:30:09.783394: Total inverter register writes now 867
2026-08-18 05:30:09.814831: Info: Completed run status Demand
2026-08-18 05:30:09.821001: Info: record_status Demand
2026-08-18 05:30:09.827816: Saved current settings to /config/predbat_config.json
2026-08-18 05:30:09.828169: Compare, best tariff: current metric 129.87p
2026-08-18 05:30:48.929108: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:30:48.929390: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:30:48.929454: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:30:48.929602: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:30:48.929642: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:30:48.929663: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:30:48.929681: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:32:49.145921: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:32:49.146182: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:32:49.146226: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:32:49.146379: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:32:49.146416: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:32:49.146439: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:32:49.146456: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:34:49.361381: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:34:49.361608: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:34:49.361642: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:34:49.361808: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:34:49.361846: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:34:49.361867: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:34:49.361885: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:35:00.444653: --------------- PredBat - update at 2026-08-18 05:35:00+01:00 with clock skew 0 minutes, minutes now 335
2026-08-18 05:35:00.445445: Saved current settings to /config/predbat_config.json
2026-08-18 05:35:00.445593: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 05:35:00.445699: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:35:00.445774: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:35:00.460397: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:35:00.460526: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:35:00.460668: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:35:00.461114: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:35:00.461218: Predbat mode is set to Control charge & discharge
2026-08-18 05:35:00.620643: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:35:00.620885: Using load_power data to fill gaps in load_today data
2026-08-18 05:35:01.321459: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:35:01.321647: Zero load period starting at 2026-08-17T10:54:00+0100 (1121 minutes) for 189 minutes with base value 209.55
2026-08-18 05:35:01.322672: Processing 721 30-minute periods for power integration
2026-08-18 05:35:01.511058: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:35:01.511183: Car charging hold False, threshold 6.0kWh
2026-08-18 05:35:01.511236: Current data so far today: load 2.75kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:35:01.525595: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:35:01.525680: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:35:01.526397: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:35:01.526467: Standing charge is set to 46.63p
2026-08-18 05:35:01.621882: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:35:01.622089: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:35:01.622224: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:35:01.623067: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:35:01.623152: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:35:01.629443: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:35:01.629816: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:35:01.666533: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:35:01.666631: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:35:01.667643: High export rate found rates in range 99p to -99p
2026-08-18 05:35:01.689813: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:35:01.689934: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:35:01.699504: Battery level now 13.13kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -2.14p, change today 43.22p, rate_forward 6.87p
2026-08-18 05:35:01.699807: Last hour: net energy 0.3kWh, import 0.3kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 2.4p, import 2.4p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:35:01.743724: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:35:01.743859: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:35:01.819196: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:35:01.845082: Today's load divergence 91.76%, in-day adjustment 92.56%, damping 0.95x, yesterday 92.68% today 92.17% blend 76.74%
2026-08-18 05:35:01.845158: Today's predicted so far 4.0kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 4.0kWh forecast extra.
2026-08-18 05:35:01.845183: Today's actual load so far 2.76kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 05:35:01.876827: Inverter 0: Type SK Sunsynk
2026-08-18 05:35:01.876904: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:35:01.877109: Reserve min: 7%, battery_min: 7%
2026-08-18 05:35:01.877197: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:35:01.877450: Inverter 0 SoC: 13.13kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power 403W, current battery voltage 51.2V, grid power -55W, load power 464W, PV Power 0W
2026-08-18 05:35:01.877621: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:35:01.877725: Inverter 0 scheduled charge enable is False
2026-08-18 05:35:01.877768: Inverter 0 charge windows currently []
2026-08-18 05:35:01.877808: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:35:01.877961: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:35:01.877999: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:35:01.878038: Inverter 0 scheduled discharge enable is False
2026-08-18 05:35:01.878188: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:35:01.878225: Inverter 0 discharge windows currently []
2026-08-18 05:35:01.878246: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:35:01.878281: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:35:01.878308: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:35:01.926225: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:35:01.926326: Plan was last updated on 2026-08-18 05:30:00+01:00 and is now 5.0 minutes old
2026-08-18 05:35:01.926534: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:35:01.926574: Best export window [ ]
2026-08-18 05:35:01.927473: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:35:01.930627: Load divergence over 8.0 hours mean 393.89W, min 263.4W, max 664.2W, std dev 58.08W, divergence 7.37%
2026-08-18 05:35:01.948991: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:35:01.949080: LoadML is_calculating False
2026-08-18 05:35:01.949135: Creating pool of 12 processes to match your CPU count
2026-08-18 05:35:02.065999: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 604.99p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.07kWh, PV 0.0kWh
2026-08-18 05:35:02.201486: Battery has 18.25 hours left - now at 13.13kWh
2026-08-18 05:35:02.249620: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.38kWh, PV 0.0kWh
2026-08-18 05:35:02.315755: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 339.17p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.38kWh, PV 0.0kWh
2026-08-18 05:35:02.386541: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 323.21p, metric_keep 0kWh, min_soc 1.46kWh @ 08-18 23:25:00, load 30.07kWh, PV 0.0kWh
2026-08-18 05:35:02.386638: Saving plan best values to HA entities
2026-08-18 05:35:02.532377: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:35:02.538157: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:35:02.544172: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.84kWh, house 0.0kWh, export 0.0kWh, metric 323.21p, metric10 339.17p
2026-08-18 05:35:02.615442: Marginal costs baseline metric (no standing charge): 276.5727
2026-08-18 05:35:02.890463: Marginal energy costs matrix computed: min=26.03 max=32.79
2026-08-18 05:35:02.962424: Rate array import [{'start': 335, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 335, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:35:02.963189: - Your estimated bill for today is £1.49 and tomorrow is £1.94
2026-08-18 05:35:02.963234: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:35:02.963258: - The battery is currently at 82% and is in eco mode for the next 17 hours.
2026-08-18 05:35:02.963276: - For the next 48 hours there will be no solar generation.
2026-08-18 05:35:02.963293: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 05:35:02.963311: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 05:35:02.963333:
2026-08-18 05:35:03.027203: Plan calculation took 1.10 seconds
2026-08-18 05:35:03.030517: No high rate period found
2026-08-18 05:35:03.073399: Import threshold used for optimisation was 8.0p
2026-08-18 05:35:03.130392: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:35:03.135784: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 82%, target 100%
2026-08-18 05:35:03.135961: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:35:03.136091: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:35:03.136370: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:35:03.136480: No export window planned
2026-08-18 05:35:03.136636: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:35:03.136678: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:35:03.136828: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:35:03.137018: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:35:03.137074: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:35:03.137164: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:35:03.137277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137316: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137397: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137442: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137477: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137614: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137652: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137727: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137766: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137814: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137860: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:35:03.137899: Inverter 0 count register writes 0
2026-08-18 05:35:03.150961: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 05:35:03.155184: Total inverter register writes now 867
2026-08-18 05:35:03.183428: Info: Completed run status Demand
2026-08-18 05:35:03.188779: Info: record_status Demand
2026-08-18 05:35:03.196315: Saved current settings to /config/predbat_config.json
2026-08-18 05:35:03.196676: Compare, best tariff: current metric 129.87p
2026-08-18 05:35:34.298713: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:35:34.298965: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:35:34.299026: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:35:34.299199: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:35:34.299241: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:35:34.299263: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:35:34.299307: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:37:34.511497: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:37:34.511724: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:37:34.511758: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:37:34.511937: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:37:34.511981: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:37:34.512004: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:37:34.512023: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:39:48.735072: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:39:48.735290: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:39:48.735323: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:39:48.735481: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:39:48.735519: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:39:48.735540: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:39:48.735558: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:40:00.836300: --------------- PredBat - update at 2026-08-18 05:40:00+01:00 with clock skew 0 minutes, minutes now 340
2026-08-18 05:40:00.837035: Saved current settings to /config/predbat_config.json
2026-08-18 05:40:00.837206: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 05:40:00.837279: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:40:00.837385: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:40:00.853949: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:40:00.854080: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:40:00.854313: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:40:00.854913: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:40:00.855071: Predbat mode is set to Control charge & discharge
2026-08-18 05:40:01.055570: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:40:01.055694: Using load_power data to fill gaps in load_today data
2026-08-18 05:40:01.902422: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:40:01.902851: Zero load period starting at 2026-08-17T10:54:00+0100 (1126 minutes) for 189 minutes with base value 209.525
2026-08-18 05:40:01.903735: MCP POST: Received request from 172.19.0.1
2026-08-18 05:40:01.904780: Processing 721 30-minute periods for power integration
2026-08-18 05:40:01.905049: MCP: Could not even decode without verification: Not enough segments
2026-08-18 05:40:01.915398: MCP: Token verification failed: Not enough segments
2026-08-18 05:40:01.920564: MCP POST: Authenticated via legacy bearer token
2026-08-18 05:40:02.106028: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:40:02.106151: Car charging hold False, threshold 6.0kWh
2026-08-18 05:40:02.106195: Current data so far today: load 2.85kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:40:02.120917: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:40:02.121501: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:40:02.122292: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:40:02.122365: Standing charge is set to 46.63p
2026-08-18 05:40:02.206286: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:40:02.206949: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:40:02.207110: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:40:02.208046: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:40:02.208146: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:40:02.212456: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:40:02.212774: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:40:02.248294: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:40:02.248385: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:40:02.249430: High export rate found rates in range 99p to -99p
2026-08-18 05:40:02.271635: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:40:02.271727: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:40:02.281795: Battery level now 13.13kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -2.14p, change today 43.22p, rate_forward 6.87p
2026-08-18 05:40:02.282122: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 2.0p, import 2.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:40:02.325875: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:40:02.325978: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:40:02.389432: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:40:02.412981: Today's load divergence 92.26%, in-day adjustment 92.67%, damping 0.95x, yesterday 92.68% today 92.65% blend 76.39%
2026-08-18 05:40:02.413056: Today's predicted so far 3.99kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 3.99kWh forecast extra.
2026-08-18 05:40:02.413082: Today's actual load so far 2.83kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 05:40:02.446201: Inverter 0: Type SK Sunsynk
2026-08-18 05:40:02.446277: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:40:02.446426: Reserve min: 7%, battery_min: 7%
2026-08-18 05:40:02.446487: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:40:02.446701: Inverter 0 SoC: 13.12kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power 398W, current battery voltage 51.2V, grid power -54W, load power 458W, PV Power 0W
2026-08-18 05:40:02.446838: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:40:02.446911: Inverter 0 scheduled charge enable is False
2026-08-18 05:40:02.446934: Inverter 0 charge windows currently []
2026-08-18 05:40:02.446955: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:40:02.447041: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:40:02.447086: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:40:02.447116: Inverter 0 scheduled discharge enable is False
2026-08-18 05:40:02.447216: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:40:02.447247: Inverter 0 discharge windows currently []
2026-08-18 05:40:02.447265: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:40:02.447280: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:40:02.447293: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:40:02.494366: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:40:02.494464: Plan was last updated on 2026-08-18 05:30:00+01:00 and is now 10.0 minutes old
2026-08-18 05:40:02.494663: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:40:02.494703: Best export window [ ]
2026-08-18 05:40:02.495563: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:40:02.498738: Load divergence over 8.0 hours mean 393.89W, min 262.2W, max 702.6W, std dev 58.48W, divergence 7.42%
2026-08-18 05:40:02.517384: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:40:02.517496: LoadML is_calculating False
2026-08-18 05:40:02.517633: Creating pool of 12 processes to match your CPU count
2026-08-18 05:40:02.624352: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 605.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.24kWh, PV 0.0kWh
2026-08-18 05:40:02.735541: Battery has 18.08 hours left - now at 13.12kWh
2026-08-18 05:40:02.772277: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 635.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.55kWh, PV 0.0kWh
2026-08-18 05:40:02.842867: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.55kWh, PV 0.0kWh
2026-08-18 05:40:02.917539: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 327.16p, metric_keep 0kWh, min_soc 1.48kWh @ 08-18 23:25:00, load 30.24kWh, PV 0.0kWh
2026-08-18 05:40:02.917627: Saving plan best values to HA entities
2026-08-18 05:40:03.059421: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:40:03.064173: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:40:03.076944: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.34kWh, house 0.0kWh, export 0.0kWh, metric 327.16p, metric10 341.95p
2026-08-18 05:40:03.146374: Marginal costs baseline metric (no standing charge): 280.5247
2026-08-18 05:40:03.375170: Marginal energy costs matrix computed: min=25.63 max=32.74
2026-08-18 05:40:03.443705: Rate array import [{'start': 340, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 340, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:40:03.444403: - Your estimated bill for today is £1.50 and tomorrow is £1.93
2026-08-18 05:40:03.444446: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:40:03.444465: - The battery is currently at 82% and is in eco mode for the next 17 hours.
2026-08-18 05:40:03.444480: - For the next 48 hours there will be no solar generation.
2026-08-18 05:40:03.444510: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 05:40:03.444524: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 05:40:03.444538:
2026-08-18 05:40:03.497794: Plan calculation took 1.00 seconds
2026-08-18 05:40:03.501118: No high rate period found
2026-08-18 05:40:03.561600: Import threshold used for optimisation was 8.0p
2026-08-18 05:40:03.627806: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:40:03.634102: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 82%, target 100%
2026-08-18 05:40:03.634208: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:40:03.634298: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:40:03.634501: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:40:03.634577: No export window planned
2026-08-18 05:40:03.634678: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:40:03.634707: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:40:03.634923: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:40:03.635087: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:40:03.635139: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:40:03.635220: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:40:03.635309: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635342: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635367: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635387: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635407: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635431: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635451: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635563: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635605: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635624: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635643: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:03.635659: Inverter 0 count register writes 0
2026-08-18 05:40:03.648909: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 05:40:03.649092: Recompute is saving previous plan...
2026-08-18 05:40:03.649977: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 05:40:03.650026: Best export window [ ]
2026-08-18 05:40:03.650695: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:40:03.653342: Load divergence over 8.0 hours mean 393.89W, min 262.2W, max 702.6W, std dev 58.48W, divergence 7.42%
2026-08-18 05:40:03.668377: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:40:03.668495: LoadML is_calculating False
2026-08-18 05:40:03.668579: Creating pool of 12 processes to match your CPU count
2026-08-18 05:40:03.736717: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 05:40:03.737462: Optimise levels pass started at 2026-08-18 05:40:03
2026-08-18 05:40:03.738219: Optimise all windows, total charge 24 export 1
2026-08-18 05:40:04.059649: >> Region optimisation pass width 960 gives best_metric 303.55p, best_cost 308.2p, best_cycle 37.2kWh, best_import 22.53kWh
2026-08-18 05:40:04.168500: >> Region optimisation pass width 480 gives best_metric 303.55p, best_cost 308.2p, best_cycle 37.2kWh, best_import 22.53kWh
2026-08-18 05:40:04.611447: >> Region optimisation pass width 240 gives best_metric 303.55p, best_cost 308.2p, best_cycle 37.2kWh, best_import 22.53kWh
2026-08-18 05:40:05.131440: >> Region optimisation pass width 120 gives best_metric 303.55p, best_cost 308.2p, best_cycle 37.2kWh, best_import 22.53kWh
2026-08-18 05:40:05.131627: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 05:40:05.131693: Optimise levels pass ended at 2026-08-18 05:40:05, duration 1.4 seconds tried 53 combinations
2026-08-18 05:40:05.131756: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 303.55p, best_keep 0kWh, best_cycle 37.2kWh, best_carbon 0kg, best_import 22.53kWh
2026-08-18 05:40:05.150942: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 05:40:07.771378: Tweak plan optimisation started metric 263.84p, cost 274.28p
2026-08-18 05:40:08.056767: Tweak optimisation finished metric 263.84p, cost 274.28p, metric_keep 0kWh, cycle 36.99kWh, carbon 0kg, import 18.56kWh, changed 8 window(s)
2026-08-18 05:40:08.074391: Swap charge optimisation started metric 263.84p, cost 274.28p, min_improvement_swap 0.1p
2026-08-18 05:40:08.728410: Swap charge optimisation finished metric 263.84p, cost 274.28p
2026-08-18 05:40:08.876914: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 261.57p -> 260.98p, plan now metric 264.75p, cost 270.12p, cycle 37.0kWh, import 18.04kWh
2026-08-18 05:40:08.887050: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:40:08.887386: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:40:08.887600: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:40:08.887766: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:40:08.927300: Previous plan best metric is 263.84 (cost 274.28) and new plan best metric is 263.84 (cost 274.28)
2026-08-18 05:40:08.927510: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 05:40:08.927676: Plan valid is now true after recompute was False
2026-08-18 05:40:08.957693: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 603.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.04kWh, PV 0.0kWh
2026-08-18 05:40:09.063604: Battery has 18.08 hours left - now at 13.12kWh
2026-08-18 05:40:09.102860: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.34kWh, PV 0.0kWh
2026-08-18 05:40:09.174166: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.34kWh, PV 0.0kWh
2026-08-18 05:40:09.238917: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 318.9p, metric_keep 0kWh, min_soc 1.48kWh @ 08-18 23:25:00, load 30.04kWh, PV 0.0kWh
2026-08-18 05:40:09.238991: Saving plan best values to HA entities
2026-08-18 05:40:09.377562: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:40:09.382637: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:40:09.387409: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.3kWh, house 0.0kWh, export 0.0kWh, metric 318.9p, metric10 334.73p
2026-08-18 05:40:09.448037: Marginal costs baseline metric (no standing charge): 272.2708
2026-08-18 05:40:09.687016: Marginal energy costs matrix computed: min=25.63 max=32.74
2026-08-18 05:40:09.754289: Rate array import [{'start': 340, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 340, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:40:09.754973: - Your estimated bill for today is £1.50 and tomorrow is £1.93
2026-08-18 05:40:09.755016: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:40:09.755035: - The battery is currently at 82% and is in eco mode for the next 17 hours.
2026-08-18 05:40:09.755049: - For the next 48 hours there will be no solar generation.
2026-08-18 05:40:09.755063: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 05:40:09.755077: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 05:40:09.755094:
2026-08-18 05:40:09.812910: Plan calculation took 6.16 seconds
2026-08-18 05:40:09.813215: Inverter 0: Type SK Sunsynk
2026-08-18 05:40:09.813262: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:40:09.813481: Reserve min: 7%, battery_min: 7%
2026-08-18 05:40:09.813557: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:40:09.813897: Inverter 0 SoC: 13.12kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power 397W, current battery voltage 51.2V, grid power -54W, load power 458W, PV Power 0W
2026-08-18 05:40:09.814120: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:40:09.814224: Inverter 0 scheduled charge enable is False
2026-08-18 05:40:09.814261: Inverter 0 charge windows currently []
2026-08-18 05:40:09.814292: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:40:09.814401: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:40:09.814440: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:40:09.814476: Inverter 0 scheduled discharge enable is False
2026-08-18 05:40:09.814601: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:40:09.814639: Inverter 0 discharge windows currently []
2026-08-18 05:40:09.814662: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:40:09.814683: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:40:09.814724: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:40:09.865389: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 82%, target 100%
2026-08-18 05:40:09.865532: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:40:09.865604: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:40:09.865799: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:40:09.865896: No export window planned
2026-08-18 05:40:09.866016: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:40:09.866070: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:40:09.866224: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:40:09.866385: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:40:09.866449: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:40:09.866513: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:40:09.866617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866656: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866712: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866742: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866791: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866866: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866904: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866931: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866955: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.866985: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.867009: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.867037: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:40:09.867057: Inverter 0 count register writes 0
2026-08-18 05:40:09.886745: Total inverter register writes now 867
2026-08-18 05:40:09.919839: Info: Completed run status Demand
2026-08-18 05:40:09.925359: Info: record_status Demand
2026-08-18 05:40:09.932781: Saved current settings to /config/predbat_config.json
2026-08-18 05:40:09.933050: Compare, best tariff: current metric 129.87p
2026-08-18 05:40:49.055386: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:40:49.055607: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:40:49.055667: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:40:49.055832: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:40:49.055885: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:40:49.055959: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:40:49.055997: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:42:49.254985: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:42:49.255217: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:42:49.255252: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:42:49.255384: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:42:49.255442: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:42:49.255482: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:42:49.255500: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:44:49.458720: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:44:49.458951: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:44:49.458992: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:44:49.459147: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:44:49.459187: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:44:49.459209: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:44:49.459226: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:44:51.495434: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 05:44:52.546153: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:44:52.546380: Zero load period starting at 2026-08-17T10:54:00+0100 (1126 minutes) for 189 minutes with base value 401.225
2026-08-18 05:44:52.547326: Processing 1345 30-minute periods for power integration
2026-08-18 05:44:52.654419: ML Component: Car charging hold False, car energy reported load False
2026-08-18 05:44:52.756653: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:44:52.858221: ML Temperature data points: 50061
2026-08-18 05:44:53.131230: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 05:44:53.172528: ML Component: Data fetch completed, load data age 59.0 days, 17180 data points
2026-08-18 05:44:53.172716: ML Component: No training needed, model age is 0.47 hours
2026-08-18 05:44:53.172780: ML Component: Generating predictions load data age 59.0 days, 17180 data points
2026-08-18 05:44:53.313465: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0347 max_dow {0: 0.08345277784036266, 1: 0.08988611095034414, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-18 05:44:53.655810: ML Component: Generated 576 predictions (total 31.67 kWh over 48h)
2026-08-18 05:44:53.692495: ML Component: Prediction cycle completed
2026-08-18 05:44:53.785071: ML Component: Saved 17180 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 05:45:00.322303: --------------- PredBat - update at 2026-08-18 05:45:00+01:00 with clock skew 0 minutes, minutes now 345
2026-08-18 05:45:00.323014: Saved current settings to /config/predbat_config.json
2026-08-18 05:45:00.323173: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 05:45:00.323265: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:45:00.323346: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:45:00.338781: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:45:00.338882: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:45:00.339014: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:45:00.339443: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:45:00.339536: Predbat mode is set to Control charge & discharge
2026-08-18 05:45:00.514260: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:45:00.514385: Using load_power data to fill gaps in load_today data
2026-08-18 05:45:01.317203: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:45:01.317385: Zero load period starting at 2026-08-17T10:54:00+0100 (1131 minutes) for 189 minutes with base value 209.5
2026-08-18 05:45:01.318340: Processing 721 30-minute periods for power integration
2026-08-18 05:45:01.500643: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:45:01.500775: Car charging hold False, threshold 6.0kWh
2026-08-18 05:45:01.500819: Current data so far today: load 2.9kWh, import 9.9kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:45:01.515111: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:45:01.515199: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:45:01.515966: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:45:01.516055: Standing charge is set to 46.63p
2026-08-18 05:45:01.618190: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:45:01.618451: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:45:01.618655: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:45:01.620255: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:45:01.620421: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:45:01.627066: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:45:01.627413: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:45:01.671619: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:45:01.671757: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:45:01.672976: High export rate found rates in range 99p to -99p
2026-08-18 05:45:01.702254: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:45:01.702366: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:45:01.714711: Battery level now 13.12kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 43.16p, rate_forward 6.87p
2026-08-18 05:45:01.715094: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.6p, import 1.6p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:45:01.759403: Today's energy total net 9.9kWh, import 9.9kWh, export 0.0kWh, cost 125.83p, import 79.2p, export 0.0p, carbon 0.0kg
2026-08-18 05:45:01.759536: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:45:01.834200: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:45:01.862165: Today's load divergence 92.49%, in-day adjustment 92.73%, damping 0.95x, yesterday 92.68% today 92.87% blend 76.04%
2026-08-18 05:45:01.862474: Today's predicted so far 3.99kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 3.99kWh forecast extra.
2026-08-18 05:45:01.862522: Today's actual load so far 2.86kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 05:45:01.900954: Inverter 0: Type SK Sunsynk
2026-08-18 05:45:01.901043: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:45:01.901215: Reserve min: 7%, battery_min: 7%
2026-08-18 05:45:01.901284: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:45:01.901535: Inverter 0 SoC: 13.12kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power 396W, current battery voltage 51.2V, grid power -54W, load power 456W, PV Power 0W
2026-08-18 05:45:01.901683: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:45:01.901769: Inverter 0 scheduled charge enable is False
2026-08-18 05:45:01.901804: Inverter 0 charge windows currently []
2026-08-18 05:45:01.901831: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:45:01.901941: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:45:01.901976: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:45:01.902011: Inverter 0 scheduled discharge enable is False
2026-08-18 05:45:01.902235: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:45:01.902297: Inverter 0 discharge windows currently []
2026-08-18 05:45:01.902334: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:45:01.902354: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:45:01.902401: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:45:01.966024: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:45:01.966126: Plan was last updated on 2026-08-18 05:40:00+01:00 and is now 5.0 minutes old
2026-08-18 05:45:01.966291: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:45:01.966323: Best export window [ ]
2026-08-18 05:45:01.966914: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:45:01.969351: Load divergence over 8.0 hours mean 393.91W, min 274.2W, max 741.0W, std dev 66.97W, divergence 8.5%
2026-08-18 05:45:01.988304: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:45:01.988414: LoadML is_calculating False
2026-08-18 05:45:01.988473: Creating pool of 12 processes to match your CPU count
2026-08-18 05:45:02.102023: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 604.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.17kWh, PV 0.0kWh
2026-08-18 05:45:02.226742: Battery has 18.0 hours left - now at 13.12kWh
2026-08-18 05:45:02.272280: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.47kWh, PV 0.0kWh
2026-08-18 05:45:02.343820: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.47kWh, PV 0.0kWh
2026-08-18 05:45:02.420757: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 322.8p, metric_keep 0kWh, min_soc 1.51kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-18 05:45:02.420837: Saving plan best values to HA entities
2026-08-18 05:45:02.570662: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:45:02.575370: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:45:02.580230: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.79kWh, house 0.0kWh, export 0.0kWh, metric 322.8p, metric10 337.43p
2026-08-18 05:45:02.657386: Marginal costs baseline metric (no standing charge): 276.167
2026-08-18 05:45:02.936319: Marginal energy costs matrix computed: min=24.92 max=32.65
2026-08-18 05:45:03.018538: Rate array import [{'start': 345, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 345, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:45:03.019337: - Your estimated bill for today is £1.50 and tomorrow is £1.93
2026-08-18 05:45:03.019381: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:45:03.019404: - The battery is currently at 82% and is in eco mode for the next 17 hours.
2026-08-18 05:45:03.019422: - For the next 48 hours there will be no solar generation.
2026-08-18 05:45:03.019444: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 05:45:03.019462: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 05:45:03.019481:
2026-08-18 05:45:03.081374: Plan calculation took 1.12 seconds
2026-08-18 05:45:03.084934: No high rate period found
2026-08-18 05:45:03.128547: Import threshold used for optimisation was 8.0p
2026-08-18 05:45:03.169213: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:45:03.174173: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 82%, target 100%
2026-08-18 05:45:03.174270: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:45:03.174361: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:45:03.174569: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:45:03.174650: No export window planned
2026-08-18 05:45:03.174754: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:45:03.174782: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:45:03.174910: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:45:03.175073: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:45:03.175127: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:45:03.175181: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:45:03.175255: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175282: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175325: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175354: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175374: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175394: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175454: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175482: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:45:03.175611: Inverter 0 count register writes 0
2026-08-18 05:45:03.188217: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 05:45:03.193061: Total inverter register writes now 867
2026-08-18 05:45:03.220859: Info: Completed run status Demand
2026-08-18 05:45:03.226167: Info: record_status Demand
2026-08-18 05:45:03.231931: Saved current settings to /config/predbat_config.json
2026-08-18 05:45:03.232182: Compare, best tariff: current metric 129.87p
2026-08-18 05:45:34.325480: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:45:34.325729: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:45:34.325777: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:45:34.325914: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:45:34.325956: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:45:34.325977: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:45:34.325995: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:47:34.540892: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:47:34.541142: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:47:34.541206: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:47:34.541379: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:47:34.541418: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:47:34.541440: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:47:34.541458: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:49:48.760271: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:49:48.760495: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:49:48.760635: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:49:48.760828: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:49:48.760878: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:49:48.760908: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:49:48.760950: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:50:00.843873: --------------- PredBat - update at 2026-08-18 05:50:00+01:00 with clock skew 0 minutes, minutes now 350
2026-08-18 05:50:00.844726: Saved current settings to /config/predbat_config.json
2026-08-18 05:50:00.844878: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 05:50:00.844982: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:50:00.845095: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:50:00.862376: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:50:00.862494: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:50:00.862659: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:50:00.863152: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:50:00.863269: Predbat mode is set to Control charge & discharge
2026-08-18 05:50:01.029206: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:50:01.029327: Using load_power data to fill gaps in load_today data
2026-08-18 05:50:01.727631: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:50:01.727785: Zero load period starting at 2026-08-17T10:54:00+0100 (1136 minutes) for 189 minutes with base value 209.475
2026-08-18 05:50:01.728553: Processing 721 30-minute periods for power integration
2026-08-18 05:50:01.889089: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:50:01.889245: Car charging hold False, threshold 6.0kWh
2026-08-18 05:50:01.889299: Current data so far today: load 2.95kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:50:01.902096: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:50:01.902184: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:50:01.902877: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:50:01.902963: Standing charge is set to 46.63p
2026-08-18 05:50:01.990748: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:50:01.990946: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:50:01.991118: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:50:01.992042: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:50:01.992151: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:50:01.996580: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:50:01.996980: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:50:02.032545: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:50:02.032648: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:50:02.033759: High export rate found rates in range 99p to -99p
2026-08-18 05:50:02.056870: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:50:02.056990: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:50:02.069317: Battery level now 13.12kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 43.16p, rate_forward 6.87p
2026-08-18 05:50:02.069622: Last hour: net energy 0.25kWh, import 0.25kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 3.03p, import 3.03p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:50:02.117157: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 05:50:02.117273: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:50:02.181810: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:50:02.205238: Today's load divergence 92.68%, in-day adjustment 92.77%, damping 0.95x, yesterday 92.68% today 93.05% blend 75.69%
2026-08-18 05:50:02.205308: Today's predicted so far 4.01kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 4.01kWh forecast extra.
2026-08-18 05:50:02.205335: Today's actual load so far 2.9kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 05:50:02.236206: Inverter 0: Type SK Sunsynk
2026-08-18 05:50:02.236277: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:50:02.236424: Reserve min: 7%, battery_min: 7%
2026-08-18 05:50:02.236488: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:50:02.236707: Inverter 0 SoC: 13.12kW 82%, current charge rate 5000W, current discharge rate 5250W, current battery power 391W, current battery voltage 51.2V, grid power -55W, load power 454W, PV Power 0W
2026-08-18 05:50:02.236829: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:50:02.236898: Inverter 0 scheduled charge enable is False
2026-08-18 05:50:02.236922: Inverter 0 charge windows currently []
2026-08-18 05:50:02.236942: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:50:02.237032: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:50:02.237061: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:50:02.237090: Inverter 0 scheduled discharge enable is False
2026-08-18 05:50:02.237220: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:50:02.237252: Inverter 0 discharge windows currently []
2026-08-18 05:50:02.237272: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:50:02.237287: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:50:02.237303: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:50:02.299477: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:50:02.299591: Plan was last updated on 2026-08-18 05:40:00+01:00 and is now 10.0 minutes old
2026-08-18 05:50:02.299873: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:50:02.299960: Best export window [ ]
2026-08-18 05:50:02.300831: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:50:02.304081: Load divergence over 8.0 hours mean 395.41W, min 297.6W, max 693.0W, std dev 61.03W, divergence 7.72%
2026-08-18 05:50:02.321539: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:50:02.321633: LoadML is_calculating False
2026-08-18 05:50:02.321685: Creating pool of 12 processes to match your CPU count
2026-08-18 05:50:02.423439: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 606.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.28kWh, PV 0.0kWh
2026-08-18 05:50:02.533229: Battery has 18.0 hours left - now at 13.12kWh
2026-08-18 05:50:02.569765: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.58kWh, PV 0.0kWh
2026-08-18 05:50:02.636836: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.58kWh, PV 0.0kWh
2026-08-18 05:50:02.710656: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 328.39p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.28kWh, PV 0.0kWh
2026-08-18 05:50:02.710749: Saving plan best values to HA entities
2026-08-18 05:50:02.860703: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:50:02.867394: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:50:02.873154: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.27kWh, house 0.0kWh, export 0.0kWh, metric 328.39p, metric10 341.51p
2026-08-18 05:50:02.939572: Marginal costs baseline metric (no standing charge): 281.7587
2026-08-18 05:50:03.214517: Marginal energy costs matrix computed: min=24.19 max=32.56
2026-08-18 05:50:03.289533: Rate array import [{'start': 350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 350, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:50:03.290320: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 05:50:03.290364: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:50:03.290387: - The battery is currently at 82% and is in eco mode for the next 17 hours.
2026-08-18 05:50:03.290406: - For the next 48 hours there will be no solar generation.
2026-08-18 05:50:03.290425: - You will reach a minimum of 10% battery in 17 hours.
2026-08-18 05:50:03.290442: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 05:50:03.290459:
2026-08-18 05:50:03.354099: Plan calculation took 1.05 seconds
2026-08-18 05:50:03.357992: No high rate period found
2026-08-18 05:50:03.405459: Import threshold used for optimisation was 8.0p
2026-08-18 05:50:03.452124: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:50:03.457419: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 82%, target 100%
2026-08-18 05:50:03.457536: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:50:03.457635: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:50:03.457887: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:50:03.457977: No export window planned
2026-08-18 05:50:03.458103: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:50:03.458153: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:50:03.458301: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:50:03.458476: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:50:03.458555: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:50:03.458619: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:50:03.458716: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.458756: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.458792: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.458825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.458912: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.458944: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.458973: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459078: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459104: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459128: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459169: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459194: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459244: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:03.459267: Inverter 0 count register writes 0
2026-08-18 05:50:03.473772: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 05:50:03.473939: Recompute is saving previous plan...
2026-08-18 05:50:03.474802: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 05:50:03.474849: Best export window [ ]
2026-08-18 05:50:03.475726: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:50:03.478971: Load divergence over 8.0 hours mean 395.41W, min 297.6W, max 693.0W, std dev 61.03W, divergence 7.72%
2026-08-18 05:50:03.496930: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:50:03.497046: LoadML is_calculating False
2026-08-18 05:50:03.497107: Creating pool of 12 processes to match your CPU count
2026-08-18 05:50:03.575953: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 05:50:03.576680: Optimise levels pass started at 2026-08-18 05:50:03
2026-08-18 05:50:03.576736: Optimise all windows, total charge 24 export 1
2026-08-18 05:50:04.078072: >> Region optimisation pass width 960 gives best_metric 306.97p, best_cost 312.27p, best_cycle 37.58kWh, best_import 22.58kWh
2026-08-18 05:50:04.220471: >> Region optimisation pass width 480 gives best_metric 306.97p, best_cost 312.27p, best_cycle 37.58kWh, best_import 22.58kWh
2026-08-18 05:50:04.861823: >> Region optimisation pass width 240 gives best_metric 306.97p, best_cost 312.27p, best_cycle 37.58kWh, best_import 22.58kWh
2026-08-18 05:50:05.592634: >> Region optimisation pass width 120 gives best_metric 303.48p, best_cost 310.27p, best_cycle 38.13kWh, best_import 22.83kWh
2026-08-18 05:50:05.592811: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 05:50:05.592869: Optimise levels pass ended at 2026-08-18 05:50:05, duration 2.0 seconds tried 64 combinations
2026-08-18 05:50:05.592939: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 303.48p, best_keep 0kWh, best_cycle 38.13kWh, best_carbon 0kg, best_import 22.83kWh
2026-08-18 05:50:05.611735: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 05:50:08.054646: Tweak plan optimisation started metric 264.84p, cost 275.52p
2026-08-18 05:50:08.329533: Tweak optimisation finished metric 264.84p, cost 275.52p, metric_keep 0kWh, cycle 36.87kWh, carbon 0kg, import 18.49kWh, changed 8 window(s)
2026-08-18 05:50:08.346181: Swap charge optimisation started metric 264.84p, cost 275.52p, min_improvement_swap 0.1p
2026-08-18 05:50:08.974767: Swap charge optimisation finished metric 264.84p, cost 275.52p
2026-08-18 05:50:09.091751: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.8p -> 262.64p, plan now metric 265.24p, cost 273.53p, cycle 37.13kWh, import 18.24kWh
2026-08-18 05:50:09.100066: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:50:09.100387: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:50:09.100627: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:50:09.100773: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 05:50:09.132566: Previous plan best metric is 264.84 (cost 275.52) and new plan best metric is 264.84 (cost 275.52)
2026-08-18 05:50:09.132755: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 05:50:09.132891: Plan valid is now true after recompute was False
2026-08-18 05:50:09.157551: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.08kWh, PV 0.0kWh
2026-08-18 05:50:09.252624: Battery has 18.0 hours left - now at 13.12kWh
2026-08-18 05:50:09.293846: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.37kWh, PV 0.0kWh
2026-08-18 05:50:09.360042: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.31p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.37kWh, PV 0.0kWh
2026-08-18 05:50:09.434061: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 320.16p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.08kWh, PV 0.0kWh
2026-08-18 05:50:09.434205: Saving plan best values to HA entities
2026-08-18 05:50:09.576522: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:50:09.581670: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:50:09.587350: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.24kWh, house 0.0kWh, export 0.0kWh, metric 320.16p, metric10 334.31p
2026-08-18 05:50:09.664568: Marginal costs baseline metric (no standing charge): 273.5256
2026-08-18 05:50:09.893966: Marginal energy costs matrix computed: min=24.19 max=32.56
2026-08-18 05:50:09.958617: Rate array import [{'start': 350, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 350, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:50:09.959258: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 05:50:09.959294: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:50:09.959313: - The battery is currently at 82% and is in eco mode for the next 17 hours.
2026-08-18 05:50:09.959328: - For the next 48 hours there will be no solar generation.
2026-08-18 05:50:09.959342: - You will reach a minimum of 10% battery in 17 hours.
2026-08-18 05:50:09.959356: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 05:50:09.959370:
2026-08-18 05:50:10.016747: Plan calculation took 6.54 seconds
2026-08-18 05:50:10.017053: Inverter 0: Type SK Sunsynk
2026-08-18 05:50:10.017096: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:50:10.017347: Reserve min: 7%, battery_min: 7%
2026-08-18 05:50:10.017427: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:50:10.017756: Inverter 0 SoC: 13.03kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 390W, current battery voltage 51.2V, grid power -54W, load power 452W, PV Power 0W
2026-08-18 05:50:10.017977: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:50:10.018079: Inverter 0 scheduled charge enable is False
2026-08-18 05:50:10.018115: Inverter 0 charge windows currently []
2026-08-18 05:50:10.018206: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:50:10.018430: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:50:10.018502: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:50:10.018557: Inverter 0 scheduled discharge enable is False
2026-08-18 05:50:10.018743: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:50:10.018798: Inverter 0 discharge windows currently []
2026-08-18 05:50:10.018832: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:50:10.018858: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:50:10.018876: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:50:10.068229: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 81%, target 100%
2026-08-18 05:50:10.068356: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:50:10.068426: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:50:10.068609: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:50:10.068684: No export window planned
2026-08-18 05:50:10.068844: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:50:10.068879: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:50:10.069020: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:50:10.069216: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:50:10.069266: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:50:10.069343: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:50:10.069464: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069522: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069576: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069641: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069678: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069719: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069794: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069862: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.069951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.070001: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.070049: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:50:10.070072: Inverter 0 count register writes 0
2026-08-18 05:50:10.087421: Total inverter register writes now 867
2026-08-18 05:50:10.118080: Info: Completed run status Demand
2026-08-18 05:50:10.124984: Info: record_status Demand
2026-08-18 05:50:10.130525: Saved current settings to /config/predbat_config.json
2026-08-18 05:50:10.130806: Compare, best tariff: current metric 129.87p
2026-08-18 05:50:49.234592: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:50:49.234893: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:50:49.234949: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:50:49.235197: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:50:49.235242: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:50:49.235272: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:50:49.235313: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:52:49.440431: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:52:49.440668: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:52:49.440697: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:52:49.440827: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:52:49.440858: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:52:49.440878: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:52:49.440893: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:55:00.662518: --------------- PredBat - update at 2026-08-18 05:55:00+01:00 with clock skew 0 minutes, minutes now 355
2026-08-18 05:55:00.663122: Saved current settings to /config/predbat_config.json
2026-08-18 05:55:00.663236: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 05:55:00.663290: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 05:55:00.663377: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 05:55:00.678744: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 05:55:00.678865: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 05:55:00.679023: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 05:55:00.679528: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 05:55:00.679647: Predbat mode is set to Control charge & discharge
2026-08-18 05:55:00.861058: Found 21602 load_today datapoints going back 28 days
2026-08-18 05:55:00.861202: Using load_power data to fill gaps in load_today data
2026-08-18 05:55:01.697868: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 05:55:01.698107: Zero load period starting at 2026-08-17T10:54:00+0100 (1141 minutes) for 189 minutes with base value 209.45
2026-08-18 05:55:01.699134: Processing 721 30-minute periods for power integration
2026-08-18 05:55:01.893135: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 05:55:01.893286: Car charging hold False, threshold 6.0kWh
2026-08-18 05:55:01.893330: Current data so far today: load 3.0kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 05:55:01.908295: Car 0 using Octopus Intelligent is unplugged
2026-08-18 05:55:01.908393: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 05:55:01.909107: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 05:55:01.909176: Standing charge is set to 46.63p
2026-08-18 05:55:02.018277: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:55:02.018512: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:55:02.018692: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 05:55:02.019761: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 05:55:02.019864: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 05:55:02.025264: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 05:55:02.025719: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 05:55:02.068962: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 05:55:02.069080: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 05:55:02.070269: High export rate found rates in range 99p to -99p
2026-08-18 05:55:02.098115: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 05:55:02.098239: Car 0 on Octopus Intelligent, no active plan
2026-08-18 05:55:02.798650: Battery level now 13.12kWh, -1hr ago 13.42kWh, at midnight 6.84kWh, battery value change in the last hour -2.09p, change today 43.16p, rate_forward 6.87p
2026-08-18 05:55:02.799016: Last hour: net energy 0.2kWh, import 0.2kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 2.63p, import 2.63p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 05:55:02.866501: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 05:55:02.866608: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 05:55:02.929482: Using weighted-bucket historical load forecast over 14 days
2026-08-18 05:55:02.954088: Today's load divergence 92.96%, in-day adjustment 92.84%, damping 0.95x, yesterday 92.68% today 93.31% blend 75.35%
2026-08-18 05:55:02.954169: Today's predicted so far 4.02kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 4.02kWh forecast extra.
2026-08-18 05:55:02.954211: Today's actual load so far 2.95kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 05:55:02.986843: Inverter 0: Type SK Sunsynk
2026-08-18 05:55:02.986908: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 05:55:02.987052: Reserve min: 7%, battery_min: 7%
2026-08-18 05:55:02.987108: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 05:55:02.987332: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 388W, current battery voltage 51.2V, grid power -54W, load power 449W, PV Power 0W
2026-08-18 05:55:02.987455: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:55:02.987527: Inverter 0 scheduled charge enable is False
2026-08-18 05:55:02.987549: Inverter 0 charge windows currently []
2026-08-18 05:55:02.987571: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 05:55:02.987656: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:55:02.987685: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:55:02.987714: Inverter 0 scheduled discharge enable is False
2026-08-18 05:55:02.987815: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:55:02.987845: Inverter 0 discharge windows currently []
2026-08-18 05:55:02.987863: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:55:02.987878: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:55:02.987895: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:55:03.037222: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 05:55:03.037321: Plan was last updated on 2026-08-18 05:50:00+01:00 and is now 5.0 minutes old
2026-08-18 05:55:03.037597: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 05:55:03.037647: Best export window [ ]
2026-08-18 05:55:03.038886: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 05:55:03.042693: Load divergence over 8.0 hours mean 396.87W, min 292.8W, max 660.0W, std dev 61.42W, divergence 7.74%
2026-08-18 05:55:03.061574: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 05:55:03.061671: LoadML is_calculating False
2026-08-18 05:55:03.061728: Creating pool of 12 processes to match your CPU count
2026-08-18 05:55:03.175230: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 607.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:40:00, load 30.22kWh, PV 0.0kWh
2026-08-18 05:55:03.361351: Battery has 17.75 hours left - now at 12.96kWh
2026-08-18 05:55:03.403345: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 639.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.52kWh, PV 0.0kWh
2026-08-18 05:55:03.480680: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 343.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.52kWh, PV 0.0kWh
2026-08-18 05:55:03.555799: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 325.41p, metric_keep 0kWh, min_soc 1.39kWh @ 08-18 23:25:00, load 30.22kWh, PV 0.0kWh
2026-08-18 05:55:03.555883: Saving plan best values to HA entities
2026-08-18 05:55:03.693968: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 05:55:03.698325: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 05:55:03.702619: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.9kWh, house 0.0kWh, export 0.0kWh, metric 325.41p, metric10 343.09p
2026-08-18 05:55:03.768209: Marginal costs baseline metric (no standing charge): 278.7743
2026-08-18 05:55:03.993701: Marginal energy costs matrix computed: min=27.54 max=32.98
2026-08-18 05:55:04.065944: Rate array import [{'start': 355, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 355, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 05:55:04.066746: - Your estimated bill for today is £1.52 and tomorrow is £1.94
2026-08-18 05:55:04.066792: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 05:55:04.066815: - The battery is currently at 81% and is in eco mode for the next 17 hours.
2026-08-18 05:55:04.066834: - For the next 48 hours there will be no solar generation.
2026-08-18 05:55:04.066853: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 05:55:04.066870: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 05:55:04.066896:
2026-08-18 05:55:04.123433: Plan calculation took 1.09 seconds
2026-08-18 05:55:04.127283: No high rate period found
2026-08-18 05:55:04.175027: Import threshold used for optimisation was 8.0p
2026-08-18 05:55:04.220383: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 05:55:04.225000: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 81%, target 100%
2026-08-18 05:55:04.225092: Inverter 0 disabled charge window while waiting for schedule (now 08-18 05:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 05:55:04.225174: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:55:04.225397: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:55:04.225476: No export window planned
2026-08-18 05:55:04.225584: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 05:55:04.225613: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 05:55:04.225722: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 05:55:04.225869: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 05:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 05:55:04.225919: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 05:55:04.225972: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 05:55:04.226046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226103: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226123: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226162: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226252: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226275: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226295: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226319: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226339: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226377: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 05:55:04.226393: Inverter 0 count register writes 0
2026-08-18 05:55:04.241439: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 05:55:04.246551: Total inverter register writes now 867
2026-08-18 05:55:04.274911: Info: Completed run status Demand
2026-08-18 05:55:04.280823: Info: record_status Demand
2026-08-18 05:55:04.286617: Saved current settings to /config/predbat_config.json
2026-08-18 05:55:04.286920: Compare, best tariff: current metric 129.87p
2026-08-18 05:55:34.384737: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:55:34.384966: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:55:34.385005: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:55:34.385145: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:55:34.385233: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:55:34.385261: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:55:34.385281: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:55:49.772239: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 05:55:49.924439: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 05:57:34.591718: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:57:34.592033: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:57:34.592096: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:57:34.592335: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:57:34.592380: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:57:34.592402: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:57:34.592429: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 05:58:45.713508: Info: HAHistory: Pruning history data started.
2026-08-18 05:58:45.716180: Info: HAHistory: Pruning history data completed.
2026-08-18 05:59:48.816792: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 05:59:48.817255: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 05:59:48.817352: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 05:59:48.817597: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 05:59:48.817667: Note: Inverter does not support discharge freeze - disabled
2026-08-18 05:59:48.817694: Note: Inverter does not support charge freeze - disabled
2026-08-18 05:59:48.817714: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:00:00.899991: --------------- PredBat - update at 2026-08-18 06:00:00+01:00 with clock skew 0 minutes, minutes now 360
2026-08-18 06:00:00.900774: Saved current settings to /config/predbat_config.json
2026-08-18 06:00:00.900941: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 06:00:00.901074: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:00:00.901217: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:00:00.929185: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:00:00.929391: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:00:00.929663: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:00:00.930485: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:00:00.930671: Predbat mode is set to Control charge & discharge
2026-08-18 06:00:01.299130: Found 21602 load_today datapoints going back 27 days
2026-08-18 06:00:01.299299: Using load_power data to fill gaps in load_today data
2026-08-18 06:00:02.165249: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:00:02.165435: Zero load period starting at 2026-08-17T10:54:00+0100 (1146 minutes) for 189 minutes with base value 209.425
2026-08-18 06:00:02.166436: Processing 721 30-minute periods for power integration
2026-08-18 06:00:02.381228: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:00:02.381352: Car charging hold False, threshold 6.0kWh
2026-08-18 06:00:02.381401: Current data so far today: load 3.05kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:00:02.395486: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:00:02.395581: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:00:02.396263: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:00:02.396327: Standing charge is set to 46.63p
2026-08-18 06:00:02.500129: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:00:02.500399: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:00:02.500628: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:00:02.501566: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:00:02.501685: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:00:02.506268: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:00:02.506611: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:00:02.546762: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:00:02.546889: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:00:02.548136: High export rate found rates in range 99p to -99p
2026-08-18 06:00:02.572005: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:00:02.572119: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:00:02.585798: Battery level now 12.96kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 42.06p, rate_forward 6.87p
2026-08-18 06:00:02.586186: Last hour: net energy 0.15kWh, import 0.15kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 2.23p, import 2.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:00:02.657603: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:00:02.657732: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:00:02.738168: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:00:02.772543: Today's load divergence 92.72%, in-day adjustment 92.78%, damping 0.95x, yesterday 92.68% today 93.08% blend 75.0%
2026-08-18 06:00:02.772652: Today's predicted so far 4.13kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 4.13kWh forecast extra.
2026-08-18 06:00:02.772705: Today's actual load so far 3.03kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 06:00:02.842171: Inverter 0: Type SK Sunsynk
2026-08-18 06:00:02.842261: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:00:02.842442: Reserve min: 7%, battery_min: 7%
2026-08-18 06:00:02.842541: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:00:02.842830: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 384W, current battery voltage 51.2V, grid power -56W, load power 446W, PV Power 0W
2026-08-18 06:00:02.843025: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:00:02.843130: Inverter 0 scheduled charge enable is False
2026-08-18 06:00:02.843175: Inverter 0 charge windows currently []
2026-08-18 06:00:02.843237: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:00:02.843381: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:00:02.843421: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:00:02.843461: Inverter 0 scheduled discharge enable is False
2026-08-18 06:00:02.843609: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:00:02.843646: Inverter 0 discharge windows currently []
2026-08-18 06:00:02.843666: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:00:02.843686: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:00:02.843723: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:00:02.903102: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:00:02.903241: Plan was last updated on 2026-08-18 05:50:00+01:00 and is now 10.0 minutes old
2026-08-18 06:00:02.903461: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:00:02.903502: Best export window [ ]
2026-08-18 06:00:02.904311: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:00:02.907584: Load divergence over 8.0 hours mean 396.18W, min 281.4W, max 651.6W, std dev 57.08W, divergence 7.2%
2026-08-18 06:00:02.923052: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:00:02.923289: LoadML is_calculating False
2026-08-18 06:00:02.923362: Creating pool of 12 processes to match your CPU count
2026-08-18 06:00:03.027636: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 607.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.31kWh, PV 0.0kWh
2026-08-18 06:00:03.175523: Battery has 17.75 hours left - now at 12.96kWh
2026-08-18 06:00:03.225768: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.72p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.6kWh, PV 0.0kWh
2026-08-18 06:00:03.306226: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 344.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.6kWh, PV 0.0kWh
2026-08-18 06:00:03.389996: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 329.02p, metric_keep 0kWh, min_soc 1.45kWh @ 08-18 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-18 06:00:03.390081: Saving plan best values to HA entities
2026-08-18 06:00:03.570720: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:00:03.578208: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 06:00:03.584726: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.35kWh, house 0.0kWh, export 0.0kWh, metric 329.02p, metric10 344.57p
2026-08-18 06:00:03.662014: Marginal costs baseline metric (no standing charge): 282.389
2026-08-18 06:00:04.022151: Marginal energy costs matrix computed: min=26.32 max=32.82
2026-08-18 06:00:04.131279: Rate array import [{'start': 360, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 360, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:00:04.132295: - Your estimated bill for today is £1.51 and tomorrow is £1.94
2026-08-18 06:00:04.132366: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:00:04.132393: - The battery is currently at 81% and is in eco mode for the next 17 hours.
2026-08-18 06:00:04.132845: - For the next 48 hours there will be no solar generation.
2026-08-18 06:00:04.132894: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 06:00:04.132914: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:00:04.132929:
2026-08-18 06:00:04.214866: Plan calculation took 1.31 seconds
2026-08-18 06:00:04.219749: No high rate period found
2026-08-18 06:00:04.264050: Import threshold used for optimisation was 8.0p
2026-08-18 06:00:04.333416: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:00:04.340708: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 81%, target 100%
2026-08-18 06:00:04.340846: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:00:04.340947: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:00:04.341211: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:00:04.341306: No export window planned
2026-08-18 06:00:04.341435: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:00:04.341470: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:00:04.341606: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:00:04.341833: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:00:04.341906: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:00:04.341975: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:00:04.342073: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342113: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342148: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342181: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342248: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342278: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342428: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342486: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:04.342690: Inverter 0 count register writes 0
2026-08-18 06:00:04.422912: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 06:00:04.423087: Recompute is saving previous plan...
2026-08-18 06:00:04.424751: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 06:00:04.424845: Best export window [ ]
2026-08-18 06:00:04.426258: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:00:04.433360: Load divergence over 8.0 hours mean 396.18W, min 281.4W, max 651.6W, std dev 57.08W, divergence 7.2%
2026-08-18 06:00:04.460041: Calculating data from yesterday for savings calculation
2026-08-18 06:00:04.472870: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 06:00:04.523152: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 06:00:04.541468: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 06:00:04.565582: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 06:00:04.602573: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 06:00:04.668973: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 06:00:04.669116: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 06:00:04.681751: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:00:04.681877: LoadML is_calculating False
2026-08-18 06:00:04.681964: Creating pool of 12 processes to match your CPU count
2026-08-18 06:00:04.766424: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 06:00:04.767284: Optimise levels pass started at 2026-08-18 06:00:04
2026-08-18 06:00:04.767357: Optimise all windows, total charge 24 export 1
2026-08-18 06:00:05.444328: >> Region optimisation pass width 960 gives best_metric 305.12p, best_cost 311.04p, best_cycle 38.24kWh, best_import 22.93kWh
2026-08-18 06:00:05.563570: >> Region optimisation pass width 480 gives best_metric 305.12p, best_cost 311.04p, best_cycle 38.24kWh, best_import 22.93kWh
2026-08-18 06:00:06.065230: >> Region optimisation pass width 240 gives best_metric 305.12p, best_cost 311.04p, best_cycle 38.24kWh, best_import 22.93kWh
2026-08-18 06:00:06.759047: >> Region optimisation pass width 120 gives best_metric 305.12p, best_cost 311.04p, best_cycle 38.24kWh, best_import 22.93kWh
2026-08-18 06:00:06.759297: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 06:00:06.759381: Optimise levels pass ended at 2026-08-18 06:00:06, duration 2.0 seconds tried 56 combinations
2026-08-18 06:00:06.759450: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 305.12p, best_keep 0kWh, best_cycle 38.24kWh, best_carbon 0kg, best_import 22.93kWh
2026-08-18 06:00:06.784284: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 16.0, 16.0, 16.0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 06:00:10.053366: Tweak plan optimisation started metric 265.97p, cost 276.3p
2026-08-18 06:00:10.338021: Tweak optimisation finished metric 265.97p, cost 276.3p, metric_keep 0kWh, cycle 36.9kWh, carbon 0kg, import 18.59kWh, changed 8 window(s)
2026-08-18 06:00:10.356841: Swap charge optimisation started metric 265.97p, cost 276.3p, min_improvement_swap 0.1p
2026-08-18 06:00:11.070538: Swap charge optimisation finished metric 265.97p, cost 276.3p
2026-08-18 06:00:11.185016: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 263.61p -> 263.46p, plan now metric 266.41p, cost 274.26p, cycle 37.17kWh, import 18.33kWh
2026-08-18 06:00:11.194007: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:00:11.194359: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:00:11.194540: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:00:11.194676: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:00:11.229648: Previous plan best metric is 265.97 (cost 276.3) and new plan best metric is 265.97 (cost 276.3)
2026-08-18 06:00:11.229828: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 06:00:11.229948: Plan valid is now true after recompute was False
2026-08-18 06:00:11.256012: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 606.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.12kWh, PV 0.0kWh
2026-08-18 06:00:11.348850: Battery has 17.75 hours left - now at 12.96kWh
2026-08-18 06:00:11.387957: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 636.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.41kWh, PV 0.0kWh
2026-08-18 06:00:11.457007: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 337.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.41kWh, PV 0.0kWh
2026-08-18 06:00:11.539718: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 320.9p, metric_keep 0kWh, min_soc 1.45kWh @ 08-18 23:25:00, load 30.12kWh, PV 0.0kWh
2026-08-18 06:00:11.539797: Saving plan best values to HA entities
2026-08-18 06:00:11.688576: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:00:11.693561: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 06:00:11.698845: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.33kWh, house 0.0kWh, export 0.0kWh, metric 320.9p, metric10 337.48p
2026-08-18 06:00:11.768281: Marginal costs baseline metric (no standing charge): 274.2647
2026-08-18 06:00:12.064025: Marginal energy costs matrix computed: min=26.32 max=32.82
2026-08-18 06:00:12.136927: Rate array import [{'start': 360, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 360, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:00:12.137708: - Your estimated bill for today is £1.51 and tomorrow is £1.94
2026-08-18 06:00:12.137755: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:00:12.137796: - The battery is currently at 81% and is in eco mode for the next 17 hours.
2026-08-18 06:00:12.137815: - For the next 48 hours there will be no solar generation.
2026-08-18 06:00:12.137838: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 06:00:12.137855: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:00:12.137873:
2026-08-18 06:00:12.200281: Plan calculation took 7.78 seconds
2026-08-18 06:00:12.200679: Inverter 0: Type SK Sunsynk
2026-08-18 06:00:12.200747: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:00:12.201094: Reserve min: 7%, battery_min: 7%
2026-08-18 06:00:12.201240: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:00:12.201778: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 386W, current battery voltage 51.2V, grid power -54W, load power 446W, PV Power 0W
2026-08-18 06:00:12.202142: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:00:12.202314: Inverter 0 scheduled charge enable is False
2026-08-18 06:00:12.202374: Inverter 0 charge windows currently []
2026-08-18 06:00:12.202430: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:00:12.202606: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:00:12.202670: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:00:12.202731: Inverter 0 scheduled discharge enable is False
2026-08-18 06:00:12.202955: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:00:12.203011: Inverter 0 discharge windows currently []
2026-08-18 06:00:12.203057: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:00:12.203092: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:00:12.203123: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:00:12.258358: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 81%, target 100%
2026-08-18 06:00:12.258487: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:00:12.258548: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:00:12.258692: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:00:12.258761: No export window planned
2026-08-18 06:00:12.258850: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:00:12.258879: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:00:12.258987: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:00:12.259118: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:00:12.259161: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:00:12.259226: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:00:12.259306: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259334: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259362: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259384: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259427: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259450: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259474: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259588: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259607: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259627: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259650: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:00:12.259667: Inverter 0 count register writes 0
2026-08-18 06:00:12.278656: Total inverter register writes now 867
2026-08-18 06:00:12.312547: Info: Completed run status Demand
2026-08-18 06:00:12.319017: Info: record_status Demand
2026-08-18 06:00:12.325805: Saved current settings to /config/predbat_config.json
2026-08-18 06:00:12.326112: Compare, best tariff: current metric 129.87p
2026-08-18 06:00:49.432928: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:00:49.433295: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:00:49.433360: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:00:49.433540: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:00:49.433582: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:00:49.433604: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:00:49.433623: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:03:03.656631: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:03:03.656858: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:03:03.656915: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:03:03.657069: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:03:03.657107: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:03:03.657129: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:03:03.657146: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:05:00.865953: --------------- PredBat - update at 2026-08-18 06:05:00+01:00 with clock skew 0 minutes, minutes now 365
2026-08-18 06:05:00.866719: Saved current settings to /config/predbat_config.json
2026-08-18 06:05:00.866860: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 06:05:00.866969: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:05:00.867152: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:05:00.886008: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:05:00.886128: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:05:00.886307: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:05:00.886820: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:05:00.886937: Predbat mode is set to Control charge & discharge
2026-08-18 06:05:01.074344: Found 21602 load_today datapoints going back 27 days
2026-08-18 06:05:01.074465: Using load_power data to fill gaps in load_today data
2026-08-18 06:05:01.864268: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:05:01.864453: Zero load period starting at 2026-08-17T10:54:00+0100 (1151 minutes) for 189 minutes with base value 209.4
2026-08-18 06:05:01.865410: Processing 721 30-minute periods for power integration
2026-08-18 06:05:02.059502: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:05:02.059614: Car charging hold False, threshold 6.0kWh
2026-08-18 06:05:02.059657: Current data so far today: load 3.1kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:05:02.074838: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:05:02.074936: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:05:02.075706: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:05:02.075774: Standing charge is set to 46.63p
2026-08-18 06:05:02.184428: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:05:02.184669: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:05:02.184856: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:05:02.186000: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:05:02.186154: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:05:02.192222: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:05:02.192637: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:05:02.238908: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:05:02.239026: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:05:02.240420: High export rate found rates in range 99p to -99p
2026-08-18 06:05:02.269294: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:05:02.269434: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:05:02.281900: Battery level now 12.96kWh, -1hr ago 13.44kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 42.06p, rate_forward 6.87p
2026-08-18 06:05:02.282298: Last hour: net energy 0.1kWh, import 0.1kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.83p, import 1.83p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:05:02.341456: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:05:02.341607: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:05:02.419636: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:05:02.451284: Today's load divergence 92.54%, in-day adjustment 92.74%, damping 0.95x, yesterday 92.68% today 92.91% blend 74.65%
2026-08-18 06:05:02.451380: Today's predicted so far 4.22kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 4.22kWh forecast extra.
2026-08-18 06:05:02.451412: Today's actual load so far 3.09kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 06:05:02.488785: Inverter 0: Type SK Sunsynk
2026-08-18 06:05:02.488871: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:05:02.489108: Reserve min: 7%, battery_min: 7%
2026-08-18 06:05:02.489222: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:05:02.489556: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 385W, current battery voltage 51.2V, grid power -55W, load power 442W, PV Power 0W
2026-08-18 06:05:02.489746: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:05:02.489838: Inverter 0 scheduled charge enable is False
2026-08-18 06:05:02.489873: Inverter 0 charge windows currently []
2026-08-18 06:05:02.489900: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:05:02.490004: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:05:02.490038: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:05:02.490073: Inverter 0 scheduled discharge enable is False
2026-08-18 06:05:02.490213: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:05:02.490253: Inverter 0 discharge windows currently []
2026-08-18 06:05:02.490276: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:05:02.490299: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:05:02.490316: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:05:02.549589: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:05:02.549735: Plan was last updated on 2026-08-18 06:00:00+01:00 and is now 5.0 minutes old
2026-08-18 06:05:02.549972: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:05:02.550014: Best export window [ ]
2026-08-18 06:05:02.551171: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:05:02.554404: Load divergence over 8.0 hours mean 393.63W, min 263.4W, max 664.2W, std dev 57.94W, divergence 7.36%
2026-08-18 06:05:02.574038: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:05:02.574143: LoadML is_calculating False
2026-08-18 06:05:02.574212: Creating pool of 12 processes to match your CPU count
2026-08-18 06:05:02.690900: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.23kWh, PV 0.0kWh
2026-08-18 06:05:02.817557: Battery has 17.75 hours left - now at 12.96kWh
2026-08-18 06:05:02.861588: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.52kWh, PV 0.0kWh
2026-08-18 06:05:02.953704: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 339.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.52kWh, PV 0.0kWh
2026-08-18 06:05:03.029655: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 324.62p, metric_keep 0kWh, min_soc 1.5kWh @ 08-18 23:25:00, load 30.23kWh, PV 0.0kWh
2026-08-18 06:05:03.029777: Saving plan best values to HA entities
2026-08-18 06:05:03.216669: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:05:03.222056: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:05:03.227060: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.8kWh, house 0.0kWh, export 0.0kWh, metric 324.62p, metric10 339.29p
2026-08-18 06:05:03.321321: Marginal costs baseline metric (no standing charge): 277.9842
2026-08-18 06:05:03.593422: Marginal energy costs matrix computed: min=25.07 max=32.67
2026-08-18 06:05:03.676161: Rate array import [{'start': 365, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 365, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:05:03.676869: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 06:05:03.676928: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:05:03.676958: - The battery is currently at 81% and is in eco mode for the next 17 hours.
2026-08-18 06:05:03.676980: - For the next 48 hours there will be no solar generation.
2026-08-18 06:05:03.677003: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 06:05:03.677022: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:05:03.677036:
2026-08-18 06:05:03.746898: Plan calculation took 1.20 seconds
2026-08-18 06:05:03.750510: No high rate period found
2026-08-18 06:05:03.805980: Import threshold used for optimisation was 8.0p
2026-08-18 06:05:03.853708: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:05:03.860395: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 81%, target 100%
2026-08-18 06:05:03.860526: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:05:03.860627: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:05:03.860872: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:05:03.860967: No export window planned
2026-08-18 06:05:03.861095: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:05:03.861130: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:05:03.861278: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:05:03.861460: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:05:03.861543: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:05:03.861608: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:05:03.861697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861736: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861767: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861825: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861850: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861874: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861967: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.861993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.862017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.862041: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.862065: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.862095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:05:03.862115: Inverter 0 count register writes 0
2026-08-18 06:05:03.877573: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 06:05:03.882808: Total inverter register writes now 867
2026-08-18 06:05:03.915260: Info: Completed run status Demand
2026-08-18 06:05:03.922139: Info: record_status Demand
2026-08-18 06:05:03.932463: Saved current settings to /config/predbat_config.json
2026-08-18 06:05:03.932952: Compare, best tariff: current metric 129.87p
2026-08-18 06:05:34.039764: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:05:34.040026: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:05:34.040079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:05:34.040237: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:05:34.040282: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:05:34.040303: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:05:34.040321: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:07:34.250535: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:07:34.250761: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:07:34.250821: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:07:34.251012: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:07:34.251094: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:07:34.251117: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:07:34.251135: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:09:34.467695: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:09:34.467949: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:09:34.467995: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:09:34.468135: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:09:34.468194: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:09:34.468219: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:09:34.468237: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:10:00.560864: --------------- PredBat - update at 2026-08-18 06:10:00+01:00 with clock skew 0 minutes, minutes now 370
2026-08-18 06:10:00.561576: Saved current settings to /config/predbat_config.json
2026-08-18 06:10:00.561687: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 06:10:00.561763: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:10:00.561842: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:10:00.580135: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:10:00.580274: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:10:00.580433: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:10:00.580905: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:10:00.581022: Predbat mode is set to Control charge & discharge
2026-08-18 06:10:00.761460: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:10:00.761577: Using load_power data to fill gaps in load_today data
2026-08-18 06:10:01.571707: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:10:01.571875: Zero load period starting at 2026-08-17T10:54:00+0100 (1156 minutes) for 189 minutes with base value 209.35
2026-08-18 06:10:01.572867: Processing 721 30-minute periods for power integration
2026-08-18 06:10:01.756387: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:10:01.756510: Car charging hold False, threshold 6.0kWh
2026-08-18 06:10:01.756551: Current data so far today: load 3.0kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:10:01.771013: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:10:01.771098: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:10:01.771826: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:10:01.771895: Standing charge is set to 46.63p
2026-08-18 06:10:01.866764: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:10:01.866998: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:10:01.867223: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:10:01.868372: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:10:01.868480: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:10:01.873971: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:10:01.874337: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:10:01.918034: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:10:01.918145: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:10:01.919378: High export rate found rates in range 99p to -99p
2026-08-18 06:10:01.949885: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:10:01.950005: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:10:01.961685: Battery level now 12.96kWh, -1hr ago 13.28kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 42.06p, rate_forward 6.87p
2026-08-18 06:10:01.962057: Last hour: net energy 0.09kWh, import 0.09kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 1.73p, import 1.73p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:10:02.009060: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:10:02.009196: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:10:02.088589: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:10:02.118035: Today's load divergence 91.78%, in-day adjustment 92.56%, damping 0.95x, yesterday 92.68% today 92.2% blend 74.31%
2026-08-18 06:10:02.118123: Today's predicted so far 4.22kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 4.22kWh forecast extra.
2026-08-18 06:10:02.118155: Today's actual load so far 2.99kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 06:10:02.156230: Inverter 0: Type SK Sunsynk
2026-08-18 06:10:02.156328: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:10:02.156561: Reserve min: 7%, battery_min: 7%
2026-08-18 06:10:02.156666: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:10:02.156962: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 414W, current battery voltage 51.2V, grid power -54W, load power 469W, PV Power 0W
2026-08-18 06:10:02.157111: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:10:02.157209: Inverter 0 scheduled charge enable is False
2026-08-18 06:10:02.157244: Inverter 0 charge windows currently []
2026-08-18 06:10:02.157269: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:10:02.157380: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:10:02.157415: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:10:02.157450: Inverter 0 scheduled discharge enable is False
2026-08-18 06:10:02.157575: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:10:02.157610: Inverter 0 discharge windows currently []
2026-08-18 06:10:02.157632: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:10:02.157651: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:10:02.157675: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:10:02.459815: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:10:02.459951: Plan was last updated on 2026-08-18 06:00:00+01:00 and is now 10.0 minutes old
2026-08-18 06:10:02.460344: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:10:02.460396: Best export window [ ]
2026-08-18 06:10:02.461211: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:10:02.464293: Load divergence over 8.0 hours mean 393.63W, min 262.2W, max 702.6W, std dev 57.98W, divergence 7.36%
2026-08-18 06:10:02.483290: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:10:02.483396: LoadML is_calculating False
2026-08-18 06:10:02.483451: Creating pool of 12 processes to match your CPU count
2026-08-18 06:10:02.593921: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 606.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.16kWh, PV 0.0kWh
2026-08-18 06:10:02.711717: Battery has 17.75 hours left - now at 12.96kWh
2026-08-18 06:10:02.756447: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.45kWh, PV 0.0kWh
2026-08-18 06:10:02.830353: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.45kWh, PV 0.0kWh
2026-08-18 06:10:02.903600: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 328.23p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 30.16kWh, PV 0.0kWh
2026-08-18 06:10:02.903681: Saving plan best values to HA entities
2026-08-18 06:10:03.079268: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:10:03.083631: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:10:03.089281: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.25kWh, house 0.0kWh, export 0.0kWh, metric 328.23p, metric10 340.57p
2026-08-18 06:10:03.163555: Marginal costs baseline metric (no standing charge): 281.5993
2026-08-18 06:10:03.436251: Marginal energy costs matrix computed: min=23.52 max=32.47
2026-08-18 06:10:03.515353: Rate array import [{'start': 370, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 370, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:10:03.516151: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 06:10:03.516221: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:10:03.516244: - The battery is currently at 81% and is in eco mode for the next 17 hours.
2026-08-18 06:10:03.516263: - For the next 48 hours there will be no solar generation.
2026-08-18 06:10:03.516280: - You will reach a minimum of 10% battery in 17 hours.
2026-08-18 06:10:03.516297: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:10:03.516319:
2026-08-18 06:10:03.581152: Plan calculation took 1.12 seconds
2026-08-18 06:10:03.584576: No high rate period found
2026-08-18 06:10:03.633603: Import threshold used for optimisation was 8.0p
2026-08-18 06:10:03.676119: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:10:03.680588: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 81%, target 100%
2026-08-18 06:10:03.680686: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:10:03.680778: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:10:03.680981: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:10:03.681058: No export window planned
2026-08-18 06:10:03.681173: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:10:03.681205: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:10:03.681315: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:10:03.681464: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:10:03.681514: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:10:03.681571: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:10:03.681648: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681681: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681706: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681731: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681752: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681773: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681792: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681845: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681895: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681933: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:03.681991: Inverter 0 count register writes 0
2026-08-18 06:10:03.694586: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 06:10:03.694710: Recompute is saving previous plan...
2026-08-18 06:10:03.695437: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 06:10:03.695476: Best export window [ ]
2026-08-18 06:10:03.696174: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:10:03.698694: Load divergence over 8.0 hours mean 393.63W, min 262.2W, max 702.6W, std dev 57.98W, divergence 7.36%
2026-08-18 06:10:03.712945: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:10:03.713018: LoadML is_calculating False
2026-08-18 06:10:03.713069: Creating pool of 12 processes to match your CPU count
2026-08-18 06:10:03.787007: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 06:10:03.787820: Optimise levels pass started at 2026-08-18 06:10:03
2026-08-18 06:10:03.787875: Optimise all windows, total charge 24 export 1
2026-08-18 06:10:04.347512: >> Region optimisation pass width 960 gives best_metric 304.43p, best_cost 309.71p, best_cycle 37.59kWh, best_import 22.76kWh
2026-08-18 06:10:04.459102: >> Region optimisation pass width 480 gives best_metric 304.43p, best_cost 309.71p, best_cycle 37.59kWh, best_import 22.76kWh
2026-08-18 06:10:04.707718: >> Region optimisation pass width 240 gives best_metric 304.43p, best_cost 309.71p, best_cycle 37.59kWh, best_import 22.76kWh
2026-08-18 06:10:05.232485: >> Region optimisation pass width 120 gives best_metric 304.43p, best_cost 309.71p, best_cycle 37.59kWh, best_import 22.76kWh
2026-08-18 06:10:05.232663: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 06:10:05.232730: Optimise levels pass ended at 2026-08-18 06:10:05, duration 1.4 seconds tried 60 combinations
2026-08-18 06:10:05.232797: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 304.43p, best_keep 0kWh, best_cycle 37.59kWh, best_carbon 0kg, best_import 22.76kWh
2026-08-18 06:10:05.247817: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 06:10:07.872688: Tweak plan optimisation started metric 264.48p, cost 275.28p
2026-08-18 06:10:08.218125: Tweak optimisation finished metric 264.48p, cost 275.28p, metric_keep 0kWh, cycle 36.66kWh, carbon 0kg, import 18.46kWh, changed 8 window(s)
2026-08-18 06:10:08.238265: Swap charge optimisation started metric 264.48p, cost 275.28p, min_improvement_swap 0.1p
2026-08-18 06:10:09.055716: Swap charge optimisation finished metric 264.48p, cost 275.28p
2026-08-18 06:10:09.205327: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.56p -> 261.98p, plan now metric 265.39p, cost 271.12p, cycle 36.66kWh, import 17.94kWh
2026-08-18 06:10:09.219345: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:10:09.219725: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:10:09.219992: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:10:09.220192: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:10:09.260566: Previous plan best metric is 264.55 (cost 275.36) and new plan best metric is 264.48 (cost 275.28)
2026-08-18 06:10:09.260775: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 06:10:09.260926: Plan valid is now true after recompute was False
2026-08-18 06:10:09.291351: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 29.96kWh, PV 0.0kWh
2026-08-18 06:10:09.394980: Battery has 17.75 hours left - now at 12.96kWh
2026-08-18 06:10:09.434523: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.14p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.24kWh, PV 0.0kWh
2026-08-18 06:10:09.502896: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 333.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.24kWh, PV 0.0kWh
2026-08-18 06:10:09.576348: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 319.98p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 29.96kWh, PV 0.0kWh
2026-08-18 06:10:09.576422: Saving plan best values to HA entities
2026-08-18 06:10:09.702346: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:10:09.706683: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:10:09.710898: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.22kWh, house 0.0kWh, export 0.0kWh, metric 319.98p, metric10 333.35p
2026-08-18 06:10:09.775395: Marginal costs baseline metric (no standing charge): 273.3454
2026-08-18 06:10:10.065590: Marginal energy costs matrix computed: min=23.52 max=32.47
2026-08-18 06:10:10.137025: Rate array import [{'start': 370, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 370, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:10:10.138129: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 06:10:10.138205: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:10:10.138231: - The battery is currently at 81% and is in eco mode for the next 17 hours.
2026-08-18 06:10:10.138249: - For the next 48 hours there will be no solar generation.
2026-08-18 06:10:10.138272: - You will reach a minimum of 10% battery in 17 hours.
2026-08-18 06:10:10.138290: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:10:10.138308:
2026-08-18 06:10:10.196305: Plan calculation took 6.50 seconds
2026-08-18 06:10:10.196607: Inverter 0: Type SK Sunsynk
2026-08-18 06:10:10.196652: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:10:10.196875: Reserve min: 7%, battery_min: 7%
2026-08-18 06:10:10.196953: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:10:10.197321: Inverter 0 SoC: 12.96kW 81%, current charge rate 5000W, current discharge rate 5250W, current battery power 415W, current battery voltage 51.2V, grid power -54W, load power 470W, PV Power 0W
2026-08-18 06:10:10.197546: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:10:10.197645: Inverter 0 scheduled charge enable is False
2026-08-18 06:10:10.197680: Inverter 0 charge windows currently []
2026-08-18 06:10:10.197709: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:10:10.197814: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:10:10.197852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:10:10.197887: Inverter 0 scheduled discharge enable is False
2026-08-18 06:10:10.198016: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:10:10.198053: Inverter 0 discharge windows currently []
2026-08-18 06:10:10.198075: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:10:10.198095: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:10:10.198112: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:10:10.248059: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 81%, target 100%
2026-08-18 06:10:10.248225: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:10:10.248296: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:10:10.248473: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:10:10.248553: No export window planned
2026-08-18 06:10:10.248655: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:10:10.248689: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:10:10.248851: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:10:10.249007: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:10:10.249060: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:10:10.249122: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:10:10.249220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249263: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249294: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249326: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249406: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249465: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249500: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249526: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249551: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249580: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249604: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249632: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:10:10.249653: Inverter 0 count register writes 0
2026-08-18 06:10:10.269638: Total inverter register writes now 867
2026-08-18 06:10:10.300951: Info: Completed run status Demand
2026-08-18 06:10:10.306705: Info: record_status Demand
2026-08-18 06:10:10.313179: Saved current settings to /config/predbat_config.json
2026-08-18 06:10:10.313489: Compare, best tariff: current metric 129.87p
2026-08-18 06:10:49.423153: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:10:49.423457: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:10:49.423522: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:10:49.423674: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:10:49.423712: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:10:49.423733: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:10:49.423751: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:12:49.633983: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:12:49.634295: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:12:49.634389: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:12:49.634573: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:12:49.634611: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:12:49.634633: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:12:49.634651: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:14:55.414647: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 06:14:56.451363: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:14:56.451539: Zero load period starting at 2026-08-17T10:54:00+0100 (1156 minutes) for 189 minutes with base value 400.95
2026-08-18 06:14:56.452517: Processing 1345 30-minute periods for power integration
2026-08-18 06:14:56.558086: ML Component: Car charging hold False, car energy reported load False
2026-08-18 06:14:56.658484: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:14:56.757458: ML Temperature data points: 50031
2026-08-18 06:14:57.030373: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 06:14:57.070282: ML Component: Data fetch completed, load data age 59.0 days, 17186 data points
2026-08-18 06:14:57.070470: ML Component: No training needed, model age is 0.97 hours
2026-08-18 06:14:57.070544: ML Component: Generating predictions load data age 59.0 days, 17186 data points
2026-08-18 06:14:57.213903: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0242 max_dow {0: 0.08345277784036266, 1: 0.08988611095034414, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-18 06:14:57.669944: ML Component: Generated 576 predictions (total 31.92 kWh over 48h)
2026-08-18 06:14:57.709479: ML Component: Prediction cycle completed
2026-08-18 06:14:57.828935: ML Component: Saved 17186 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 06:15:00.219188: --------------- PredBat - update at 2026-08-18 06:15:00+01:00 with clock skew 0 minutes, minutes now 375
2026-08-18 06:15:00.219996: Saved current settings to /config/predbat_config.json
2026-08-18 06:15:00.220145: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 06:15:00.220281: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:15:00.220359: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:15:00.237798: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:15:00.237943: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:15:00.238116: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:15:00.238619: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:15:00.238736: Predbat mode is set to Control charge & discharge
2026-08-18 06:15:00.402336: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:15:00.402465: Using load_power data to fill gaps in load_today data
2026-08-18 06:15:01.148122: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:15:01.148336: Zero load period starting at 2026-08-17T10:54:00+0100 (1161 minutes) for 189 minutes with base value 209.3
2026-08-18 06:15:01.149115: Processing 721 30-minute periods for power integration
2026-08-18 06:15:01.305123: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:15:01.305641: Car charging hold False, threshold 6.0kWh
2026-08-18 06:15:01.305687: Current data so far today: load 3.0kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:15:01.322052: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:15:01.322661: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:15:01.323324: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:15:01.323676: Standing charge is set to 46.63p
2026-08-18 06:15:01.414180: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:15:01.414436: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:15:01.414659: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:15:01.415624: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:15:01.415741: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:15:01.420244: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:15:01.420571: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:15:01.455752: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:15:01.456124: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:15:01.457269: High export rate found rates in range 99p to -99p
2026-08-18 06:15:01.479732: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:15:01.479840: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:15:01.489875: Battery level now 12.96kWh, -1hr ago 13.28kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 42.06p, rate_forward 6.87p
2026-08-18 06:15:01.490296: Last hour: net energy 0.07kWh, import 0.07kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.63p, import 1.63p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:15:01.529059: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:15:01.529181: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:15:01.591500: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:15:01.615283: Today's load divergence 91.72%, in-day adjustment 92.54%, damping 0.95x, yesterday 92.68% today 92.14% blend 73.96%
2026-08-18 06:15:01.615692: Today's predicted so far 4.22kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 4.22kWh forecast extra.
2026-08-18 06:15:01.615735: Today's actual load so far 2.98kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 06:15:01.646544: Inverter 0: Type SK Sunsynk
2026-08-18 06:15:01.646614: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:15:01.646793: Reserve min: 7%, battery_min: 7%
2026-08-18 06:15:01.646885: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:15:01.647126: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 412W, current battery voltage 51.2V, grid power -55W, load power 470W, PV Power 0W
2026-08-18 06:15:01.647288: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:15:01.647394: Inverter 0 scheduled charge enable is False
2026-08-18 06:15:01.647454: Inverter 0 charge windows currently []
2026-08-18 06:15:01.647497: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:15:01.647618: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:15:01.647655: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:15:01.647699: Inverter 0 scheduled discharge enable is False
2026-08-18 06:15:01.647894: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:15:01.647976: Inverter 0 discharge windows currently []
2026-08-18 06:15:01.647999: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:15:01.648035: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:15:01.648057: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:15:01.695323: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:15:01.695410: Plan was last updated on 2026-08-18 06:10:00+01:00 and is now 5.0 minutes old
2026-08-18 06:15:01.695640: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:15:01.695683: Best export window [ ]
2026-08-18 06:15:01.696361: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:15:01.698975: Load divergence over 8.0 hours mean 393.67W, min 274.2W, max 741.0W, std dev 66.26W, divergence 8.42%
2026-08-18 06:15:01.714772: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:15:01.714873: LoadML is_calculating False
2026-08-18 06:15:01.714954: Creating pool of 12 processes to match your CPU count
2026-08-18 06:15:01.815962: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.87p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.03kWh, PV 0.0kWh
2026-08-18 06:15:01.916111: Battery has 17.5 hours left - now at 12.8kWh
2026-08-18 06:15:01.954925: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.32kWh, PV 0.0kWh
2026-08-18 06:15:02.024178: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 340.76p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.32kWh, PV 0.0kWh
2026-08-18 06:15:02.096752: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 325.09p, metric_keep 0kWh, min_soc 1.44kWh @ 08-18 23:25:00, load 30.03kWh, PV 0.0kWh
2026-08-18 06:15:02.096825: Saving plan best values to HA entities
2026-08-18 06:15:02.232307: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:15:02.236684: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:15:02.241048: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.86kWh, house 0kWh, export 0.0kWh, metric 325.09p, metric10 340.76p
2026-08-18 06:15:02.308744: Marginal costs baseline metric (no standing charge): 278.4588
2026-08-18 06:15:02.585774: Marginal energy costs matrix computed: min=26.34 max=32.82
2026-08-18 06:15:02.655665: Rate array import [{'start': 375, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 375, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:15:02.656503: - Your estimated bill for today is £1.52 and tomorrow is £1.94
2026-08-18 06:15:02.656552: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:15:02.656593: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-18 06:15:02.656614: - For the next 48 hours there will be no solar generation.
2026-08-18 06:15:02.656631: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 06:15:02.656648: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:15:02.656666:
2026-08-18 06:15:02.714762: Plan calculation took 1.02 seconds
2026-08-18 06:15:02.717635: No high rate period found
2026-08-18 06:15:02.759896: Import threshold used for optimisation was 8.0p
2026-08-18 06:15:02.804938: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:15:02.810252: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 80%, target 100%
2026-08-18 06:15:02.810365: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:15:02.810457: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:15:02.810691: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:15:02.810776: No export window planned
2026-08-18 06:15:02.810877: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:15:02.810907: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:15:02.811019: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:15:02.811180: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:15:02.811235: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:15:02.811287: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:15:02.811372: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811400: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811424: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811451: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811472: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811492: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811511: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811625: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811669: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811714: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811754: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811780: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811872: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:15:02.811924: Inverter 0 count register writes 0
2026-08-18 06:15:02.825404: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 06:15:02.829842: Total inverter register writes now 867
2026-08-18 06:15:02.861591: Info: Completed run status Demand
2026-08-18 06:15:02.867065: Info: record_status Demand
2026-08-18 06:15:02.873279: Saved current settings to /config/predbat_config.json
2026-08-18 06:15:02.873548: Compare, best tariff: current metric 129.87p
2026-08-18 06:15:33.965959: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:15:33.966358: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:15:33.966429: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:15:33.966601: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:15:33.966647: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:15:33.966670: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:15:33.966688: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:17:34.176472: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:17:34.176709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:17:34.176744: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:17:34.176882: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:17:34.176921: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:17:34.176943: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:17:34.176960: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:19:34.380527: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:19:34.380842: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:19:34.380896: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:19:34.381103: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:19:34.381159: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:19:34.381197: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:19:34.381251: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:20:00.479248: --------------- PredBat - update at 2026-08-18 06:20:00+01:00 with clock skew 0 minutes, minutes now 380
2026-08-18 06:20:00.479981: Saved current settings to /config/predbat_config.json
2026-08-18 06:20:00.480134: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 06:20:00.480230: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:20:00.480399: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:20:00.498305: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:20:00.498423: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:20:00.498588: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:20:00.499062: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:20:00.499177: Predbat mode is set to Control charge & discharge
2026-08-18 06:20:00.694625: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:20:00.694798: Using load_power data to fill gaps in load_today data
2026-08-18 06:20:01.518614: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:20:01.518784: Zero load period starting at 2026-08-17T10:54:00+0100 (1166 minutes) for 189 minutes with base value 209.275
2026-08-18 06:20:01.519733: Processing 721 30-minute periods for power integration
2026-08-18 06:20:01.685461: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:20:01.685574: Car charging hold False, threshold 6.0kWh
2026-08-18 06:20:01.685610: Current data so far today: load 3.12kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:20:01.697590: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:20:01.697658: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:20:01.698405: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:20:01.698466: Standing charge is set to 46.63p
2026-08-18 06:20:01.778731: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:20:01.778932: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:20:01.779096: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:20:01.780084: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:20:01.780177: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:20:01.784597: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:20:01.785015: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:20:01.821591: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:20:01.821716: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:20:01.822873: High export rate found rates in range 99p to -99p
2026-08-18 06:20:01.845704: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:20:01.845813: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:20:01.857459: Battery level now 12.8kWh, -1hr ago 13.28kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 40.96p, rate_forward 6.87p
2026-08-18 06:20:01.857949: Last hour: net energy 0.06kWh, import 0.06kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.53p, import 1.53p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:20:01.915737: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:20:01.915882: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:20:01.997687: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:20:02.028290: Today's load divergence 92.41%, in-day adjustment 92.71%, damping 0.95x, yesterday 92.68% today 92.79% blend 73.61%
2026-08-18 06:20:02.028387: Today's predicted so far 4.23kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 4.23kWh forecast extra.
2026-08-18 06:20:02.028420: Today's actual load so far 3.09kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 06:20:02.063005: Inverter 0: Type SK Sunsynk
2026-08-18 06:20:02.063096: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:20:02.063299: Reserve min: 7%, battery_min: 7%
2026-08-18 06:20:02.063377: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:20:02.063639: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 417W, current battery voltage 51.2V, grid power -55W, load power 472W, PV Power 0W
2026-08-18 06:20:02.063789: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:20:02.063874: Inverter 0 scheduled charge enable is False
2026-08-18 06:20:02.063931: Inverter 0 charge windows currently []
2026-08-18 06:20:02.063971: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:20:02.064082: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:20:02.064117: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:20:02.064153: Inverter 0 scheduled discharge enable is False
2026-08-18 06:20:02.064296: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:20:02.064335: Inverter 0 discharge windows currently []
2026-08-18 06:20:02.064358: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:20:02.064376: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:20:02.064393: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:20:02.119332: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:20:02.119431: Plan was last updated on 2026-08-18 06:10:00+01:00 and is now 10.0 minutes old
2026-08-18 06:20:02.119670: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:20:02.119717: Best export window [ ]
2026-08-18 06:20:02.120584: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:20:02.123963: Load divergence over 8.0 hours mean 396.87W, min 297.6W, max 693.0W, std dev 63.05W, divergence 7.94%
2026-08-18 06:20:02.141348: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:20:02.141445: LoadML is_calculating False
2026-08-18 06:20:02.141499: Creating pool of 12 processes to match your CPU count
2026-08-18 06:20:02.245113: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 607.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.23kWh, PV 0.0kWh
2026-08-18 06:20:02.402953: Battery has 17.42 hours left - now at 12.8kWh
2026-08-18 06:20:02.448433: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 636.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.52kWh, PV 0.0kWh
2026-08-18 06:20:02.529969: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 343.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.52kWh, PV 0.0kWh
2026-08-18 06:20:02.609072: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 329.06p, metric_keep 0kWh, min_soc 1.46kWh @ 08-18 23:25:00, load 30.23kWh, PV 0.0kWh
2026-08-18 06:20:02.609165: Saving plan best values to HA entities
2026-08-18 06:20:02.775014: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:20:02.781703: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:20:02.787524: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.35kWh, house 0.0kWh, export 0.0kWh, metric 329.06p, metric10 343.63p
2026-08-18 06:20:02.864764: Marginal costs baseline metric (no standing charge): 282.4225
2026-08-18 06:20:03.149324: Marginal energy costs matrix computed: min=25.97 max=32.78
2026-08-18 06:20:03.248940: Rate array import [{'start': 380, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 380, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:20:03.249824: - Your estimated bill for today is £1.52 and tomorrow is £1.94
2026-08-18 06:20:03.249876: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:20:03.249909: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-18 06:20:03.249947: - For the next 48 hours there will be no solar generation.
2026-08-18 06:20:03.249974: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 06:20:03.250025: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:20:03.250064:
2026-08-18 06:20:03.321497: Plan calculation took 1.20 seconds
2026-08-18 06:20:03.325997: No high rate period found
2026-08-18 06:20:03.368882: Import threshold used for optimisation was 8.0p
2026-08-18 06:20:03.414507: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:20:03.419411: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 80%, target 100%
2026-08-18 06:20:03.419514: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:20:03.419600: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:20:03.419806: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:20:03.419895: No export window planned
2026-08-18 06:20:03.420067: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:20:03.420116: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:20:03.420250: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:20:03.420403: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:20:03.420454: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:20:03.420504: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:20:03.420588: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420620: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420646: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420667: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420687: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420707: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420817: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420864: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420883: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420905: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:03.420925: Inverter 0 count register writes 0
2026-08-18 06:20:03.435146: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 06:20:03.435329: Recompute is saving previous plan...
2026-08-18 06:20:03.436271: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 06:20:03.436326: Best export window [ ]
2026-08-18 06:20:03.437188: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:20:03.440296: Load divergence over 8.0 hours mean 396.87W, min 297.6W, max 693.0W, std dev 63.05W, divergence 7.94%
2026-08-18 06:20:03.458199: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:20:03.458305: LoadML is_calculating False
2026-08-18 06:20:03.458369: Creating pool of 12 processes to match your CPU count
2026-08-18 06:20:03.534490: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 06:20:03.535188: Optimise levels pass started at 2026-08-18 06:20:03
2026-08-18 06:20:03.535264: Optimise all windows, total charge 24 export 1
2026-08-18 06:20:04.036690: >> Region optimisation pass width 960 gives best_metric 306.7p, best_cost 312.8p, best_cycle 37.98kWh, best_import 23.15kWh
2026-08-18 06:20:04.143177: >> Region optimisation pass width 480 gives best_metric 306.7p, best_cost 312.8p, best_cycle 37.98kWh, best_import 23.15kWh
2026-08-18 06:20:04.397652: >> Region optimisation pass width 240 gives best_metric 306.7p, best_cost 312.8p, best_cycle 37.98kWh, best_import 23.15kWh
2026-08-18 06:20:04.919350: >> Region optimisation pass width 120 gives best_metric 306.7p, best_cost 312.8p, best_cycle 37.98kWh, best_import 23.15kWh
2026-08-18 06:20:04.919507: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 06:20:04.919554: Optimise levels pass ended at 2026-08-18 06:20:04, duration 1.4 seconds tried 60 combinations
2026-08-18 06:20:04.919600: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 306.7p, best_keep 0kWh, best_cycle 37.98kWh, best_carbon 0kg, best_import 23.15kWh
2026-08-18 06:20:04.934845: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 06:20:07.541805: Tweak plan optimisation started metric 265.72p, cost 276.18p
2026-08-18 06:20:07.876704: Tweak optimisation finished metric 265.72p, cost 276.18p, metric_keep 0kWh, cycle 36.71kWh, carbon 0kg, import 18.57kWh, changed 8 window(s)
2026-08-18 06:20:07.897480: Swap charge optimisation started metric 265.72p, cost 276.18p, min_improvement_swap 0.1p
2026-08-18 06:20:08.743203: Swap charge optimisation finished metric 265.72p, cost 276.18p
2026-08-18 06:20:08.889943: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 263.46p -> 262.88p, plan now metric 266.62p, cost 272.04p, cycle 36.71kWh, import 18.06kWh
2026-08-18 06:20:08.901080: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:20:08.901777: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:20:08.902017: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:20:08.902186: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:20:08.941901: Previous plan best metric is 265.72 (cost 276.18) and new plan best metric is 265.72 (cost 276.18)
2026-08-18 06:20:08.942639: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 06:20:08.942805: Plan valid is now true after recompute was False
2026-08-18 06:20:08.978147: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.03kWh, PV 0.0kWh
2026-08-18 06:20:09.087737: Battery has 17.42 hours left - now at 12.8kWh
2026-08-18 06:20:09.128541: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 635.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.31kWh, PV 0.0kWh
2026-08-18 06:20:09.214956: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 336.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.31kWh, PV 0.0kWh
2026-08-18 06:20:09.281565: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 320.82p, metric_keep 0kWh, min_soc 1.46kWh @ 08-18 23:25:00, load 30.03kWh, PV 0.0kWh
2026-08-18 06:20:09.281641: Saving plan best values to HA entities
2026-08-18 06:20:09.433677: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:20:09.440644: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:20:09.445699: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.32kWh, house 0.0kWh, export 0.0kWh, metric 320.82p, metric10 336.43p
2026-08-18 06:20:09.518495: Marginal costs baseline metric (no standing charge): 274.1894
2026-08-18 06:20:09.757471: Marginal energy costs matrix computed: min=25.97 max=32.78
2026-08-18 06:20:09.817473: Rate array import [{'start': 380, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 380, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:20:09.818087: - Your estimated bill for today is £1.52 and tomorrow is £1.94
2026-08-18 06:20:09.818122: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:20:09.818139: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-18 06:20:09.818154: - For the next 48 hours there will be no solar generation.
2026-08-18 06:20:09.818168: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 06:20:09.818181: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:20:09.818230:
2026-08-18 06:20:09.872463: Plan calculation took 6.44 seconds
2026-08-18 06:20:09.872714: Inverter 0: Type SK Sunsynk
2026-08-18 06:20:09.872751: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:20:09.872935: Reserve min: 7%, battery_min: 7%
2026-08-18 06:20:09.872997: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:20:09.873301: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 417W, current battery voltage 51.2V, grid power -55W, load power 472W, PV Power 0W
2026-08-18 06:20:09.873489: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:20:09.873575: Inverter 0 scheduled charge enable is False
2026-08-18 06:20:09.873599: Inverter 0 charge windows currently []
2026-08-18 06:20:09.873622: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:20:09.873717: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:20:09.873749: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:20:09.873779: Inverter 0 scheduled discharge enable is False
2026-08-18 06:20:09.873889: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:20:09.873920: Inverter 0 discharge windows currently []
2026-08-18 06:20:09.873938: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:20:09.873954: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:20:09.873971: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:20:09.920139: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 80%, target 100%
2026-08-18 06:20:09.920311: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:20:09.920378: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:20:09.920559: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:20:09.920641: No export window planned
2026-08-18 06:20:09.920747: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:20:09.920781: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:20:09.920915: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:20:09.921133: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:20:09.921197: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:20:09.921269: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:20:09.921366: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921405: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921436: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921462: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921492: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921518: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921570: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921663: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921689: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921719: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921744: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921773: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921797: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:20:09.921817: Inverter 0 count register writes 0
2026-08-18 06:20:09.943171: Total inverter register writes now 867
2026-08-18 06:20:09.971848: Info: Completed run status Demand
2026-08-18 06:20:09.976878: Info: record_status Demand
2026-08-18 06:20:09.983191: Saved current settings to /config/predbat_config.json
2026-08-18 06:20:09.983531: Compare, best tariff: current metric 129.87p
2026-08-18 06:20:49.093804: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:20:49.094035: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:20:49.094069: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:20:49.094199: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:20:49.094258: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:20:49.094282: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:20:49.094300: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:22:49.302265: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:22:49.302549: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:22:49.302608: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:22:49.302802: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:22:49.302848: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:22:49.302878: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:22:49.302915: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:24:49.518608: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:24:49.518874: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:24:49.518921: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:24:49.519092: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:24:49.519136: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:24:49.519179: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:24:49.519225: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:25:00.604905: --------------- PredBat - update at 2026-08-18 06:25:00+01:00 with clock skew 0 minutes, minutes now 385
2026-08-18 06:25:00.605688: Saved current settings to /config/predbat_config.json
2026-08-18 06:25:00.605827: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 06:25:00.605959: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:25:00.606044: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:25:00.624712: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:25:00.624833: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:25:00.624985: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:25:00.625477: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:25:00.625593: Predbat mode is set to Control charge & discharge
2026-08-18 06:25:00.786363: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:25:00.786490: Using load_power data to fill gaps in load_today data
2026-08-18 06:25:01.478115: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:25:01.478286: Zero load period starting at 2026-08-17T10:54:00+0100 (1171 minutes) for 189 minutes with base value 209.25
2026-08-18 06:25:01.479050: Processing 721 30-minute periods for power integration
2026-08-18 06:25:01.635055: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:25:01.635164: Car charging hold False, threshold 6.0kWh
2026-08-18 06:25:01.635200: Current data so far today: load 3.15kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:25:01.646736: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:25:01.646813: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:25:01.647480: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:25:01.647541: Standing charge is set to 46.63p
2026-08-18 06:25:01.733967: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:25:01.734209: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:25:01.734420: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:25:01.735324: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:25:01.735434: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:25:01.739754: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:25:01.740135: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:25:01.781949: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:25:01.782065: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:25:01.783301: High export rate found rates in range 99p to -99p
2026-08-18 06:25:01.811411: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:25:01.811499: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:25:01.822736: Battery level now 12.8kWh, -1hr ago 13.28kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 40.96p, rate_forward 6.87p
2026-08-18 06:25:01.823100: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 1.43p, import 1.43p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:25:01.865670: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:25:01.865789: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:25:01.940809: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:25:01.970193: Today's load divergence 92.56%, in-day adjustment 92.75%, damping 0.95x, yesterday 92.68% today 92.93% blend 73.26%
2026-08-18 06:25:01.970302: Today's predicted so far 4.24kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 4.24kWh forecast extra.
2026-08-18 06:25:01.970334: Today's actual load so far 3.12kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 06:25:02.003984: Inverter 0: Type SK Sunsynk
2026-08-18 06:25:02.004064: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:25:02.004232: Reserve min: 7%, battery_min: 7%
2026-08-18 06:25:02.004319: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:25:02.004559: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 415W, current battery voltage 51.2V, grid power -54W, load power 471W, PV Power 0W
2026-08-18 06:25:02.004717: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:25:02.004805: Inverter 0 scheduled charge enable is False
2026-08-18 06:25:02.004839: Inverter 0 charge windows currently []
2026-08-18 06:25:02.004865: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:25:02.004969: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:25:02.005003: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:25:02.005043: Inverter 0 scheduled discharge enable is False
2026-08-18 06:25:02.005185: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:25:02.005222: Inverter 0 discharge windows currently []
2026-08-18 06:25:02.005259: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:25:02.005279: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:25:02.005299: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:25:02.061433: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:25:02.061532: Plan was last updated on 2026-08-18 06:20:00+01:00 and is now 5.0 minutes old
2026-08-18 06:25:02.061733: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:25:02.061772: Best export window [ ]
2026-08-18 06:25:02.062612: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:25:02.065588: Load divergence over 8.0 hours mean 399.94W, min 292.8W, max 660.0W, std dev 63.24W, divergence 7.91%
2026-08-18 06:25:02.081527: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:25:02.081620: LoadML is_calculating False
2026-08-18 06:25:02.081681: Creating pool of 12 processes to match your CPU count
2026-08-18 06:25:02.191378: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.14kWh, PV 0.0kWh
2026-08-18 06:25:04.016578: Battery has 17.33 hours left - now at 12.8kWh
2026-08-18 06:25:04.058267: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.43kWh, PV 0.0kWh
2026-08-18 06:25:04.138646: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 339.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.43kWh, PV 0.0kWh
2026-08-18 06:25:04.211334: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 324.66p, metric_keep 0kWh, min_soc 1.48kWh @ 08-18 23:25:00, load 30.14kWh, PV 0.0kWh
2026-08-18 06:25:04.211412: Saving plan best values to HA entities
2026-08-18 06:25:04.360510: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:25:04.365701: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:25:04.370577: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.8kWh, house 0.0kWh, export 0.0kWh, metric 324.66p, metric10 339.96p
2026-08-18 06:25:04.444848: Marginal costs baseline metric (no standing charge): 278.0239
2026-08-18 06:25:04.703054: Marginal energy costs matrix computed: min=25.56 max=32.73
2026-08-18 06:25:04.776727: Rate array import [{'start': 385, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 385, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:25:04.777491: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 06:25:04.777535: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:25:04.777920: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-18 06:25:04.777953: - For the next 48 hours there will be no solar generation.
2026-08-18 06:25:04.777969: - You will reach a minimum of 9% battery in 17 hours.
2026-08-18 06:25:04.777984: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:25:04.777998:
2026-08-18 06:25:04.838805: Plan calculation took 2.78 seconds
2026-08-18 06:25:04.842182: No high rate period found
2026-08-18 06:25:04.890309: Import threshold used for optimisation was 8.0p
2026-08-18 06:25:04.936264: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:25:04.941722: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 80%, target 100%
2026-08-18 06:25:04.941823: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:25:04.941937: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:25:04.942196: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:25:04.942302: No export window planned
2026-08-18 06:25:04.942467: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:25:04.942505: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:25:04.942620: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:25:04.942794: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:25:04.942851: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:25:04.942910: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:25:04.943016: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943055: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943077: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943098: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943137: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943172: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943264: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943301: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943384: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:25:04.943460: Inverter 0 count register writes 0
2026-08-18 06:25:04.957293: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 06:25:04.961661: Total inverter register writes now 867
2026-08-18 06:25:04.987519: Info: Completed run status Demand
2026-08-18 06:25:04.993182: Info: record_status Demand
2026-08-18 06:25:04.998998: Saved current settings to /config/predbat_config.json
2026-08-18 06:25:04.999267: Compare, best tariff: current metric 129.87p
2026-08-18 06:25:49.106473: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:25:49.106718: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:25:49.106983: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:25:49.107231: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:25:49.107317: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:25:49.107339: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:25:49.107358: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:27:49.310615: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:27:49.310876: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:27:49.310945: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:27:49.311126: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:27:49.311200: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:27:49.311222: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:27:49.311240: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:29:49.519841: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:29:49.520154: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:29:49.520212: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:29:49.520434: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:29:49.520491: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:29:49.520539: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:29:49.520562: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:30:00.616824: --------------- PredBat - update at 2026-08-18 06:30:00+01:00 with clock skew 0 minutes, minutes now 390
2026-08-18 06:30:00.617653: Saved current settings to /config/predbat_config.json
2026-08-18 06:30:00.617814: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 06:30:00.617919: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:30:00.618046: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:30:00.637042: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:30:00.637186: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:30:00.637382: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:30:00.637977: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:30:00.638102: Predbat mode is set to Control charge & discharge
2026-08-18 06:30:00.822042: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:30:00.822186: Using load_power data to fill gaps in load_today data
2026-08-18 06:30:01.620235: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:30:01.620422: Zero load period starting at 2026-08-17T10:54:00+0100 (1176 minutes) for 189 minutes with base value 209.225
2026-08-18 06:30:01.621190: Processing 721 30-minute periods for power integration
2026-08-18 06:30:01.774346: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:30:01.774478: Car charging hold False, threshold 6.0kWh
2026-08-18 06:30:01.774536: Current data so far today: load 3.25kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:30:01.788294: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:30:01.788390: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:30:01.789079: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:30:01.789149: Standing charge is set to 46.63p
2026-08-18 06:30:01.878167: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:30:01.878392: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:30:01.878529: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:30:01.879381: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:30:01.879464: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:30:01.883795: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:30:01.884147: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:30:01.920400: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:30:01.920518: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:30:01.921638: High export rate found rates in range 99p to -99p
2026-08-18 06:30:01.945473: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:30:01.945582: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:30:01.956284: Battery level now 12.8kWh, -1hr ago 13.13kWh, at midnight 6.84kWh, battery value change in the last hour -2.25p, change today 40.96p, rate_forward 6.87p
2026-08-18 06:30:01.956723: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.27p, import 1.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:30:02.003286: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:30:02.003434: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:30:02.070971: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:30:02.102033: Today's load divergence 92.63%, in-day adjustment 92.77%, damping 0.95x, yesterday 92.68% today 93.0% blend 72.92%
2026-08-18 06:30:02.102128: Today's predicted so far 4.35kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 4.35kWh forecast extra.
2026-08-18 06:30:02.102169: Today's actual load so far 3.24kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 06:30:02.136125: Inverter 0: Type SK Sunsynk
2026-08-18 06:30:02.136207: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:30:02.136441: Reserve min: 7%, battery_min: 7%
2026-08-18 06:30:02.136529: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:30:02.136784: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 416W, current battery voltage 51.2V, grid power -54W, load power 472W, PV Power 0W
2026-08-18 06:30:02.136932: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:30:02.137016: Inverter 0 scheduled charge enable is False
2026-08-18 06:30:02.137044: Inverter 0 charge windows currently []
2026-08-18 06:30:02.137070: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:30:02.137208: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:30:02.137251: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:30:02.137323: Inverter 0 scheduled discharge enable is False
2026-08-18 06:30:02.137516: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:30:02.137559: Inverter 0 discharge windows currently []
2026-08-18 06:30:02.137592: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:30:02.137636: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:30:02.137678: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:30:02.191364: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:30:02.191468: Plan was last updated on 2026-08-18 06:20:00+01:00 and is now 10.0 minutes old
2026-08-18 06:30:02.191712: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:30:02.191757: Best export window [ ]
2026-08-18 06:30:02.192590: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:30:02.195295: Load divergence over 8.0 hours mean 399.92W, min 281.4W, max 651.6W, std dev 60.87W, divergence 7.61%
2026-08-18 06:30:02.210660: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:30:02.210776: LoadML is_calculating False
2026-08-18 06:30:02.210853: Creating pool of 12 processes to match your CPU count
2026-08-18 06:30:02.310660: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 606.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.29kWh, PV 0.0kWh
2026-08-18 06:30:02.421843: Battery has 17.33 hours left - now at 12.8kWh
2026-08-18 06:30:02.459417: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 635.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.58kWh, PV 0.0kWh
2026-08-18 06:30:02.533548: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.58kWh, PV 0.0kWh
2026-08-18 06:30:02.627989: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 328.39p, metric_keep 0kWh, min_soc 1.52kWh @ 08-18 23:25:00, load 30.29kWh, PV 0.0kWh
2026-08-18 06:30:02.628112: Saving plan best values to HA entities
2026-08-18 06:30:02.784203: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:30:02.789911: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:30:02.795571: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.27kWh, house 0.0kWh, export 0.0kWh, metric 328.39p, metric10 341.88p
2026-08-18 06:30:02.871097: Marginal costs baseline metric (no standing charge): 281.7589
2026-08-18 06:30:03.130883: Marginal energy costs matrix computed: min=24.65 max=32.61
2026-08-18 06:30:03.217307: Rate array import [{'start': 390, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 390, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:30:03.218076: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 06:30:03.218118: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:30:03.218141: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-18 06:30:03.218160: - For the next 48 hours there will be no solar generation.
2026-08-18 06:30:03.218177: - You will reach a minimum of 9% battery in 16 hours.
2026-08-18 06:30:03.218201: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:30:03.218236:
2026-08-18 06:30:03.283432: Plan calculation took 1.09 seconds
2026-08-18 06:30:03.286678: No high rate period found
2026-08-18 06:30:03.333367: Import threshold used for optimisation was 8.0p
2026-08-18 06:30:03.382510: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:30:03.387299: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 80%, target 100%
2026-08-18 06:30:03.387438: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:30:03.387563: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:30:03.387813: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:30:03.387953: No export window planned
2026-08-18 06:30:03.388138: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:30:03.388180: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:30:03.388361: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:30:03.388561: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:30:03.388633: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:30:03.388724: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:30:03.388865: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.388917: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.388963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389009: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389033: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389083: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389184: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389204: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389223: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389280: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:03.389323: Inverter 0 count register writes 0
2026-08-18 06:30:03.404733: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 06:30:03.404908: Recompute is saving previous plan...
2026-08-18 06:30:03.405665: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 06:30:03.405705: Best export window [ ]
2026-08-18 06:30:03.406419: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:30:03.408932: Load divergence over 8.0 hours mean 399.92W, min 281.4W, max 651.6W, std dev 60.87W, divergence 7.61%
2026-08-18 06:30:03.423646: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:30:03.423749: LoadML is_calculating False
2026-08-18 06:30:03.423813: Creating pool of 12 processes to match your CPU count
2026-08-18 06:30:03.506399: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 06:30:03.507214: Optimise levels pass started at 2026-08-18 06:30:03
2026-08-18 06:30:03.507275: Optimise all windows, total charge 24 export 1
2026-08-18 06:30:04.056613: >> Region optimisation pass width 960 gives best_metric 306.33p, best_cost 312.55p, best_cycle 38.44kWh, best_import 23.12kWh
2026-08-18 06:30:04.163680: >> Region optimisation pass width 480 gives best_metric 306.33p, best_cost 312.55p, best_cycle 38.44kWh, best_import 23.12kWh
2026-08-18 06:30:04.426125: >> Region optimisation pass width 240 gives best_metric 306.33p, best_cost 312.55p, best_cycle 38.44kWh, best_import 23.12kWh
2026-08-18 06:30:05.021311: >> Region optimisation pass width 120 gives best_metric 306.33p, best_cost 312.55p, best_cycle 38.44kWh, best_import 23.12kWh
2026-08-18 06:30:05.021549: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 06:30:05.021637: Optimise levels pass ended at 2026-08-18 06:30:05, duration 1.5 seconds tried 60 combinations
2026-08-18 06:30:05.021772: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 306.33p, best_keep 0kWh, best_cycle 38.44kWh, best_carbon 0kg, best_import 23.12kWh
2026-08-18 06:30:05.041877: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 06:30:07.914060: Tweak plan optimisation started metric 265.03p, cost 275.67p
2026-08-18 06:30:08.325576: Tweak optimisation finished metric 265.03p, cost 275.67p, metric_keep 0kWh, cycle 36.6kWh, carbon 0kg, import 18.51kWh, changed 8 window(s)
2026-08-18 06:30:08.346586: Swap charge optimisation started metric 265.03p, cost 275.67p, min_improvement_swap 0.1p
2026-08-18 06:30:09.023603: Swap charge optimisation finished metric 265.03p, cost 275.67p
2026-08-18 06:30:09.151707: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.98p -> 262.83p, plan now metric 265.47p, cost 273.63p, cycle 36.87kWh, import 18.25kWh
2026-08-18 06:30:09.161885: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:30:09.162345: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:30:09.162674: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:30:09.162918: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:30:09.202149: Previous plan best metric is 265.03 (cost 275.67) and new plan best metric is 265.03 (cost 275.67)
2026-08-18 06:30:09.202419: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 06:30:09.202633: Plan valid is now true after recompute was False
2026-08-18 06:30:09.233504: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.11kWh, PV 0.0kWh
2026-08-18 06:30:09.338309: Battery has 17.33 hours left - now at 12.8kWh
2026-08-18 06:30:09.385435: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.39kWh, PV 0.0kWh
2026-08-18 06:30:09.466103: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.39kWh, PV 0.0kWh
2026-08-18 06:30:09.541133: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 320.27p, metric_keep 0kWh, min_soc 1.52kWh @ 08-18 23:25:00, load 30.11kWh, PV 0.0kWh
2026-08-18 06:30:09.541239: Saving plan best values to HA entities
2026-08-18 06:30:09.675765: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:30:09.680882: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:30:09.686231: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.25kWh, house 0.0kWh, export 0.0kWh, metric 320.27p, metric10 334.79p
2026-08-18 06:30:09.757221: Marginal costs baseline metric (no standing charge): 273.6347
2026-08-18 06:30:09.987972: Marginal energy costs matrix computed: min=24.65 max=32.61
2026-08-18 06:30:10.070385: Rate array import [{'start': 390, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 390, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:30:10.071248: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 06:30:10.071329: - Import rates are very expensive (33.8p) for the next 17 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:30:10.071371: - The battery is currently at 80% and is in eco mode for the next 17 hours.
2026-08-18 06:30:10.071405: - For the next 48 hours there will be no solar generation.
2026-08-18 06:30:10.071447: - You will reach a minimum of 9% battery in 16 hours.
2026-08-18 06:30:10.071469: - Your next charge slot will be in 17 hours where import rates will be cheap (8.0p).
2026-08-18 06:30:10.071488:
2026-08-18 06:30:10.135994: Plan calculation took 6.73 seconds
2026-08-18 06:30:10.136343: Inverter 0: Type SK Sunsynk
2026-08-18 06:30:10.136391: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:30:10.136608: Reserve min: 7%, battery_min: 7%
2026-08-18 06:30:10.136682: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:30:10.137044: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 415W, current battery voltage 51.2V, grid power -55W, load power 472W, PV Power 0W
2026-08-18 06:30:10.137422: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:30:10.137532: Inverter 0 scheduled charge enable is False
2026-08-18 06:30:10.137570: Inverter 0 charge windows currently []
2026-08-18 06:30:10.137601: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:30:10.137706: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:30:10.137745: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:30:10.137781: Inverter 0 scheduled discharge enable is False
2026-08-18 06:30:10.137912: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:30:10.137948: Inverter 0 discharge windows currently []
2026-08-18 06:30:10.137970: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:30:10.137997: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:30:10.138015: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:30:10.210220: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 80%, target 100%
2026-08-18 06:30:10.210383: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:30:10.210448: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:30:10.210648: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:30:10.210728: No export window planned
2026-08-18 06:30:10.210831: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:30:10.210865: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:30:10.211004: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:30:10.211184: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:30:10.211235: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:30:10.211316: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:30:10.211413: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211447: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211489: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211516: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211546: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211659: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211746: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211775: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211799: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:30:10.211847: Inverter 0 count register writes 0
2026-08-18 06:30:10.229664: Total inverter register writes now 867
2026-08-18 06:30:10.255795: Info: Completed run status Demand
2026-08-18 06:30:10.261837: Info: record_status Demand
2026-08-18 06:30:10.267459: Saved current settings to /config/predbat_config.json
2026-08-18 06:30:10.267772: Compare, best tariff: current metric 129.87p
2026-08-18 06:30:49.395389: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:30:49.395685: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:30:49.395751: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:30:49.396004: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:30:49.396067: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:30:49.396114: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:30:49.396171: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:33:03.711749: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:33:03.712075: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:33:03.712132: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:33:03.712335: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:33:03.712381: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:33:03.712404: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:33:03.712423: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:35:00.955806: --------------- PredBat - update at 2026-08-18 06:35:00+01:00 with clock skew 0 minutes, minutes now 395
2026-08-18 06:35:00.956565: Saved current settings to /config/predbat_config.json
2026-08-18 06:35:00.956711: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 06:35:00.956865: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:35:00.956971: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:35:00.974715: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:35:00.974833: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:35:00.974991: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:35:00.975712: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:35:00.975893: Predbat mode is set to Control charge & discharge
2026-08-18 06:35:01.174909: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:35:01.175049: Using load_power data to fill gaps in load_today data
2026-08-18 06:35:02.226405: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:35:02.226616: Zero load period starting at 2026-08-17T10:54:00+0100 (1181 minutes) for 189 minutes with base value 209.2
2026-08-18 06:35:02.227759: Processing 721 30-minute periods for power integration
2026-08-18 06:35:02.446807: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:35:02.446918: Car charging hold False, threshold 6.0kWh
2026-08-18 06:35:02.446973: Current data so far today: load 3.3kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:35:02.462474: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:35:02.462601: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:35:02.463399: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:35:02.463482: Standing charge is set to 46.63p
2026-08-18 06:35:02.574143: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:35:02.574414: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:35:02.574721: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:35:02.576559: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:35:02.576761: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:35:02.582491: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:35:02.582974: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:35:02.619500: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:35:02.619599: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:35:02.620692: High export rate found rates in range 99p to -99p
2026-08-18 06:35:02.643893: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:35:02.644082: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:35:02.654579: Battery level now 12.8kWh, -1hr ago 13.13kWh, at midnight 6.84kWh, battery value change in the last hour -2.25p, change today 40.96p, rate_forward 6.87p
2026-08-18 06:35:02.654873: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.84p, import 0.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:35:02.703778: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:35:02.703949: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:35:02.787757: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:35:02.821542: Today's load divergence 92.51%, in-day adjustment 92.74%, damping 0.95x, yesterday 92.68% today 92.88% blend 72.57%
2026-08-18 06:35:02.821685: Today's predicted so far 4.42kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 4.42kWh forecast extra.
2026-08-18 06:35:02.821730: Today's actual load so far 3.3kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 06:35:02.868395: Inverter 0: Type SK Sunsynk
2026-08-18 06:35:02.868497: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:35:02.868754: Reserve min: 7%, battery_min: 7%
2026-08-18 06:35:02.868859: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:35:02.869239: Inverter 0 SoC: 12.8kW 80%, current charge rate 5000W, current discharge rate 5250W, current battery power 419W, current battery voltage 51.2V, grid power -54W, load power 476W, PV Power 0W
2026-08-18 06:35:02.869440: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:35:02.869523: Inverter 0 scheduled charge enable is False
2026-08-18 06:35:02.869552: Inverter 0 charge windows currently []
2026-08-18 06:35:02.869578: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:35:02.869680: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:35:02.869707: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:35:02.869741: Inverter 0 scheduled discharge enable is False
2026-08-18 06:35:02.869972: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:35:02.870041: Inverter 0 discharge windows currently []
2026-08-18 06:35:02.870086: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:35:02.870120: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:35:02.870155: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:35:02.951029: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:35:02.951182: Plan was last updated on 2026-08-18 06:30:00+01:00 and is now 5.0 minutes old
2026-08-18 06:35:02.951451: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:35:02.951539: Best export window [ ]
2026-08-18 06:35:02.952954: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:35:02.959337: Load divergence over 8.0 hours mean 399.96W, min 263.4W, max 664.2W, std dev 64.05W, divergence 8.01%
2026-08-18 06:35:02.991538: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:35:02.991656: LoadML is_calculating False
2026-08-18 06:35:02.991798: Creating pool of 12 processes to match your CPU count
2026-08-18 06:35:03.123613: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.23kWh, PV 0.0kWh
2026-08-18 06:35:03.257408: Battery has 17.33 hours left - now at 12.8kWh
2026-08-18 06:35:03.298028: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.51kWh, PV 0.0kWh
2026-08-18 06:35:03.392417: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.51kWh, PV 0.0kWh
2026-08-18 06:35:03.479379: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 324.13p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 30.23kWh, PV 0.0kWh
2026-08-18 06:35:03.479452: Saving plan best values to HA entities
2026-08-18 06:35:03.680132: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:35:03.687152: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 06:35:03.693570: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.0kWh, export 0.0kWh, metric 324.13p, metric10 337.18p
2026-08-18 06:35:03.797934: Marginal costs baseline metric (no standing charge): 277.4979
2026-08-18 06:35:04.141209: Marginal energy costs matrix computed: min=23.78 max=32.5
2026-08-18 06:35:04.258035: Rate array import [{'start': 395, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 395, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:35:04.258840: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 06:35:04.258884: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:35:04.258906: - The battery is currently at 80% and is in eco mode for the next 16 hours.
2026-08-18 06:35:04.258925: - For the next 48 hours there will be no solar generation.
2026-08-18 06:35:04.258947: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 06:35:04.258964: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 06:35:04.258982:
2026-08-18 06:35:04.315059: Plan calculation took 1.36 seconds
2026-08-18 06:35:04.318550: No high rate period found
2026-08-18 06:35:04.377361: Import threshold used for optimisation was 8.0p
2026-08-18 06:35:04.434513: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:35:04.442435: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 80%, target 100%
2026-08-18 06:35:04.442569: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:35:04.442674: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:35:04.443028: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:35:04.443197: No export window planned
2026-08-18 06:35:04.443375: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:35:04.443429: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:35:04.443632: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:35:04.443958: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:35:04.444032: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:35:04.444099: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:35:04.444197: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444325: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444383: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444443: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444481: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444509: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444610: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444636: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444664: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444697: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444748: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444809: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:35:04.444905: Inverter 0 count register writes 0
2026-08-18 06:35:04.463700: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 06:35:04.470594: Total inverter register writes now 867
2026-08-18 06:35:04.511082: Info: Completed run status Demand
2026-08-18 06:35:04.519437: Info: record_status Demand
2026-08-18 06:35:04.527488: Saved current settings to /config/predbat_config.json
2026-08-18 06:35:04.527830: Compare, best tariff: current metric 129.87p
2026-08-18 06:35:34.638517: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:35:34.638807: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:35:34.638862: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:35:34.639048: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:35:34.639097: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:35:34.639139: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:35:34.639185: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:37:48.874937: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:37:48.875160: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:37:48.875201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:37:48.875351: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:37:48.875391: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:37:48.875413: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:37:48.875431: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:39:49.099059: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:39:49.099293: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:39:49.099360: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:39:49.099546: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:39:49.099596: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:39:49.099631: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:39:49.099656: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:40:00.183323: --------------- PredBat - update at 2026-08-18 06:40:00+01:00 with clock skew 0 minutes, minutes now 400
2026-08-18 06:40:00.184047: Saved current settings to /config/predbat_config.json
2026-08-18 06:40:00.184192: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 06:40:00.184301: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:40:00.184395: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:40:00.207270: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:40:00.207422: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:40:00.207585: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:40:00.208212: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:40:00.208359: Predbat mode is set to Control charge & discharge
2026-08-18 06:40:00.393799: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:40:00.393947: Using load_power data to fill gaps in load_today data
2026-08-18 06:40:01.098510: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:40:01.098692: Zero load period starting at 2026-08-17T10:54:00+0100 (1186 minutes) for 189 minutes with base value 209.175
2026-08-18 06:40:01.099461: Processing 721 30-minute periods for power integration
2026-08-18 06:40:01.265567: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:40:01.265675: Car charging hold False, threshold 6.0kWh
2026-08-18 06:40:01.265713: Current data so far today: load 3.35kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:40:01.278950: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:40:01.279032: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:40:01.279885: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:40:01.279997: Standing charge is set to 46.63p
2026-08-18 06:40:01.390176: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:40:01.390503: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:40:01.390778: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:40:01.392097: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:40:01.392255: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:40:01.397824: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:40:01.398528: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:40:01.445489: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:40:01.445601: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:40:01.447034: High export rate found rates in range 99p to -99p
2026-08-18 06:40:01.471575: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:40:01.471685: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:40:01.483115: Battery level now 12.8kWh, -1hr ago 13.12kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 40.96p, rate_forward 6.87p
2026-08-18 06:40:01.483492: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.42p, import 0.42p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:40:01.530582: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:40:01.530688: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:40:01.607961: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:40:01.637680: Today's load divergence 92.63%, in-day adjustment 92.77%, damping 0.95x, yesterday 92.68% today 93.0% blend 72.22%
2026-08-18 06:40:01.637776: Today's predicted so far 4.43kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 4.43kWh forecast extra.
2026-08-18 06:40:01.637807: Today's actual load so far 3.32kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 06:40:01.672157: Inverter 0: Type SK Sunsynk
2026-08-18 06:40:01.672238: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:40:01.672430: Reserve min: 7%, battery_min: 7%
2026-08-18 06:40:01.672608: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:40:01.673012: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 418W, current battery voltage 51.2V, grid power -54W, load power 476W, PV Power 0W
2026-08-18 06:40:01.673186: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:40:01.673272: Inverter 0 scheduled charge enable is False
2026-08-18 06:40:01.673321: Inverter 0 charge windows currently []
2026-08-18 06:40:01.673350: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:40:01.673457: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:40:01.673492: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:40:01.673528: Inverter 0 scheduled discharge enable is False
2026-08-18 06:40:01.673645: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:40:01.673681: Inverter 0 discharge windows currently []
2026-08-18 06:40:01.673703: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:40:01.673726: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:40:01.673743: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:40:01.731250: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:40:01.731390: Plan was last updated on 2026-08-18 06:30:00+01:00 and is now 10.0 minutes old
2026-08-18 06:40:01.731642: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:40:01.731689: Best export window [ ]
2026-08-18 06:40:01.732520: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:40:01.735782: Load divergence over 8.0 hours mean 401.53W, min 262.2W, max 712.8W, std dev 66.98W, divergence 8.34%
2026-08-18 06:40:01.754363: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:40:01.754455: LoadML is_calculating False
2026-08-18 06:40:01.754517: Creating pool of 12 processes to match your CPU count
2026-08-18 06:40:01.852820: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 607.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.33kWh, PV 0.0kWh
2026-08-18 06:40:01.978586: Battery has 17.08 hours left - now at 12.64kWh
2026-08-18 06:40:02.027495: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.61kWh, PV 0.0kWh
2026-08-18 06:40:02.101105: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 344.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.61kWh, PV 0.0kWh
2026-08-18 06:40:02.177991: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 329.21p, metric_keep 0kWh, min_soc 1.44kWh @ 08-18 23:25:00, load 30.33kWh, PV 0.0kWh
2026-08-18 06:40:02.178096: Saving plan best values to HA entities
2026-08-18 06:40:02.348749: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:40:02.354352: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:40:02.359376: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.37kWh, house 0.0kWh, export 0.0kWh, metric 329.21p, metric10 344.12p
2026-08-18 06:40:02.434670: Marginal costs baseline metric (no standing charge): 282.5799
2026-08-18 06:40:02.733468: Marginal energy costs matrix computed: min=26.38 max=32.83
2026-08-18 06:40:02.805605: Rate array import [{'start': 400, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 400, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:40:02.806610: - Your estimated bill for today is £1.51 and tomorrow is £1.94
2026-08-18 06:40:02.806659: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:40:02.806679: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 06:40:02.806695: - For the next 48 hours there will be no solar generation.
2026-08-18 06:40:02.806709: - You will reach a minimum of 9% battery in 16 hours.
2026-08-18 06:40:02.806723: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 06:40:02.806737:
2026-08-18 06:40:02.867954: Plan calculation took 1.14 seconds
2026-08-18 06:40:02.870992: No high rate period found
2026-08-18 06:40:02.922958: Import threshold used for optimisation was 8.0p
2026-08-18 06:40:02.970415: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:40:02.975686: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 06:40:02.975818: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:40:02.975964: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:40:02.976223: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:40:02.976341: No export window planned
2026-08-18 06:40:02.976472: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:40:02.976509: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:40:02.976709: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:40:02.976912: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:40:02.976977: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:40:02.977048: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:40:02.977149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977226: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977252: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977331: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977392: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977497: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977524: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977548: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977594: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977645: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977684: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:02.977706: Inverter 0 count register writes 0
2026-08-18 06:40:02.993517: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 06:40:02.993689: Recompute is saving previous plan...
2026-08-18 06:40:02.994649: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 06:40:02.994706: Best export window [ ]
2026-08-18 06:40:02.995618: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:40:02.999384: Load divergence over 8.0 hours mean 401.53W, min 262.2W, max 712.8W, std dev 66.98W, divergence 8.34%
2026-08-18 06:40:03.018059: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:40:03.018157: LoadML is_calculating False
2026-08-18 06:40:03.018220: Creating pool of 12 processes to match your CPU count
2026-08-18 06:40:03.104505: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 06:40:03.105510: Optimise levels pass started at 2026-08-18 06:40:03
2026-08-18 06:40:03.105583: Optimise all windows, total charge 24 export 1
2026-08-18 06:40:03.662864: >> Region optimisation pass width 960 gives best_metric 307.96p, best_cost 312.92p, best_cycle 38.01kWh, best_import 23.17kWh
2026-08-18 06:40:03.800160: >> Region optimisation pass width 480 gives best_metric 307.96p, best_cost 312.92p, best_cycle 38.01kWh, best_import 23.17kWh
2026-08-18 06:40:04.081489: >> Region optimisation pass width 240 gives best_metric 307.96p, best_cost 312.92p, best_cycle 38.01kWh, best_import 23.17kWh
2026-08-18 06:40:04.664035: >> Region optimisation pass width 120 gives best_metric 307.96p, best_cost 312.92p, best_cycle 38.01kWh, best_import 23.17kWh
2026-08-18 06:40:04.664278: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 06:40:04.664403: Optimise levels pass ended at 2026-08-18 06:40:04, duration 1.6 seconds tried 60 combinations
2026-08-18 06:40:04.664503: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 307.96p, best_keep 0kWh, best_cycle 38.01kWh, best_carbon 0kg, best_import 23.17kWh
2026-08-18 06:40:04.686438: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 06:40:07.402152: Tweak plan optimisation started metric 265.92p, cost 276.34p
2026-08-18 06:40:07.747122: Tweak optimisation finished metric 265.92p, cost 276.34p, metric_keep 0kWh, cycle 36.59kWh, carbon 0kg, import 18.59kWh, changed 8 window(s)
2026-08-18 06:40:07.770181: Swap charge optimisation started metric 265.92p, cost 276.34p, min_improvement_swap 0.1p
2026-08-18 06:40:08.613133: Swap charge optimisation finished metric 265.92p, cost 276.34p
2026-08-18 06:40:08.760823: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 263.62p -> 263.04p, plan now metric 266.82p, cost 272.18p, cycle 36.6kWh, import 18.07kWh
2026-08-18 06:40:08.771653: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:40:08.772045: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:40:08.772283: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:40:08.772496: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:40:08.812249: Previous plan best metric is 265.92 (cost 276.34) and new plan best metric is 265.92 (cost 276.34)
2026-08-18 06:40:08.812986: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 06:40:08.813155: Plan valid is now true after recompute was False
2026-08-18 06:40:08.838149: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.13kWh, PV 0.0kWh
2026-08-18 06:40:08.951848: Battery has 17.08 hours left - now at 12.64kWh
2026-08-18 06:40:08.997528: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 635.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.4kWh, PV 0.0kWh
2026-08-18 06:40:09.069436: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 336.9p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:15:00, load 31.4kWh, PV 0.0kWh
2026-08-18 06:40:09.138921: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 320.96p, metric_keep 0kWh, min_soc 1.44kWh @ 08-18 23:25:00, load 30.13kWh, PV 0.0kWh
2026-08-18 06:40:09.139007: Saving plan best values to HA entities
2026-08-18 06:40:09.285881: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:40:09.292075: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:40:09.297076: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.34kWh, house 0.0kWh, export 0.0kWh, metric 320.96p, metric10 336.9p
2026-08-18 06:40:09.367336: Marginal costs baseline metric (no standing charge): 274.326
2026-08-18 06:40:09.657076: Marginal energy costs matrix computed: min=26.38 max=32.83
2026-08-18 06:40:09.727380: Rate array import [{'start': 400, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 400, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:40:09.728385: - Your estimated bill for today is £1.51 and tomorrow is £1.94
2026-08-18 06:40:09.728440: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:40:09.728463: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 06:40:09.728483: - For the next 48 hours there will be no solar generation.
2026-08-18 06:40:09.728506: - You will reach a minimum of 9% battery in 16 hours.
2026-08-18 06:40:09.728523: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 06:40:09.728544:
2026-08-18 06:40:09.791590: Plan calculation took 6.80 seconds
2026-08-18 06:40:09.791926: Inverter 0: Type SK Sunsynk
2026-08-18 06:40:09.791994: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:40:09.792246: Reserve min: 7%, battery_min: 7%
2026-08-18 06:40:09.792348: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:40:09.792711: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 418W, current battery voltage 51.2V, grid power -54W, load power 476W, PV Power 0W
2026-08-18 06:40:09.792935: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:40:09.793039: Inverter 0 scheduled charge enable is False
2026-08-18 06:40:09.793076: Inverter 0 charge windows currently []
2026-08-18 06:40:09.793106: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:40:09.793219: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:40:09.793277: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:40:09.793341: Inverter 0 scheduled discharge enable is False
2026-08-18 06:40:09.793490: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:40:09.793526: Inverter 0 discharge windows currently []
2026-08-18 06:40:09.793549: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:40:09.793571: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:40:09.793589: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:40:09.844628: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 06:40:09.844774: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:40:09.844846: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:40:09.845037: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:40:09.845125: No export window planned
2026-08-18 06:40:09.845256: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:40:09.845292: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:40:09.845486: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:40:09.845684: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:40:09.845837: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:40:09.845918: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:40:09.846019: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846070: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846129: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846170: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846234: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846332: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846499: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846522: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846562: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:40:09.846589: Inverter 0 count register writes 0
2026-08-18 06:40:09.866956: Total inverter register writes now 867
2026-08-18 06:40:09.900915: Info: Completed run status Demand
2026-08-18 06:40:09.907264: Info: record_status Demand
2026-08-18 06:40:09.913852: Saved current settings to /config/predbat_config.json
2026-08-18 06:40:09.914185: Compare, best tariff: current metric 129.87p
2026-08-18 06:40:49.031527: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:40:49.031782: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:40:49.031830: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:40:49.032028: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:40:49.032088: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:40:49.032114: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:40:49.032149: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:42:49.265186: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:42:49.265529: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:42:49.265608: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:42:49.265815: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:42:49.265861: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:42:49.265884: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:42:49.265911: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:44:49.471641: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:44:49.471872: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:44:49.471950: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:44:49.472167: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:44:49.472217: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:44:49.472240: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:44:49.472263: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:44:59.358670: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 06:45:00.345037: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:45:00.345264: Zero load period starting at 2026-08-17T10:54:00+0100 (1186 minutes) for 189 minutes with base value 400.775
2026-08-18 06:45:00.346294: Processing 1345 30-minute periods for power integration
2026-08-18 06:45:00.437731: ML Component: Car charging hold False, car energy reported load False
2026-08-18 06:45:00.520234: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:45:00.571082: --------------- PredBat - update at 2026-08-18 06:45:00+01:00 with clock skew 0 minutes, minutes now 405
2026-08-18 06:45:00.607975: Saved current settings to /config/predbat_config.json
2026-08-18 06:45:00.617103: ML Temperature data points: 50001
2026-08-18 06:45:00.617262: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 06:45:00.627623: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:45:00.633252: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:45:00.881062: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 06:45:00.895560: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:45:00.901746: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:45:00.909763: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:45:00.920522: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:45:00.923122: ML Component: Data fetch completed, load data age 59.0 days, 17192 data points
2026-08-18 06:45:00.923315: Predbat mode is set to Control charge & discharge
2026-08-18 06:45:00.923452: ML Component: No training needed, model age is 1.47 hours
2026-08-18 06:45:00.926234: ML Component: Waiting for current prediction cycle to complete before running ML work
2026-08-18 06:45:01.082419: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:45:01.082536: Using load_power data to fill gaps in load_today data
2026-08-18 06:45:01.882153: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:45:01.882408: Zero load period starting at 2026-08-17T10:54:00+0100 (1191 minutes) for 189 minutes with base value 209.15
2026-08-18 06:45:01.883421: Processing 721 30-minute periods for power integration
2026-08-18 06:45:02.038430: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:45:02.038542: Car charging hold False, threshold 6.0kWh
2026-08-18 06:45:02.038597: Current data so far today: load 3.4kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:45:02.050479: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:45:02.050556: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:45:02.051187: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:45:02.051251: Standing charge is set to 46.63p
2026-08-18 06:45:02.144955: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:45:02.145189: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:45:02.145439: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:45:02.146450: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:45:02.146564: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:45:02.150854: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:45:02.151157: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:45:02.187255: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:45:02.187369: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:45:02.188480: High export rate found rates in range 99p to -99p
2026-08-18 06:45:02.212386: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:45:02.212486: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:45:02.222182: Battery level now 12.64kWh, -1hr ago 13.12kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 39.86p, rate_forward 6.87p
2026-08-18 06:45:02.222493: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:45:02.266873: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:45:02.266989: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:45:02.338330: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:45:02.362500: Today's load divergence 92.82%, in-day adjustment 92.82%, damping 0.95x, yesterday 92.68% today 93.18% blend 71.88%
2026-08-18 06:45:02.362582: Today's predicted so far 4.44kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 4.44kWh forecast extra.
2026-08-18 06:45:02.362608: Today's actual load so far 3.35kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 06:45:02.395994: Inverter 0: Type SK Sunsynk
2026-08-18 06:45:02.396067: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:45:02.396216: Reserve min: 7%, battery_min: 7%
2026-08-18 06:45:02.396271: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:45:02.396500: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 417W, current battery voltage 51.2V, grid power -55W, load power 475W, PV Power 0W
2026-08-18 06:45:02.396625: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:45:02.396697: Inverter 0 scheduled charge enable is False
2026-08-18 06:45:02.396720: Inverter 0 charge windows currently []
2026-08-18 06:45:02.396740: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:45:02.396825: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:45:02.396854: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:45:02.396883: Inverter 0 scheduled discharge enable is False
2026-08-18 06:45:02.396982: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:45:02.397011: Inverter 0 discharge windows currently []
2026-08-18 06:45:02.397029: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:45:02.397044: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:45:02.397057: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:45:02.446768: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:45:02.446874: Plan was last updated on 2026-08-18 06:40:00+01:00 and is now 5.0 minutes old
2026-08-18 06:45:02.447081: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:45:02.447122: Best export window [ ]
2026-08-18 06:45:02.447880: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:45:02.451026: Load divergence over 8.0 hours mean 403.09W, min 274.2W, max 753.0W, std dev 77.02W, divergence 9.55%
2026-08-18 06:45:02.466604: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:45:02.466676: LoadML is_calculating False
2026-08-18 06:45:02.466724: Creating pool of 12 processes to match your CPU count
2026-08-18 06:45:02.586461: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:45:00, load 30.25kWh, PV 0.0kWh
2026-08-18 06:45:02.719373: Battery has 17.0 hours left - now at 12.64kWh
2026-08-18 06:45:02.765042: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.53kWh, PV 0.0kWh
2026-08-18 06:45:02.837934: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 339.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.53kWh, PV 0.0kWh
2026-08-18 06:45:02.924378: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 324.8p, metric_keep 0kWh, min_soc 1.48kWh @ 08-18 23:25:00, load 30.25kWh, PV 0.0kWh
2026-08-18 06:45:02.924466: Saving plan best values to HA entities
2026-08-18 06:45:03.081906: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:45:03.088053: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 06:45:03.094006: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.82kWh, house 0kWh, export 0.0kWh, metric 324.8p, metric10 339.39p
2026-08-18 06:45:03.167293: Marginal costs baseline metric (no standing charge): 278.1616
2026-08-18 06:45:03.427371: Marginal energy costs matrix computed: min=25.51 max=32.72
2026-08-18 06:45:03.498991: Rate array import [{'start': 405, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 405, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:45:03.499631: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 06:45:03.499667: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:45:03.499685: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 06:45:03.499701: - For the next 48 hours there will be no solar generation.
2026-08-18 06:45:03.499715: - You will reach a minimum of 9% battery in 16 hours.
2026-08-18 06:45:03.499729: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 06:45:03.499746:
2026-08-18 06:45:03.553797: Plan calculation took 1.11 seconds
2026-08-18 06:45:03.557713: No high rate period found
2026-08-18 06:45:03.609575: Import threshold used for optimisation was 8.0p
2026-08-18 06:45:03.657270: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:45:03.663045: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 06:45:03.663199: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:45:03.663364: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:45:03.663636: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:45:03.663734: No export window planned
2026-08-18 06:45:03.663861: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:45:03.663895: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:45:03.664119: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:45:03.664297: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:45:03.664377: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:45:03.664465: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:45:03.664573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664676: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664725: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664816: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664850: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664875: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664899: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664928: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664952: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.664999: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:45:03.665035: Inverter 0 count register writes 0
2026-08-18 06:45:03.680626: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 06:45:03.685713: Total inverter register writes now 867
2026-08-18 06:45:03.717778: Info: Completed run status Demand
2026-08-18 06:45:03.723606: Info: record_status Demand
2026-08-18 06:45:03.729769: Saved current settings to /config/predbat_config.json
2026-08-18 06:45:03.730163: Compare, best tariff: current metric 129.87p
2026-08-18 06:45:03.941525: ML Component: Generating predictions load data age 59.0 days, 17192 data points
2026-08-18 06:45:04.080229: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0459 max_dow {0: 0.08345277784036266, 1: 0.08988611095034414, 2: 0.10979687459506096, 3: 0.10322812534738332, 4: 0.1381812503574416, 5: 0.1023638893092672, 6: 0.1055527771184014}
2026-08-18 06:45:04.676460: ML Component: Generated 576 predictions (total 32.02 kWh over 48h)
2026-08-18 06:45:04.714785: ML Component: Prediction cycle completed
2026-08-18 06:45:04.842217: ML Component: Saved 17192 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 06:45:33.834835: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:45:33.835072: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:45:33.835119: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:45:33.835292: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:45:33.835355: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:45:33.835384: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:45:33.835402: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:47:34.053785: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:47:34.053976: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:47:34.054009: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:47:34.054115: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:47:34.054147: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:47:34.054165: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:47:34.054179: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:49:34.256777: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:49:34.257012: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:49:34.257053: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:49:34.257186: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:49:34.257224: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:49:34.257334: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:49:34.257385: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:50:00.389248: --------------- PredBat - update at 2026-08-18 06:50:00+01:00 with clock skew 0 minutes, minutes now 410
2026-08-18 06:50:00.389881: Saved current settings to /config/predbat_config.json
2026-08-18 06:50:00.390005: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 06:50:00.390080: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:50:00.390220: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:50:00.407886: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:50:00.408088: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:50:00.408313: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:50:00.408812: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:50:00.408927: Predbat mode is set to Control charge & discharge
2026-08-18 06:50:00.612200: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:50:00.612559: Using load_power data to fill gaps in load_today data
2026-08-18 06:50:01.467675: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:50:01.467837: Zero load period starting at 2026-08-17T10:54:00+0100 (1196 minutes) for 189 minutes with base value 209.125
2026-08-18 06:50:01.468636: Processing 721 30-minute periods for power integration
2026-08-18 06:50:01.629964: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:50:01.630079: Car charging hold False, threshold 6.0kWh
2026-08-18 06:50:01.630116: Current data so far today: load 3.45kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:50:01.642395: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:50:01.642484: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:50:01.643268: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:50:01.643331: Standing charge is set to 46.63p
2026-08-18 06:50:01.739607: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:50:01.740109: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:50:01.740352: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:50:01.742113: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:50:01.742253: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:50:01.747803: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:50:01.748132: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:50:01.783297: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:50:01.783394: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:50:01.784478: High export rate found rates in range 99p to -99p
2026-08-18 06:50:01.808157: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:50:01.808277: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:50:01.819736: Battery level now 12.64kWh, -1hr ago 13.12kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 39.86p, rate_forward 6.87p
2026-08-18 06:50:01.820225: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:50:01.867511: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:50:01.867642: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:50:01.948277: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:50:01.977570: Today's load divergence 93.03%, in-day adjustment 92.88%, damping 0.95x, yesterday 92.68% today 93.38% blend 71.53%
2026-08-18 06:50:01.977668: Today's predicted so far 4.45kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 4.45kWh forecast extra.
2026-08-18 06:50:01.977744: Today's actual load so far 3.4kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 06:50:02.011309: Inverter 0: Type SK Sunsynk
2026-08-18 06:50:02.011381: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:50:02.011593: Reserve min: 7%, battery_min: 7%
2026-08-18 06:50:02.011670: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:50:02.011994: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 418W, current battery voltage 51.2V, grid power -54W, load power 474W, PV Power 0W
2026-08-18 06:50:02.012134: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:50:02.012221: Inverter 0 scheduled charge enable is False
2026-08-18 06:50:02.012247: Inverter 0 charge windows currently []
2026-08-18 06:50:02.012269: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:50:02.012355: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:50:02.012401: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:50:02.012433: Inverter 0 scheduled discharge enable is False
2026-08-18 06:50:02.012569: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:50:02.012606: Inverter 0 discharge windows currently []
2026-08-18 06:50:02.012626: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:50:02.012645: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:50:02.012677: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:50:02.067122: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:50:02.067239: Plan was last updated on 2026-08-18 06:40:00+01:00 and is now 10.0 minutes old
2026-08-18 06:50:02.067479: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:50:02.067526: Best export window [ ]
2026-08-18 06:50:02.068383: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:50:02.073421: Load divergence over 8.0 hours mean 401.51W, min 297.6W, max 693.0W, std dev 66.69W, divergence 8.3%
2026-08-18 06:50:02.095140: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:50:02.095273: LoadML is_calculating False
2026-08-18 06:50:02.095337: Creating pool of 12 processes to match your CPU count
2026-08-18 06:50:02.223820: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 607.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.36kWh, PV 0.0kWh
2026-08-18 06:50:02.356836: Battery has 17.0 hours left - now at 12.64kWh
2026-08-18 06:50:02.404108: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 635.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.64kWh, PV 0.0kWh
2026-08-18 06:50:02.479681: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.64kWh, PV 0.0kWh
2026-08-18 06:50:02.560311: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 328.63p, metric_keep 0kWh, min_soc 1.51kWh @ 08-18 23:25:00, load 30.36kWh, PV 0.0kWh
2026-08-18 06:50:02.560399: Saving plan best values to HA entities
2026-08-18 06:50:02.708922: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:50:02.713579: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:50:02.718530: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.3kWh, house 0.0kWh, export 0.0kWh, metric 328.63p, metric10 341.74p
2026-08-18 06:50:02.787822: Marginal costs baseline metric (no standing charge): 281.9984
2026-08-18 06:50:03.062696: Marginal energy costs matrix computed: min=24.82 max=32.63
2026-08-18 06:50:03.130745: Rate array import [{'start': 410, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 410, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:50:03.131386: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 06:50:03.131424: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:50:03.131443: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 06:50:03.131457: - For the next 48 hours there will be no solar generation.
2026-08-18 06:50:03.131471: - You will reach a minimum of 9% battery in 16 hours.
2026-08-18 06:50:03.131506: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 06:50:03.131522:
2026-08-18 06:50:03.191319: Plan calculation took 1.12 seconds
2026-08-18 06:50:03.194643: No high rate period found
2026-08-18 06:50:03.245791: Import threshold used for optimisation was 8.0p
2026-08-18 06:50:03.313171: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:50:03.318031: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 06:50:03.318178: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:50:03.318322: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:50:03.318586: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:50:03.318700: No export window planned
2026-08-18 06:50:03.318871: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:50:03.318913: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:50:03.319076: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:50:03.319297: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:50:03.319374: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:50:03.319472: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:50:03.319599: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.319653: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.319705: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.319750: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.319799: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.319844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.319891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320080: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320218: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320269: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320296: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:03.320333: Inverter 0 count register writes 0
2026-08-18 06:50:03.333800: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 06:50:03.333970: Recompute is saving previous plan...
2026-08-18 06:50:03.334728: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 06:50:03.334769: Best export window [ ]
2026-08-18 06:50:03.335449: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:50:03.338247: Load divergence over 8.0 hours mean 401.51W, min 297.6W, max 693.0W, std dev 66.69W, divergence 8.3%
2026-08-18 06:50:03.353012: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:50:03.353099: LoadML is_calculating False
2026-08-18 06:50:03.353148: Creating pool of 12 processes to match your CPU count
2026-08-18 06:50:03.426903: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 06:50:03.427684: Optimise levels pass started at 2026-08-18 06:50:03
2026-08-18 06:50:03.427725: Optimise all windows, total charge 24 export 1
2026-08-18 06:50:03.963701: >> Region optimisation pass width 960 gives best_metric 308.19p, best_cost 314.52p, best_cycle 38.22kWh, best_import 23.37kWh
2026-08-18 06:50:04.091325: >> Region optimisation pass width 480 gives best_metric 308.19p, best_cost 314.52p, best_cycle 38.22kWh, best_import 23.37kWh
2026-08-18 06:50:04.361616: >> Region optimisation pass width 240 gives best_metric 308.19p, best_cost 314.52p, best_cycle 38.22kWh, best_import 23.37kWh
2026-08-18 06:50:04.944854: >> Region optimisation pass width 120 gives best_metric 308.19p, best_cost 314.52p, best_cycle 38.22kWh, best_import 23.37kWh
2026-08-18 06:50:04.945057: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 06:50:04.945124: Optimise levels pass ended at 2026-08-18 06:50:04, duration 1.5 seconds tried 60 combinations
2026-08-18 06:50:04.945182: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 308.19p, best_keep 0kWh, best_cycle 38.22kWh, best_carbon 0kg, best_import 23.37kWh
2026-08-18 06:50:04.965495: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 06:50:07.778533: Tweak plan optimisation started metric 265.08p, cost 275.76p
2026-08-18 06:50:08.137303: Tweak optimisation finished metric 265.08p, cost 275.76p, metric_keep 0kWh, cycle 36.45kWh, carbon 0kg, import 18.52kWh, changed 8 window(s)
2026-08-18 06:50:08.157801: Swap charge optimisation started metric 265.08p, cost 275.76p, min_improvement_swap 0.1p
2026-08-18 06:50:08.916903: Swap charge optimisation finished metric 265.08p, cost 275.76p
2026-08-18 06:50:09.067130: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 263.04p -> 262.45p, plan now metric 265.97p, cost 271.62p, cycle 36.46kWh, import 18.0kWh
2026-08-18 06:50:09.083403: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:50:09.083760: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:50:09.084029: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:50:09.084224: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 06:50:09.135792: Previous plan best metric is 265.08 (cost 275.76) and new plan best metric is 265.08 (cost 275.76)
2026-08-18 06:50:09.136049: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 06:50:09.136230: Plan valid is now true after recompute was False
2026-08-18 06:50:09.165748: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.16kWh, PV 0.0kWh
2026-08-18 06:50:09.281851: Battery has 17.0 hours left - now at 12.64kWh
2026-08-18 06:50:09.330350: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.44kWh, PV 0.0kWh
2026-08-18 06:50:09.412129: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.55p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.44kWh, PV 0.0kWh
2026-08-18 06:50:09.488212: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 320.4p, metric_keep 0kWh, min_soc 1.51kWh @ 08-18 23:25:00, load 30.16kWh, PV 0.0kWh
2026-08-18 06:50:09.488288: Saving plan best values to HA entities
2026-08-18 06:50:09.626867: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:50:09.632382: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:50:09.637381: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.27kWh, house 0.0kWh, export 0.0kWh, metric 320.4p, metric10 334.55p
2026-08-18 06:50:09.704909: Marginal costs baseline metric (no standing charge): 273.7653
2026-08-18 06:50:10.019607: Marginal energy costs matrix computed: min=24.82 max=32.63
2026-08-18 06:50:10.099776: Rate array import [{'start': 410, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 410, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:50:10.100635: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 06:50:10.100686: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:50:10.100709: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 06:50:10.100728: - For the next 48 hours there will be no solar generation.
2026-08-18 06:50:10.100745: - You will reach a minimum of 9% battery in 16 hours.
2026-08-18 06:50:10.100762: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 06:50:10.100783:
2026-08-18 06:50:10.160143: Plan calculation took 6.83 seconds
2026-08-18 06:50:10.160603: Inverter 0: Type SK Sunsynk
2026-08-18 06:50:10.160677: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:50:10.160982: Reserve min: 7%, battery_min: 7%
2026-08-18 06:50:10.161101: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:50:10.161615: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 417W, current battery voltage 51.2V, grid power -54W, load power 474W, PV Power 0W
2026-08-18 06:50:10.161905: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:50:10.162017: Inverter 0 scheduled charge enable is False
2026-08-18 06:50:10.162055: Inverter 0 charge windows currently []
2026-08-18 06:50:10.162087: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:50:10.162232: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:50:10.162279: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:50:10.162319: Inverter 0 scheduled discharge enable is False
2026-08-18 06:50:10.162449: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:50:10.162486: Inverter 0 discharge windows currently []
2026-08-18 06:50:10.162526: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:50:10.162567: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:50:10.162589: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:50:10.222466: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 06:50:10.222680: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:50:10.222766: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:50:10.222974: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:50:10.223057: No export window planned
2026-08-18 06:50:10.223172: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:50:10.223250: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:50:10.223388: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:50:10.223546: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:50:10.223599: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:50:10.223662: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:50:10.223754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.223794: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.223829: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.223860: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.223884: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.223950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.223983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224050: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224085: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224111: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224165: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224257: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224352: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:50:10.224391: Inverter 0 count register writes 0
2026-08-18 06:50:10.245966: Total inverter register writes now 867
2026-08-18 06:50:10.277715: Info: Completed run status Demand
2026-08-18 06:50:10.284040: Info: record_status Demand
2026-08-18 06:50:10.301704: Saved current settings to /config/predbat_config.json
2026-08-18 06:50:10.301984: Compare, best tariff: current metric 129.87p
2026-08-18 06:50:49.410054: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:50:49.410434: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:50:49.410502: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:50:49.410632: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:50:49.410665: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:50:49.410682: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:50:49.410697: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:52:49.615446: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:52:49.615721: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:52:49.615779: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:52:49.616007: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:52:49.616055: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:52:49.616100: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:52:49.616140: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:55:00.846449: --------------- PredBat - update at 2026-08-18 06:55:00+01:00 with clock skew 0 minutes, minutes now 415
2026-08-18 06:55:00.847159: Saved current settings to /config/predbat_config.json
2026-08-18 06:55:00.847274: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 06:55:00.847349: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 06:55:00.847462: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 06:55:00.865768: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 06:55:00.865890: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 06:55:00.866118: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 06:55:00.866683: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 06:55:00.866833: Predbat mode is set to Control charge & discharge
2026-08-18 06:55:01.040992: Found 21602 load_today datapoints going back 28 days
2026-08-18 06:55:01.041127: Using load_power data to fill gaps in load_today data
2026-08-18 06:55:01.889651: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 06:55:01.889845: Zero load period starting at 2026-08-17T10:54:00+0100 (1201 minutes) for 189 minutes with base value 209.1
2026-08-18 06:55:01.891035: Processing 721 30-minute periods for power integration
2026-08-18 06:55:02.086063: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 06:55:02.086619: Car charging hold False, threshold 6.0kWh
2026-08-18 06:55:02.086681: Current data so far today: load 3.5kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 06:55:02.101978: Car 0 using Octopus Intelligent is unplugged
2026-08-18 06:55:02.102099: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 06:55:02.102827: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 06:55:02.102897: Standing charge is set to 46.63p
2026-08-18 06:55:02.200316: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:55:02.200523: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:55:02.200678: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 06:55:02.201537: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 06:55:02.201621: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 06:55:02.208445: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 06:55:02.209055: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 06:55:02.252412: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 06:55:02.252694: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 06:55:02.254090: High export rate found rates in range 99p to -99p
2026-08-18 06:55:02.282186: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 06:55:02.282277: Car 0 on Octopus Intelligent, no active plan
2026-08-18 06:55:02.295218: Battery level now 12.64kWh, -1hr ago 12.96kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 39.86p, rate_forward 6.87p
2026-08-18 06:55:02.295517: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 06:55:02.337895: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 06:55:02.338033: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 06:55:02.410061: Using weighted-bucket historical load forecast over 14 days
2026-08-18 06:55:02.439859: Today's load divergence 93.25%, in-day adjustment 92.94%, damping 0.95x, yesterday 92.68% today 93.59% blend 71.18%
2026-08-18 06:55:02.440214: Today's predicted so far 4.48kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 4.48kWh forecast extra.
2026-08-18 06:55:02.440261: Today's actual load so far 3.45kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 06:55:02.474863: Inverter 0: Type SK Sunsynk
2026-08-18 06:55:02.474936: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 06:55:02.475098: Reserve min: 7%, battery_min: 7%
2026-08-18 06:55:02.475182: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 06:55:02.475430: Inverter 0 SoC: 12.64kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 421W, current battery voltage 51.2V, grid power -55W, load power 479W, PV Power 0W
2026-08-18 06:55:02.475578: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:55:02.475681: Inverter 0 scheduled charge enable is False
2026-08-18 06:55:02.475709: Inverter 0 charge windows currently []
2026-08-18 06:55:02.475737: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 06:55:02.475850: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:55:02.475885: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:55:02.475970: Inverter 0 scheduled discharge enable is False
2026-08-18 06:55:02.476125: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:55:02.476158: Inverter 0 discharge windows currently []
2026-08-18 06:55:02.476178: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:55:02.476196: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:55:02.476209: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:55:02.532302: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 06:55:02.532398: Plan was last updated on 2026-08-18 06:50:00+01:00 and is now 5.0 minutes old
2026-08-18 06:55:02.532595: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 06:55:02.532635: Best export window [ ]
2026-08-18 06:55:02.533433: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 06:55:02.536624: Load divergence over 8.0 hours mean 400.09W, min 292.8W, max 660.0W, std dev 65.4W, divergence 8.17%
2026-08-18 06:55:02.554956: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 06:55:02.555081: LoadML is_calculating False
2026-08-18 06:55:02.555143: Creating pool of 12 processes to match your CPU count
2026-08-18 06:55:02.663473: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.42p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.29kWh, PV 0.0kWh
2026-08-18 06:55:02.785227: Battery has 16.92 hours left - now at 12.64kWh
2026-08-18 06:55:02.828293: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.57kWh, PV 0.0kWh
2026-08-18 06:55:02.907101: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.57kWh, PV 0.0kWh
2026-08-18 06:55:02.975682: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 324.16p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.29kWh, PV 0.0kWh
2026-08-18 06:55:02.975764: Saving plan best values to HA entities
2026-08-18 06:55:03.143325: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 06:55:03.148572: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 06:55:03.153096: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.0kWh, export 0.0kWh, metric 324.16p, metric10 337.83p
2026-08-18 06:55:03.220133: Marginal costs baseline metric (no standing charge): 277.525
2026-08-18 06:55:03.481213: Marginal energy costs matrix computed: min=24.21 max=32.56
2026-08-18 06:55:03.552223: Rate array import [{'start': 415, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 415, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 06:55:03.552990: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 06:55:03.553050: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 06:55:03.553073: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 06:55:03.553091: - For the next 48 hours there will be no solar generation.
2026-08-18 06:55:03.553108: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 06:55:03.553125: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 06:55:03.553148:
2026-08-18 06:55:03.609550: Plan calculation took 1.08 seconds
2026-08-18 06:55:03.613535: No high rate period found
2026-08-18 06:55:03.660954: Import threshold used for optimisation was 8.0p
2026-08-18 06:55:03.711311: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 06:55:03.716696: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 06:55:03.716812: Inverter 0 disabled charge window while waiting for schedule (now 08-18 06:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 06:55:03.716901: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:55:03.717122: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:55:03.717206: No export window planned
2026-08-18 06:55:03.717311: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 06:55:03.717340: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 06:55:03.717445: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 06:55:03.717587: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 06:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 06:55:03.717636: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 06:55:03.717693: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 06:55:03.717770: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717802: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717827: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717847: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717871: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717911: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.717986: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.718020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.718042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.718063: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.718083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.718119: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 06:55:03.718136: Inverter 0 count register writes 0
2026-08-18 06:55:03.732723: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 06:55:03.738185: Total inverter register writes now 867
2026-08-18 06:55:03.771321: Info: Completed run status Demand
2026-08-18 06:55:03.777284: Info: record_status Demand
2026-08-18 06:55:03.783889: Saved current settings to /config/predbat_config.json
2026-08-18 06:55:03.784310: Compare, best tariff: current metric 129.87p
2026-08-18 06:55:33.881728: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:55:33.882057: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:55:33.882113: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:55:33.882256: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:55:33.882299: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:55:33.882321: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:55:33.882339: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:55:53.630427: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 06:55:53.778320: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 06:57:34.104681: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:57:34.104870: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:57:34.104905: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:57:34.105028: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:57:34.105061: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:57:34.105078: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:57:34.105093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 06:58:59.423420: Info: HAHistory: Pruning history data started.
2026-08-18 06:58:59.426317: Info: HAHistory: Pruning history data completed.
2026-08-18 06:59:34.322200: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 06:59:34.322419: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 06:59:34.322459: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 06:59:34.322604: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 06:59:34.322641: Note: Inverter does not support discharge freeze - disabled
2026-08-18 06:59:34.322662: Note: Inverter does not support charge freeze - disabled
2026-08-18 06:59:34.322680: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:00:00.421097: --------------- PredBat - update at 2026-08-18 07:00:00+01:00 with clock skew 0 minutes, minutes now 420
2026-08-18 07:00:00.421879: Saved current settings to /config/predbat_config.json
2026-08-18 07:00:00.422012: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 07:00:00.422100: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:00:00.422216: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:00:00.440595: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:00:00.440796: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:00:00.441166: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:00:00.442276: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:00:00.442432: Predbat mode is set to Control charge & discharge
2026-08-18 07:00:00.613269: Found 21602 load_today datapoints going back 27 days
2026-08-18 07:00:00.613672: Using load_power data to fill gaps in load_today data
2026-08-18 07:00:01.457165: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:00:01.457349: Zero load period starting at 2026-08-17T10:54:00+0100 (1206 minutes) for 189 minutes with base value 209.075
2026-08-18 07:00:01.458385: Processing 721 30-minute periods for power integration
2026-08-18 07:00:01.647661: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:00:01.647782: Car charging hold False, threshold 6.0kWh
2026-08-18 07:00:01.647827: Current data so far today: load 3.4kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:00:01.662381: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:00:01.662475: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:00:01.663258: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:00:01.663331: Standing charge is set to 46.63p
2026-08-18 07:00:01.763539: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:00:01.763788: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:00:01.764044: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:00:01.765142: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:00:01.765249: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:00:01.770726: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:00:01.771234: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:00:01.827366: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:00:01.827484: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:00:01.828809: High export rate found rates in range 99p to -99p
2026-08-18 07:00:01.860418: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:00:01.860576: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:00:01.875099: Battery level now 12.64kWh, -1hr ago 12.96kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 39.86p, rate_forward 6.87p
2026-08-18 07:00:01.875518: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:00:01.928308: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:00:01.928415: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:00:01.998443: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:00:02.030812: Today's load divergence 92.06%, in-day adjustment 92.62%, damping 0.95x, yesterday 92.68% today 92.46% blend 70.83%
2026-08-18 07:00:02.030931: Today's predicted so far 4.59kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 4.59kWh forecast extra.
2026-08-18 07:00:02.030986: Today's actual load so far 3.4kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 07:00:02.069447: Inverter 0: Type SK Sunsynk
2026-08-18 07:00:02.069543: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:00:02.069722: Reserve min: 7%, battery_min: 7%
2026-08-18 07:00:02.069802: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:00:02.070080: Inverter 0 SoC: 12.59kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 422W, current battery voltage 51.2V, grid power -55W, load power 478W, PV Power 0W
2026-08-18 07:00:02.070236: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:00:02.070316: Inverter 0 scheduled charge enable is False
2026-08-18 07:00:02.070350: Inverter 0 charge windows currently []
2026-08-18 07:00:02.070377: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:00:02.070483: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:00:02.070512: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:00:02.070546: Inverter 0 scheduled discharge enable is False
2026-08-18 07:00:02.070671: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:00:02.070707: Inverter 0 discharge windows currently []
2026-08-18 07:00:02.070730: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:00:02.070748: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:00:02.070765: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:00:02.132633: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:00:02.132736: Plan was last updated on 2026-08-18 06:50:00+01:00 and is now 10.0 minutes old
2026-08-18 07:00:02.132962: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:00:02.133005: Best export window [ ]
2026-08-18 07:00:02.133809: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:00:02.137136: Load divergence over 8.0 hours mean 398.49W, min 281.4W, max 651.6W, std dev 61.11W, divergence 7.67%
2026-08-18 07:00:02.156634: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:00:02.156755: LoadML is_calculating False
2026-08-18 07:00:02.156836: Creating pool of 12 processes to match your CPU count
2026-08-18 07:00:02.275848: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 606.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.19kWh, PV 0.0kWh
2026-08-18 07:00:02.439042: Battery has 16.92 hours left - now at 12.59kWh
2026-08-18 07:00:02.481190: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 632.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.47kWh, PV 0.0kWh
2026-08-18 07:00:02.556232: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 339.65p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.47kWh, PV 0.0kWh
2026-08-18 07:00:02.636209: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 327.95p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.19kWh, PV 0.0kWh
2026-08-18 07:00:02.636295: Saving plan best values to HA entities
2026-08-18 07:00:02.780632: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:00:02.786218: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:00:02.793771: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.21kWh, house 0.0kWh, export 0.0kWh, metric 327.95p, metric10 339.65p
2026-08-18 07:00:02.862888: Marginal costs baseline metric (no standing charge): 281.315
2026-08-18 07:00:03.102116: Marginal energy costs matrix computed: min=23.21 max=32.43
2026-08-18 07:00:03.178270: Rate array import [{'start': 420, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 420, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:00:03.178932: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:00:03.178976: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:00:03.178996: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 07:00:03.179011: - For the next 48 hours there will be no solar generation.
2026-08-18 07:00:03.179025: - You will reach a minimum of 10% battery in 40 hours.
2026-08-18 07:00:03.179039: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:00:03.179056:
2026-08-18 07:00:03.244580: Plan calculation took 1.11 seconds
2026-08-18 07:00:03.248057: No high rate period found
2026-08-18 07:00:03.292960: Import threshold used for optimisation was 8.0p
2026-08-18 07:00:03.341963: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:00:03.346637: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 07:00:03.346755: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:00:03.346889: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:00:03.347130: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:00:03.347239: No export window planned
2026-08-18 07:00:03.347385: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:00:03.347420: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:00:03.347558: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:00:03.347739: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:00:03.347798: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:00:03.347930: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:00:03.348078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348120: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348162: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348208: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348253: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348357: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348455: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348495: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348540: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348586: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348628: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348670: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348699: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:03.348734: Inverter 0 count register writes 0
2026-08-18 07:00:03.363326: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 07:00:03.363534: Recompute is saving previous plan...
2026-08-18 07:00:03.364445: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 07:00:03.364493: Best export window [ ]
2026-08-18 07:00:03.365200: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:00:03.367758: Load divergence over 8.0 hours mean 398.49W, min 281.4W, max 651.6W, std dev 61.11W, divergence 7.67%
2026-08-18 07:00:03.381707: Calculating data from yesterday for savings calculation
2026-08-18 07:00:03.391658: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 07:00:03.430647: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 07:00:03.443541: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 07:00:03.461278: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 07:00:03.491431: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 07:00:03.559454: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 07:00:03.559601: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 07:00:03.569514: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:00:03.569626: LoadML is_calculating False
2026-08-18 07:00:03.569704: Creating pool of 12 processes to match your CPU count
2026-08-18 07:00:03.644916: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 07:00:03.645622: Optimise levels pass started at 2026-08-18 07:00:03
2026-08-18 07:00:03.645670: Optimise all windows, total charge 24 export 1
2026-08-18 07:00:04.229964: >> Region optimisation pass width 960 gives best_metric 307.84p, best_cost 314.18p, best_cycle 38.63kWh, best_import 23.32kWh
2026-08-18 07:00:04.384338: >> Region optimisation pass width 480 gives best_metric 307.84p, best_cost 314.18p, best_cycle 38.63kWh, best_import 23.32kWh
2026-08-18 07:00:04.659252: >> Region optimisation pass width 240 gives best_metric 307.84p, best_cost 314.18p, best_cycle 38.63kWh, best_import 23.32kWh
2026-08-18 07:00:05.223771: >> Region optimisation pass width 120 gives best_metric 307.84p, best_cost 314.18p, best_cycle 38.63kWh, best_import 23.32kWh
2026-08-18 07:00:05.224022: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 07:00:05.224091: Optimise levels pass ended at 2026-08-18 07:00:05, duration 1.6 seconds tried 60 combinations
2026-08-18 07:00:05.224153: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 307.84p, best_keep 0kWh, best_cycle 38.63kWh, best_carbon 0kg, best_import 23.32kWh
2026-08-18 07:00:05.243163: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 07:00:08.098447: Tweak plan optimisation started metric 264.25p, cost 275.15p
2026-08-18 07:00:08.494621: Tweak optimisation finished metric 264.25p, cost 275.15p, metric_keep 0kWh, cycle 36.28kWh, carbon 0kg, import 18.44kWh, changed 8 window(s)
2026-08-18 07:00:08.517122: Swap charge optimisation started metric 264.25p, cost 275.15p, min_improvement_swap 0.1p
2026-08-18 07:00:09.313209: Swap charge optimisation finished metric 264.25p, cost 275.15p
2026-08-18 07:00:09.463489: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.46p -> 262.31p, plan now metric 264.69p, cost 273.11p, cycle 36.54kWh, import 18.19kWh
2026-08-18 07:00:09.474184: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:00:09.474504: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:00:09.474721: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:00:09.474907: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:00:09.517229: Previous plan best metric is 264.32 (cost 275.23) and new plan best metric is 264.25 (cost 275.15)
2026-08-18 07:00:09.517605: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 07:00:09.517755: Plan valid is now true after recompute was False
2026-08-18 07:00:09.550332: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.06p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.01kWh, PV 0.0kWh
2026-08-18 07:00:09.659630: Battery has 16.92 hours left - now at 12.59kWh
2026-08-18 07:00:09.702252: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 631.27p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.27kWh, PV 0.0kWh
2026-08-18 07:00:09.779426: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 332.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.27kWh, PV 0.0kWh
2026-08-18 07:00:09.868520: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 319.82p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.01kWh, PV 0.0kWh
2026-08-18 07:00:09.868608: Saving plan best values to HA entities
2026-08-18 07:00:10.018527: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:00:10.024318: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:00:10.029849: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.2kWh, house 0.0kWh, export 0.0kWh, metric 319.82p, metric10 332.56p
2026-08-18 07:00:10.103711: Marginal costs baseline metric (no standing charge): 273.1907
2026-08-18 07:00:10.336317: Marginal energy costs matrix computed: min=23.21 max=32.43
2026-08-18 07:00:10.400470: Rate array import [{'start': 420, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 420, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:00:10.401121: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:00:10.401161: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:00:10.401179: - The battery is currently at 79% and is in eco mode for the next 16 hours.
2026-08-18 07:00:10.401195: - For the next 48 hours there will be no solar generation.
2026-08-18 07:00:10.401209: - You will reach a minimum of 10% battery in 40 hours.
2026-08-18 07:00:10.401226: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:00:10.401240:
2026-08-18 07:00:10.458906: Plan calculation took 7.10 seconds
2026-08-18 07:00:10.459268: Inverter 0: Type SK Sunsynk
2026-08-18 07:00:10.459574: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:00:10.459850: Reserve min: 7%, battery_min: 7%
2026-08-18 07:00:10.460005: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:00:10.460436: Inverter 0 SoC: 12.59kW 79%, current charge rate 5000W, current discharge rate 5250W, current battery power 422W, current battery voltage 51.2V, grid power -55W, load power 478W, PV Power 0W
2026-08-18 07:00:10.460714: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:00:10.460835: Inverter 0 scheduled charge enable is False
2026-08-18 07:00:10.460898: Inverter 0 charge windows currently []
2026-08-18 07:00:10.460958: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:00:10.461097: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:00:10.461143: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:00:10.461204: Inverter 0 scheduled discharge enable is False
2026-08-18 07:00:10.461361: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:00:10.461400: Inverter 0 discharge windows currently []
2026-08-18 07:00:10.461437: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:00:10.461474: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:00:10.461508: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:00:10.547756: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 79%, target 100%
2026-08-18 07:00:10.548006: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:00:10.548128: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:00:10.548432: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:00:10.548555: No export window planned
2026-08-18 07:00:10.548739: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:00:10.548793: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:00:10.549037: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:00:10.549288: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:00:10.549376: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:00:10.549522: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:00:10.549682: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.549755: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.549821: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.549896: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.549967: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550029: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550207: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550277: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550407: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550474: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550535: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550599: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:00:10.550644: Inverter 0 count register writes 0
2026-08-18 07:00:10.696680: Total inverter register writes now 867
2026-08-18 07:00:10.740713: Info: Completed run status Demand
2026-08-18 07:00:10.747329: Info: record_status Demand
2026-08-18 07:00:10.754576: Saved current settings to /config/predbat_config.json
2026-08-18 07:00:10.754922: Compare, best tariff: current metric 129.87p
2026-08-18 07:00:48.863137: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:00:48.863543: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:00:48.863738: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:00:48.864028: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:00:48.864100: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:00:48.864129: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:00:48.864154: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:02:49.081501: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:02:49.081759: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:02:49.081806: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:02:49.081971: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:02:49.082009: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:02:49.082031: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:02:49.082049: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:04:49.309977: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:04:49.310279: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:04:49.310338: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:04:49.310530: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:04:49.310575: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:04:49.310598: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:04:49.310621: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:05:00.397718: --------------- PredBat - update at 2026-08-18 07:05:00+01:00 with clock skew 0 minutes, minutes now 425
2026-08-18 07:05:00.398342: Saved current settings to /config/predbat_config.json
2026-08-18 07:05:00.398440: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 07:05:00.398498: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:05:00.398564: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:05:00.414024: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:05:00.414123: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:05:00.414255: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:05:00.414695: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:05:00.414811: Predbat mode is set to Control charge & discharge
2026-08-18 07:05:00.613760: Found 21602 load_today datapoints going back 27 days
2026-08-18 07:05:00.613938: Using load_power data to fill gaps in load_today data
2026-08-18 07:05:01.368817: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:05:01.369019: Zero load period starting at 2026-08-17T10:54:00+0100 (1211 minutes) for 189 minutes with base value 209.05
2026-08-18 07:05:01.369827: Processing 721 30-minute periods for power integration
2026-08-18 07:05:01.539827: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:05:01.539988: Car charging hold False, threshold 6.0kWh
2026-08-18 07:05:01.540029: Current data so far today: load 3.4kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:05:01.552590: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:05:01.552926: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:05:01.553689: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:05:01.553788: Standing charge is set to 46.63p
2026-08-18 07:05:01.664827: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:05:01.666683: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:05:01.666921: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:05:01.668022: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:05:01.668156: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:05:01.672708: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:05:01.673211: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:05:01.712719: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:05:01.712855: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:05:01.713905: High export rate found rates in range 99p to -99p
2026-08-18 07:05:01.742866: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:05:01.742989: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:05:01.769220: Battery level now 12.59kWh, -1hr ago 12.96kWh, at midnight 6.84kWh, battery value change in the last hour -2.53p, change today 39.53p, rate_forward 6.87p
2026-08-18 07:05:01.769624: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:05:01.853712: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:05:01.853835: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:05:01.917556: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:05:01.941757: Today's load divergence 91.58%, in-day adjustment 92.48%, damping 0.95x, yesterday 92.68% today 92.0% blend 70.49%
2026-08-18 07:05:01.941849: Today's predicted so far 4.68kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 4.68kWh forecast extra.
2026-08-18 07:05:01.941874: Today's actual load so far 3.42kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 07:05:01.983018: Inverter 0: Type SK Sunsynk
2026-08-18 07:05:01.983120: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:05:01.983338: Reserve min: 7%, battery_min: 7%
2026-08-18 07:05:01.983431: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:05:01.983785: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 260W, current battery voltage 51.2V, grid power -54W, load power 321W, PV Power 0W
2026-08-18 07:05:01.984024: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:05:01.984142: Inverter 0 scheduled charge enable is False
2026-08-18 07:05:01.984192: Inverter 0 charge windows currently []
2026-08-18 07:05:01.984229: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:05:01.984371: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:05:01.984419: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:05:01.984473: Inverter 0 scheduled discharge enable is False
2026-08-18 07:05:01.984648: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:05:01.984697: Inverter 0 discharge windows currently []
2026-08-18 07:05:01.984734: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:05:01.984762: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:05:01.984806: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:05:02.079042: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:05:02.079271: Plan was last updated on 2026-08-18 07:00:00+01:00 and is now 5.0 minutes old
2026-08-18 07:05:02.079563: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:05:02.079680: Best export window [ ]
2026-08-18 07:05:02.080648: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:05:02.086300: Load divergence over 8.0 hours mean 396.92W, min 263.4W, max 664.2W, std dev 65.12W, divergence 8.2%
2026-08-18 07:05:02.108004: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:05:02.108102: LoadML is_calculating False
2026-08-18 07:05:02.108152: Creating pool of 12 processes to match your CPU count
2026-08-18 07:05:02.218098: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.05kWh, PV 0.0kWh
2026-08-18 07:05:02.344802: Battery has 16.83 hours left - now at 12.48kWh
2026-08-18 07:05:02.388292: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 07:05:02.476127: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 07:05:02.555132: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 324.34p, metric_keep 0kWh, min_soc 1.53kWh @ 08-18 23:25:00, load 30.05kWh, PV 0.0kWh
2026-08-18 07:05:02.555218: Saving plan best values to HA entities
2026-08-18 07:05:02.727987: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:05:02.732733: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:05:02.737070: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.76kWh, house 0.0kWh, export 0.0kWh, metric 324.34p, metric10 337.56p
2026-08-18 07:05:02.804435: Marginal costs baseline metric (no standing charge): 277.7109
2026-08-18 07:05:03.045850: Marginal energy costs matrix computed: min=24.37 max=32.58
2026-08-18 07:05:03.119531: Rate array import [{'start': 425, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 425, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:05:03.120216: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:05:03.120258: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:05:03.120278: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-18 07:05:03.120292: - For the next 48 hours there will be no solar generation.
2026-08-18 07:05:03.120306: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 07:05:03.120323: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:05:03.120338:
2026-08-18 07:05:03.179052: Plan calculation took 1.10 seconds
2026-08-18 07:05:03.182421: No high rate period found
2026-08-18 07:05:03.230649: Import threshold used for optimisation was 8.0p
2026-08-18 07:05:03.277861: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:05:03.283452: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 78%, target 100%
2026-08-18 07:05:03.283568: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:05:03.283674: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:05:03.283966: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:05:03.284053: No export window planned
2026-08-18 07:05:03.284159: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:05:03.284188: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:05:03.284298: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:05:03.284441: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:05:03.284493: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:05:03.284547: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:05:03.284643: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284691: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284720: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284741: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284761: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284801: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284902: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284931: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284971: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.284994: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.285013: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.285038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:05:03.285055: Inverter 0 count register writes 0
2026-08-18 07:05:03.299134: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 07:05:03.303966: Total inverter register writes now 867
2026-08-18 07:05:03.332021: Info: Completed run status Demand
2026-08-18 07:05:03.337126: Info: record_status Demand
2026-08-18 07:05:03.344145: Saved current settings to /config/predbat_config.json
2026-08-18 07:05:03.344409: Compare, best tariff: current metric 129.87p
2026-08-18 07:05:34.439542: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:05:34.439793: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:05:34.439842: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:05:34.440036: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:05:34.440090: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:05:34.440113: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:05:34.440131: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:07:48.664178: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:07:48.664383: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:07:48.664481: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:07:48.664613: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:07:48.664645: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:07:48.664662: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:07:48.664677: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:09:48.872601: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:09:48.872898: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:09:48.872956: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:09:48.873153: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:09:48.873214: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:09:48.873256: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:09:48.873276: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:10:00.967465: --------------- PredBat - update at 2026-08-18 07:10:00+01:00 with clock skew 0 minutes, minutes now 430
2026-08-18 07:10:00.968216: Saved current settings to /config/predbat_config.json
2026-08-18 07:10:00.968336: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 07:10:00.968414: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:10:00.968525: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:10:00.989477: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:10:00.989594: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:10:00.989774: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:10:00.990300: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:10:00.990421: Predbat mode is set to Control charge & discharge
2026-08-18 07:10:01.165615: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:10:01.165734: Using load_power data to fill gaps in load_today data
2026-08-18 07:10:01.913624: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:10:01.914013: Zero load period starting at 2026-08-17T10:54:00+0100 (1216 minutes) for 189 minutes with base value 209.025
2026-08-18 07:10:01.914803: Processing 721 30-minute periods for power integration
2026-08-18 07:10:02.066594: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:10:02.066727: Car charging hold False, threshold 6.0kWh
2026-08-18 07:10:02.066780: Current data so far today: load 3.53kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:10:02.078589: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:10:02.078654: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:10:02.079360: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:10:02.079422: Standing charge is set to 46.63p
2026-08-18 07:10:02.172446: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:10:02.172724: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:10:02.172954: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:10:02.173895: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:10:02.174036: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:10:02.178447: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:10:02.178835: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:10:02.214080: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:10:02.214170: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:10:02.215209: High export rate found rates in range 99p to -99p
2026-08-18 07:10:02.239779: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:10:02.240031: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:10:02.249746: Battery level now 12.48kWh, -1hr ago 12.96kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 38.76p, rate_forward 6.87p
2026-08-18 07:10:02.250030: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:10:02.290529: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:10:02.290671: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:10:02.362636: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:10:02.389393: Today's load divergence 92.32%, in-day adjustment 92.69%, damping 0.95x, yesterday 92.68% today 92.7% blend 70.14%
2026-08-18 07:10:02.389470: Today's predicted so far 4.67kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 4.67kWh forecast extra.
2026-08-18 07:10:02.389495: Today's actual load so far 3.52kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 07:10:02.420956: Inverter 0: Type SK Sunsynk
2026-08-18 07:10:02.421037: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:10:02.421210: Reserve min: 7%, battery_min: 7%
2026-08-18 07:10:02.421286: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:10:02.421550: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 257W, current battery voltage 51.2V, grid power -54W, load power 314W, PV Power 0W
2026-08-18 07:10:02.421749: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:10:02.421840: Inverter 0 scheduled charge enable is False
2026-08-18 07:10:02.421868: Inverter 0 charge windows currently []
2026-08-18 07:10:02.421895: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:10:02.422001: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:10:02.422036: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:10:02.422071: Inverter 0 scheduled discharge enable is False
2026-08-18 07:10:02.422189: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:10:02.422224: Inverter 0 discharge windows currently []
2026-08-18 07:10:02.422246: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:10:02.422267: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:10:02.422284: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:10:02.487104: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:10:02.487207: Plan was last updated on 2026-08-18 07:00:00+01:00 and is now 10.0 minutes old
2026-08-18 07:10:02.487447: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:10:02.487489: Best export window [ ]
2026-08-18 07:10:02.488420: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:10:02.491719: Load divergence over 8.0 hours mean 398.5W, min 262.2W, max 712.8W, std dev 68.0W, divergence 8.53%
2026-08-18 07:10:02.509866: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:10:02.509972: LoadML is_calculating False
2026-08-18 07:10:02.510021: Creating pool of 12 processes to match your CPU count
2026-08-18 07:10:02.614128: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 606.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.26kWh, PV 0.0kWh
2026-08-18 07:10:02.730804: Battery has 16.67 hours left - now at 12.48kWh
2026-08-18 07:10:02.769156: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.53kWh, PV 0.0kWh
2026-08-18 07:10:02.844346: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.63p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.53kWh, PV 0.0kWh
2026-08-18 07:10:02.915094: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 328.37p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.26kWh, PV 0.0kWh
2026-08-18 07:10:02.915278: Saving plan best values to HA entities
2026-08-18 07:10:03.063380: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:10:03.068070: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:10:03.072335: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.27kWh, house 0.0kWh, export 0.0kWh, metric 328.37p, metric10 340.63p
2026-08-18 07:10:03.140408: Marginal costs baseline metric (no standing charge): 281.7355
2026-08-18 07:10:03.382795: Marginal energy costs matrix computed: min=24.15 max=32.55
2026-08-18 07:10:03.463063: Rate array import [{'start': 430, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 430, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:10:03.463941: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:10:03.463991: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:10:03.464034: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-18 07:10:03.464053: - For the next 48 hours there will be no solar generation.
2026-08-18 07:10:03.464071: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 07:10:03.464097: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:10:03.464115:
2026-08-18 07:10:03.525046: Plan calculation took 1.04 seconds
2026-08-18 07:10:03.528424: No high rate period found
2026-08-18 07:10:03.570423: Import threshold used for optimisation was 8.0p
2026-08-18 07:10:03.614558: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:10:03.619894: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 78%, target 100%
2026-08-18 07:10:03.620103: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:10:03.620233: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:10:03.620532: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:10:03.620656: No export window planned
2026-08-18 07:10:03.620904: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:10:03.620961: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:10:03.621126: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:10:03.621306: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:10:03.621369: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:10:03.621436: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:10:03.621537: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621577: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621616: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621647: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621677: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621716: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621772: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621844: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621880: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621914: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621940: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621964: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.621995: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.622025: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:03.622046: Inverter 0 count register writes 0
2026-08-18 07:10:03.636541: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 07:10:03.636731: Recompute is saving previous plan...
2026-08-18 07:10:03.637605: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 07:10:03.637651: Best export window [ ]
2026-08-18 07:10:03.638464: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:10:03.641627: Load divergence over 8.0 hours mean 398.5W, min 262.2W, max 712.8W, std dev 68.0W, divergence 8.53%
2026-08-18 07:10:03.656572: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:10:03.656784: LoadML is_calculating False
2026-08-18 07:10:03.656849: Creating pool of 12 processes to match your CPU count
2026-08-18 07:10:03.738407: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 07:10:03.739281: Optimise levels pass started at 2026-08-18 07:10:03
2026-08-18 07:10:03.739385: Optimise all windows, total charge 24 export 1
2026-08-18 07:10:04.240176: >> Region optimisation pass width 960 gives best_metric 309.04p, best_cost 314.22p, best_cycle 38.18kWh, best_import 23.33kWh
2026-08-18 07:10:04.375406: >> Region optimisation pass width 480 gives best_metric 309.04p, best_cost 314.22p, best_cycle 38.18kWh, best_import 23.33kWh
2026-08-18 07:10:04.616826: >> Region optimisation pass width 240 gives best_metric 309.04p, best_cost 314.22p, best_cycle 38.18kWh, best_import 23.33kWh
2026-08-18 07:10:05.114284: >> Region optimisation pass width 120 gives best_metric 309.04p, best_cost 314.22p, best_cycle 38.18kWh, best_import 23.33kWh
2026-08-18 07:10:05.114535: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 07:10:05.114631: Optimise levels pass ended at 2026-08-18 07:10:05, duration 1.4 seconds tried 50 combinations
2026-08-18 07:10:05.114751: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 309.04p, best_keep 0kWh, best_cycle 38.18kWh, best_carbon 0kg, best_import 23.33kWh
2026-08-18 07:10:05.141651: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 07:10:08.038153: Tweak plan optimisation started metric 264.68p, cost 275.49p
2026-08-18 07:10:08.392158: Tweak optimisation finished metric 264.68p, cost 275.49p, metric_keep 0kWh, cycle 36.24kWh, carbon 0kg, import 18.49kWh, changed 8 window(s)
2026-08-18 07:10:08.416131: Swap charge optimisation started metric 264.68p, cost 275.49p, min_improvement_swap 0.1p
2026-08-18 07:10:09.236341: Swap charge optimisation finished metric 264.68p, cost 275.49p
2026-08-18 07:10:09.347515: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.78p -> 262.19p, plan now metric 265.58p, cost 271.33p, cycle 36.25kWh, import 17.97kWh
2026-08-18 07:10:09.356644: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:10:09.356993: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:10:09.357213: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:10:09.357380: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:10:09.393984: Previous plan best metric is 264.68 (cost 275.49) and new plan best metric is 264.68 (cost 275.49)
2026-08-18 07:10:09.394160: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 07:10:09.394279: Plan valid is now true after recompute was False
2026-08-18 07:10:09.419008: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.06kWh, PV 0.0kWh
2026-08-18 07:10:09.522114: Battery has 16.67 hours left - now at 12.48kWh
2026-08-18 07:10:09.576125: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 07:10:09.661022: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 333.41p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.32kWh, PV 0.0kWh
2026-08-18 07:10:09.736221: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 320.12p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.06kWh, PV 0.0kWh
2026-08-18 07:10:09.736309: Saving plan best values to HA entities
2026-08-18 07:10:09.870989: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:10:09.875229: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:10:09.879418: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.24kWh, house 0.0kWh, export 0.0kWh, metric 320.12p, metric10 333.41p
2026-08-18 07:10:09.938645: Marginal costs baseline metric (no standing charge): 273.4816
2026-08-18 07:10:10.211684: Marginal energy costs matrix computed: min=24.15 max=32.55
2026-08-18 07:10:10.274492: Rate array import [{'start': 430, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 430, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:10:10.275126: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:10:10.275163: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:10:10.275183: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-18 07:10:10.275198: - For the next 48 hours there will be no solar generation.
2026-08-18 07:10:10.275212: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 07:10:10.275234: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:10:10.275251:
2026-08-18 07:10:10.328499: Plan calculation took 6.69 seconds
2026-08-18 07:10:10.328812: Inverter 0: Type SK Sunsynk
2026-08-18 07:10:10.328858: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:10:10.329081: Reserve min: 7%, battery_min: 7%
2026-08-18 07:10:10.329157: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:10:10.329505: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 257W, current battery voltage 51.2V, grid power -54W, load power 314W, PV Power 0W
2026-08-18 07:10:10.329737: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:10:10.329838: Inverter 0 scheduled charge enable is False
2026-08-18 07:10:10.329875: Inverter 0 charge windows currently []
2026-08-18 07:10:10.329906: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:10:10.330021: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:10:10.330081: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:10:10.330119: Inverter 0 scheduled discharge enable is False
2026-08-18 07:10:10.330246: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:10:10.330283: Inverter 0 discharge windows currently []
2026-08-18 07:10:10.330305: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:10:10.330323: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:10:10.330345: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:10:10.382810: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 78%, target 100%
2026-08-18 07:10:10.382951: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:10:10.383017: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:10:10.383189: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:10:10.383271: No export window planned
2026-08-18 07:10:10.383374: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:10:10.383409: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:10:10.383539: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:10:10.383693: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:10:10.383762: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:10:10.383824: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:10:10.383964: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384014: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384046: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384078: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384103: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384131: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384156: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384218: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384247: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384283: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384338: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384363: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384388: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:10:10.384413: Inverter 0 count register writes 0
2026-08-18 07:10:10.405524: Total inverter register writes now 867
2026-08-18 07:10:10.435074: Info: Completed run status Demand
2026-08-18 07:10:10.439933: Info: record_status Demand
2026-08-18 07:10:10.445164: Saved current settings to /config/predbat_config.json
2026-08-18 07:10:10.445399: Compare, best tariff: current metric 129.87p
2026-08-18 07:10:49.558847: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:10:49.559073: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:10:49.559116: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:10:49.559251: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:10:49.559288: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:10:49.559310: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:10:49.559329: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:13:03.774599: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:13:03.775054: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:13:03.775100: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:13:03.775228: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:13:03.775265: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:13:03.775286: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:13:03.775304: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:15:00.973875: --------------- PredBat - update at 2026-08-18 07:15:00+01:00 with clock skew 0 minutes, minutes now 435
2026-08-18 07:15:00.974590: Saved current settings to /config/predbat_config.json
2026-08-18 07:15:00.974718: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 07:15:00.974821: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:15:00.974945: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:15:00.993106: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:15:00.993228: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:15:00.993388: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:15:00.993900: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:15:00.994021: Predbat mode is set to Control charge & discharge
2026-08-18 07:15:01.169610: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:15:01.169789: Using load_power data to fill gaps in load_today data
2026-08-18 07:15:01.866071: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:15:01.866251: Zero load period starting at 2026-08-17T10:54:00+0100 (1221 minutes) for 189 minutes with base value 209.0
2026-08-18 07:15:01.867071: Processing 721 30-minute periods for power integration
2026-08-18 07:15:02.023067: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:15:02.023183: Car charging hold False, threshold 6.0kWh
2026-08-18 07:15:02.023220: Current data so far today: load 3.55kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:15:02.037974: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:15:02.038072: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:15:02.038679: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:15:02.038736: Standing charge is set to 46.63p
2026-08-18 07:15:02.132734: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:15:02.132932: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:15:02.133075: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:15:02.133972: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:15:02.134060: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:15:02.138527: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:15:02.138895: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:15:02.173595: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:15:02.173706: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:15:02.174735: High export rate found rates in range 99p to -99p
2026-08-18 07:15:02.197478: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:15:02.197581: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:15:02.207559: Battery level now 12.48kWh, -1hr ago 12.8kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 38.76p, rate_forward 6.87p
2026-08-18 07:15:02.207965: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:15:02.276366: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:15:02.276469: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:15:02.341181: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:15:02.370371: Today's load divergence 92.49%, in-day adjustment 92.73%, damping 0.95x, yesterday 92.68% today 92.86% blend 69.79%
2026-08-18 07:15:02.371267: Today's predicted so far 4.66kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 4.66kWh forecast extra.
2026-08-18 07:15:02.371326: Today's actual load so far 3.53kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 07:15:02.420717: Inverter 0: Type SK Sunsynk
2026-08-18 07:15:02.420811: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:15:02.421046: Reserve min: 7%, battery_min: 7%
2026-08-18 07:15:02.421123: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:15:02.421371: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 257W, current battery voltage 51.2V, grid power -54W, load power 314W, PV Power 0W
2026-08-18 07:15:02.421521: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:15:02.421607: Inverter 0 scheduled charge enable is False
2026-08-18 07:15:02.421657: Inverter 0 charge windows currently []
2026-08-18 07:15:02.421686: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:15:02.421795: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:15:02.421830: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:15:02.421890: Inverter 0 scheduled discharge enable is False
2026-08-18 07:15:02.422021: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:15:02.422058: Inverter 0 discharge windows currently []
2026-08-18 07:15:02.422081: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:15:02.422100: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:15:02.422117: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:15:02.474933: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:15:02.475033: Plan was last updated on 2026-08-18 07:10:00+01:00 and is now 5.0 minutes old
2026-08-18 07:15:02.475234: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:15:02.475275: Best export window [ ]
2026-08-18 07:15:02.476078: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:15:02.479303: Load divergence over 8.0 hours mean 399.95W, min 274.2W, max 753.0W, std dev 80.92W, divergence 10.12%
2026-08-18 07:15:02.498565: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:15:02.498712: LoadML is_calculating False
2026-08-18 07:15:02.498798: Creating pool of 12 processes to match your CPU count
2026-08-18 07:15:02.615388: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.17kWh, PV 0.0kWh
2026-08-18 07:15:02.727084: Battery has 16.58 hours left - now at 12.48kWh
2026-08-18 07:15:02.764792: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 632.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.44kWh, PV 0.0kWh
2026-08-18 07:15:02.831563: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 336.5p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.44kWh, PV 0.0kWh
2026-08-18 07:15:02.905682: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 324.18p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-18 07:15:02.905760: Saving plan best values to HA entities
2026-08-18 07:15:03.068382: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:15:03.074084: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:15:03.079667: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.0kWh, export 0.0kWh, metric 324.18p, metric10 336.5p
2026-08-18 07:15:03.155932: Marginal costs baseline metric (no standing charge): 277.5489
2026-08-18 07:15:03.447060: Marginal energy costs matrix computed: min=23.61 max=32.48
2026-08-18 07:15:03.515936: Rate array import [{'start': 435, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 435, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:15:03.516599: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 07:15:03.516652: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:15:03.516675: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-18 07:15:03.516703: - For the next 48 hours there will be no solar generation.
2026-08-18 07:15:03.516732: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 07:15:03.516782: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:15:03.516811:
2026-08-18 07:15:03.575439: Plan calculation took 1.10 seconds
2026-08-18 07:15:03.578318: No high rate period found
2026-08-18 07:15:03.622044: Import threshold used for optimisation was 8.0p
2026-08-18 07:15:03.667364: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:15:03.674404: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 78%, target 100%
2026-08-18 07:15:03.674567: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:15:03.674691: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:15:03.675073: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:15:03.675168: No export window planned
2026-08-18 07:15:03.675290: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:15:03.675326: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:15:03.675460: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:15:03.675632: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:15:03.675716: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:15:03.675784: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:15:03.675886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.675994: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676071: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676102: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676128: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676259: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676285: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676335: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676362: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676391: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676415: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:15:03.676440: Inverter 0 count register writes 0
2026-08-18 07:15:03.696831: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 07:15:03.707090: Total inverter register writes now 867
2026-08-18 07:15:03.771524: Info: Completed run status Demand
2026-08-18 07:15:03.785516: Info: record_status Demand
2026-08-18 07:15:03.800506: Saved current settings to /config/predbat_config.json
2026-08-18 07:15:03.800860: Compare, best tariff: current metric 129.87p
2026-08-18 07:15:06.401348: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 07:15:07.316063: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:15:07.316252: Zero load period starting at 2026-08-17T10:54:00+0100 (1221 minutes) for 189 minutes with base value 400.55
2026-08-18 07:15:07.317287: Processing 1345 30-minute periods for power integration
2026-08-18 07:15:07.425050: ML Component: Car charging hold False, car energy reported load False
2026-08-18 07:15:07.528747: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:15:07.630816: ML Temperature data points: 49966
2026-08-18 07:15:07.870366: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 07:15:07.905035: ML Component: Data fetch completed, load data age 59.0 days, 17198 data points
2026-08-18 07:15:07.905127: ML Component: Starting fine-tune training (2h interval), model age is 2.0537326527777777 hours
2026-08-18 07:15:07.905148: ML Component: Doing training...
2026-08-18 07:15:07.916595: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-18 07:15:07.916712: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.7 days)
2026-08-18 07:15:07.970700: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-18 07:15:07.971256: ML Predictor: Starting initial training with 30 epochs
2026-08-18 07:15:08.482403: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-18 07:15:13.382163: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-18 07:15:13.485744: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7274 std=4.5889) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1926 std=0.5271)
2026-08-18 07:15:30.435208: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0095 val_mae=0.0036 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-18 07:15:34.459207: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:15:34.459445: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:15:34.459482: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:15:34.459621: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:15:34.459683: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:15:34.459708: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:15:34.459748: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:15:41.470405: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0115 val_mae=0.0042 kWh val_bias=+0.0016 kWh (+1.7%) combined=0.0033 kWh ema_combined=0.0025 kWh
2026-08-18 07:15:54.303021: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0152 val_mae=0.0050 kWh val_bias=+0.0008 kWh (+0.8%) combined=0.0031 kWh ema_combined=0.0027 kWh
2026-08-18 07:16:07.761973: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0141 val_mae=0.0041 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-18 07:16:22.283040: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0123 val_mae=0.0032 kWh val_bias=+0.0003 kWh (+0.3%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-18 07:16:35.009085: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0097 val_mae=0.0036 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 07:16:47.502343: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0092 val_mae=0.0033 kWh val_bias=-0.0007 kWh (-0.8%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-18 07:17:00.550662: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0082 val_mae=0.0036 kWh val_bias=-0.0014 kWh (-1.6%) combined=0.0034 kWh ema_combined=0.0026 kWh
2026-08-18 07:17:13.816103: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0102 val_mae=0.0031 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0016 kWh ema_combined=0.0023 kWh
2026-08-18 07:17:28.228951: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0084 val_mae=0.0036 kWh val_bias=-0.0016 kWh (-1.8%) combined=0.0025 kWh ema_combined=0.0023 kWh
2026-08-18 07:17:41.674379: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0083 val_mae=0.0032 kWh val_bias=+0.0010 kWh (+1.1%) combined=0.0026 kWh ema_combined=0.0024 kWh
2026-08-18 07:17:41.674488: ML Predictor: Early stopping at epoch 11
2026-08-18 07:17:41.675271: ML Predictor: Restored best weights from epoch with val_mae=0.0036 kWh val_bias=-0.0009 kWh (-1.0%)
2026-08-18 07:17:41.675387: ML Predictor: Training complete, final val_mae=0.0036 kWh val_bias=-0.0009 kWh (-1.0%)
2026-08-18 07:17:42.561356: ML Predictor: AR rollout over holdout: ar_mae=0.0039 kWh ar_bias=-0.0009 kWh (-1.0%) [drift vs teacher-forced: +0.0003 kWh]
2026-08-18 07:17:42.580121: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0036 kWh
2026-08-18 07:17:42.694541: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-18 07:17:42.694646: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 07:17:43.322451: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 07:17:47.979118: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 07:17:48.028445: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7293 std=4.5874) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-18 07:17:48.107713: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 07:17:48.120383: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 07:17:48.143191: ML Predictor: Baseline (pre-finetune) val_mae=0.0033 kWh val_bias=-0.0007 kWh
2026-08-18 07:17:48.926077: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:17:48.926537: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:17:48.927071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:17:48.927297: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:17:48.927344: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:17:48.927367: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:17:48.927388: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:18:00.862885: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0102 val_mae=0.0044 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0029 kWh ema_combined=0.0029 kWh
2026-08-18 07:18:13.497185: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0097 val_mae=0.0034 kWh val_bias=+0.0007 kWh (+0.8%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-18 07:18:27.639788: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0134 val_mae=0.0036 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0021 kWh ema_combined=0.0025 kWh
2026-08-18 07:18:40.185825: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0138 val_mae=0.0033 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-18 07:18:51.888091: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0124 val_mae=0.0031 kWh val_bias=+0.0011 kWh (+1.3%) combined=0.0024 kWh ema_combined=0.0024 kWh
2026-08-18 07:19:06.729314: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0100 val_mae=0.0031 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0016 kWh ema_combined=0.0022 kWh
2026-08-18 07:19:20.658700: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0087 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0014 kWh ema_combined=0.0019 kWh
2026-08-18 07:19:33.691763: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0080 val_mae=0.0031 kWh val_bias=-0.0016 kWh (-2.1%) combined=0.0026 kWh ema_combined=0.0021 kWh
2026-08-18 07:19:46.022281: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0082 val_mae=0.0026 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-18 07:19:49.316186: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:19:49.316454: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:19:49.316505: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:19:49.316701: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:19:49.316751: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:19:49.316780: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:19:49.316886: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:19:58.738790: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0091 val_mae=0.0038 kWh val_bias=-0.0025 kWh (-3.2%) combined=0.0034 kWh ema_combined=0.0024 kWh
2026-08-18 07:20:00.523621: --------------- PredBat - update at 2026-08-18 07:20:00+01:00 with clock skew 0 minutes, minutes now 440
2026-08-18 07:20:00.524840: Saved current settings to /config/predbat_config.json
2026-08-18 07:20:00.525057: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-18 07:20:00.525289: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:20:00.525453: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:20:00.579417: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:20:00.579741: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:20:00.580101: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:20:00.580853: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:20:00.581106: Predbat mode is set to Control charge & discharge
2026-08-18 07:20:00.889101: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:20:00.889379: Using load_power data to fill gaps in load_today data
2026-08-18 07:20:02.213402: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:20:02.217129: Zero load period starting at 2026-08-17T10:54:00+0100 (1226 minutes) for 189 minutes with base value 208.975
2026-08-18 07:20:02.218029: Processing 721 30-minute periods for power integration
2026-08-18 07:20:02.510439: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:20:02.510610: Car charging hold False, threshold 6.0kWh
2026-08-18 07:20:02.510658: Current data so far today: load 3.65kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:20:02.526292: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:20:02.526793: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:20:02.527791: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:20:02.528332: Standing charge is set to 46.63p
2026-08-18 07:20:02.763328: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:20:02.764000: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:20:02.764454: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:20:02.765639: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:20:02.765782: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:20:02.771510: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:20:02.771841: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:20:02.816256: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:20:02.816461: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:20:02.817715: High export rate found rates in range 99p to -99p
2026-08-18 07:20:02.848356: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:20:02.848501: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:20:02.864336: Battery level now 12.48kWh, -1hr ago 12.8kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 38.76p, rate_forward 6.87p
2026-08-18 07:20:02.864741: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:20:02.967984: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:20:02.969977: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:20:03.083760: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:20:03.108529: Today's load divergence 93.0%, in-day adjustment 92.89%, damping 0.95x, yesterday 92.68% today 93.35% blend 69.44%
2026-08-18 07:20:03.108687: Today's predicted so far 4.67kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 4.67kWh forecast extra.
2026-08-18 07:20:03.108739: Today's actual load so far 3.61kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 07:20:03.148871: Inverter 0: Type SK Sunsynk
2026-08-18 07:20:03.148963: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:20:03.149204: Reserve min: 7%, battery_min: 7%
2026-08-18 07:20:03.149312: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:20:03.149618: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -54W, load power 320W, PV Power 0W
2026-08-18 07:20:03.149801: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:20:03.149897: Inverter 0 scheduled charge enable is False
2026-08-18 07:20:03.149937: Inverter 0 charge windows currently []
2026-08-18 07:20:03.149968: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:20:03.150103: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:20:03.150146: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:20:03.150186: Inverter 0 scheduled discharge enable is False
2026-08-18 07:20:03.150339: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:20:03.150386: Inverter 0 discharge windows currently []
2026-08-18 07:20:03.150410: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:20:03.150445: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:20:03.150465: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:20:03.250864: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:20:03.250988: Plan was last updated on 2026-08-18 07:10:00+01:00 and is now 10.0 minutes old
2026-08-18 07:20:03.251249: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:20:03.251299: Best export window [ ]
2026-08-18 07:20:03.252625: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:20:03.257307: Load divergence over 8.0 hours mean 402.16W, min 297.6W, max 693.0W, std dev 70.01W, divergence 8.7%
2026-08-18 07:20:03.288717: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:20:03.288959: LoadML is_calculating True
2026-08-18 07:20:03.289007: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 07:20:03.356109: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 606.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.35kWh, PV 0.0kWh
2026-08-18 07:20:03.571513: Battery has 16.5 hours left - now at 12.48kWh
2026-08-18 07:20:03.654378: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 632.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.62kWh, PV 0.0kWh
2026-08-18 07:20:03.848496: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 339.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.62kWh, PV 0.0kWh
2026-08-18 07:20:04.008133: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 328.14p, metric_keep 0kWh, min_soc 1.58kWh @ 08-18 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-18 07:20:04.008766: Saving plan best values to HA entities
2026-08-18 07:20:04.301312: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:20:04.324878: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:20:04.334699: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.0kWh, export 0.0kWh, metric 328.14p, metric10 339.3p
2026-08-18 07:20:04.485302: Marginal costs baseline metric (no standing charge): 281.5074
2026-08-18 07:20:05.173349: Marginal energy costs matrix computed: min=23.22 max=32.44
2026-08-18 07:20:05.333556: Rate array import [{'start': 440, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 440, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:20:05.334218: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 07:20:05.334255: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:20:05.334274: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-18 07:20:05.334289: - For the next 48 hours there will be no solar generation.
2026-08-18 07:20:05.334303: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 07:20:05.334317: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:20:05.334332:
2026-08-18 07:20:05.401882: Plan calculation took 2.15 seconds
2026-08-18 07:20:05.406526: No high rate period found
2026-08-18 07:20:05.535575: Import threshold used for optimisation was 8.0p
2026-08-18 07:20:05.612507: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:20:05.619735: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 78%, target 100%
2026-08-18 07:20:05.619892: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:20:05.620032: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:20:05.620264: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:20:05.620363: No export window planned
2026-08-18 07:20:05.620503: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:20:05.620554: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:20:05.620765: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:20:05.620960: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:20:05.621023: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:20:05.621085: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:20:05.621191: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621251: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621296: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621335: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621378: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621454: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621500: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621869: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.621925: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.622066: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.622188: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.622240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:05.622317: Inverter 0 count register writes 0
2026-08-18 07:20:05.644895: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 07:20:05.645239: Recompute is saving previous plan...
2026-08-18 07:20:05.647531: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 07:20:05.647648: Best export window [ ]
2026-08-18 07:20:05.649363: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:20:05.654428: Load divergence over 8.0 hours mean 402.16W, min 297.6W, max 693.0W, std dev 70.01W, divergence 8.7%
2026-08-18 07:20:05.683754: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:20:05.684015: LoadML is_calculating True
2026-08-18 07:20:05.684143: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 07:20:05.697950: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 07:20:05.698667: Optimise levels pass started at 2026-08-18 07:20:05
2026-08-18 07:20:05.698809: Optimise all windows, total charge 24 export 1
2026-08-18 07:20:09.193805: >> Region optimisation pass width 960 gives best_metric 309.46p, best_cost 316.1p, best_cycle 38.42kWh, best_import 23.56kWh
2026-08-18 07:20:09.325413: >> Region optimisation pass width 480 gives best_metric 309.46p, best_cost 316.1p, best_cycle 38.42kWh, best_import 23.56kWh
2026-08-18 07:20:09.713109: >> Region optimisation pass width 240 gives best_metric 309.46p, best_cost 316.1p, best_cycle 38.42kWh, best_import 23.56kWh
2026-08-18 07:20:10.664267: >> Region optimisation pass width 120 gives best_metric 309.46p, best_cost 316.1p, best_cycle 38.42kWh, best_import 23.56kWh
2026-08-18 07:20:10.664599: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 07:20:10.664694: Optimise levels pass ended at 2026-08-18 07:20:10, duration 5.0 seconds tried 50 combinations
2026-08-18 07:20:10.664831: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 309.46p, best_keep 0kWh, best_cycle 38.42kWh, best_carbon 0kg, best_import 23.56kWh
2026-08-18 07:20:10.687294: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 07:20:22.490384: Tweak plan optimisation started metric 264.23p, cost 275.19p
2026-08-18 07:20:24.944818: Tweak optimisation finished metric 264.23p, cost 275.19p, metric_keep 0kWh, cycle 36.17kWh, carbon 0kg, import 18.45kWh, changed 8 window(s)
2026-08-18 07:20:24.961994: Swap charge optimisation started metric 264.23p, cost 275.19p, min_improvement_swap 0.1p
2026-08-18 07:20:26.421150: Swap charge optimisation finished metric 264.23p, cost 275.19p
2026-08-18 07:20:26.687518: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.47p -> 261.88p, plan now metric 265.12p, cost 271.05p, cycle 36.17kWh, import 17.93kWh
2026-08-18 07:20:26.724132: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:20:26.744573: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:20:26.744945: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:20:26.745283: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:20:26.842812: Previous plan best metric is 264.29 (cost 275.27) and new plan best metric is 264.23 (cost 275.19)
2026-08-18 07:20:26.843679: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 07:20:26.843829: Plan valid is now true after recompute was False
2026-08-18 07:20:26.873306: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 604.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.15kWh, PV 0.0kWh
2026-08-18 07:20:27.028673: Battery has 16.5 hours left - now at 12.48kWh
2026-08-18 07:20:27.106606: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 630.95p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.41kWh, PV 0.0kWh
2026-08-18 07:20:27.244392: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 332.1p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.41kWh, PV 0.0kWh
2026-08-18 07:20:27.374334: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 319.91p, metric_keep 0kWh, min_soc 1.58kWh @ 08-18 23:25:00, load 30.15kWh, PV 0.0kWh
2026-08-18 07:20:27.393247: Saving plan best values to HA entities
2026-08-18 07:20:27.642260: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:20:27.649723: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:20:27.657000: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.21kWh, house 0.0kWh, export 0.0kWh, metric 319.91p, metric10 332.1p
2026-08-18 07:20:27.803679: Marginal costs baseline metric (no standing charge): 273.2743
2026-08-18 07:20:28.102958: Marginal energy costs matrix computed: min=23.22 max=32.44
2026-08-18 07:20:28.175790: Rate array import [{'start': 440, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 440, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:20:28.176615: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 07:20:28.176670: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:20:28.176693: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-18 07:20:28.176711: - For the next 48 hours there will be no solar generation.
2026-08-18 07:20:28.176814: - You will reach a minimum of 10% battery in 16 hours.
2026-08-18 07:20:28.176896: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:20:28.176930:
2026-08-18 07:20:28.230823: Plan calculation took 22.59 seconds
2026-08-18 07:20:28.231064: Inverter 0: Type SK Sunsynk
2026-08-18 07:20:28.231114: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:20:28.231319: Reserve min: 7%, battery_min: 7%
2026-08-18 07:20:28.231402: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:20:28.231732: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 260W, current battery voltage 51.2V, grid power -54W, load power 320W, PV Power 0W
2026-08-18 07:20:28.231941: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:20:28.232052: Inverter 0 scheduled charge enable is False
2026-08-18 07:20:28.232098: Inverter 0 charge windows currently []
2026-08-18 07:20:28.232132: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:20:28.232297: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:20:28.232344: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:20:28.232396: Inverter 0 scheduled discharge enable is False
2026-08-18 07:20:28.232576: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:20:28.232641: Inverter 0 discharge windows currently []
2026-08-18 07:20:28.232679: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:20:28.232710: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:20:28.232734: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:20:28.339270: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 78%, target 100%
2026-08-18 07:20:28.339460: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:20:28.339559: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:20:28.339836: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:20:28.339986: No export window planned
2026-08-18 07:20:28.340138: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:20:28.340191: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:20:28.340392: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:20:28.340606: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:20:28.340671: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:20:28.340816: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:20:28.340987: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341054: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341192: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341242: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341303: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341376: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341435: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341567: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341715: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341811: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.341930: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.342019: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.342142: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:20:28.342306: Inverter 0 count register writes 0
2026-08-18 07:20:28.404121: Total inverter register writes now 867
2026-08-18 07:20:28.456692: Info: Completed run status Demand
2026-08-18 07:20:28.465382: Info: record_status Demand
2026-08-18 07:20:28.473363: Saved current settings to /config/predbat_config.json
2026-08-18 07:20:28.473665: Compare, best tariff: current metric 129.87p
2026-08-18 07:20:31.108075: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0078 val_mae=0.0028 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 07:20:45.811030: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0079 val_mae=0.0038 kWh val_bias=+0.0030 kWh (+3.8%) combined=0.0043 kWh ema_combined=0.0029 kWh
2026-08-18 07:20:58.900841: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0071 val_mae=0.0025 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0025 kWh
2026-08-18 07:21:04.603191: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:21:04.603523: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:21:04.603703: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:21:04.604040: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:21:04.604187: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:21:04.604316: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:21:04.604439: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:21:11.967589: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0074 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.4%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-18 07:21:25.215306: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0069 val_mae=0.0025 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0012 kWh ema_combined=0.0019 kWh
2026-08-18 07:21:39.897492: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0067 val_mae=0.0034 kWh val_bias=-0.0020 kWh (-2.6%) combined=0.0030 kWh ema_combined=0.0022 kWh
2026-08-18 07:21:52.575627: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0061 val_mae=0.0022 kWh val_bias=+0.0008 kWh (+1.0%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-18 07:22:05.458263: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0061 val_mae=0.0022 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0011 kWh ema_combined=0.0019 kWh
2026-08-18 07:22:18.290025: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0057 val_mae=0.0021 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0016 kWh ema_combined=0.0018 kWh
2026-08-18 07:22:31.649598: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0054 val_mae=0.0018 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0010 kWh ema_combined=0.0016 kWh
2026-08-18 07:22:45.764292: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0009 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0016 kWh
2026-08-18 07:23:01.122280: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0057 val_mae=0.0018 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0010 kWh ema_combined=0.0014 kWh
2026-08-18 07:23:15.696696: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0053 val_mae=0.0020 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 07:23:19.040580: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:23:19.041034: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:23:19.041106: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:23:19.041448: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:23:19.041524: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:23:19.041574: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:23:19.041615: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:23:27.688278: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0054 val_mae=0.0022 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0017 kWh ema_combined=0.0015 kWh
2026-08-18 07:23:40.758631: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0052 val_mae=0.0020 kWh val_bias=-0.0008 kWh (-1.1%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-18 07:23:54.513993: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0049 val_mae=0.0017 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 07:24:07.917215: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0052 val_mae=0.0017 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-18 07:24:20.435172: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0048 val_mae=0.0018 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 07:24:33.040645: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0021 kWh val_bias=-0.0010 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0015 kWh
2026-08-18 07:24:44.837447: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0051 val_mae=0.0020 kWh val_bias=-0.0010 kWh (-1.3%) combined=0.0019 kWh ema_combined=0.0016 kWh
2026-08-18 07:24:44.838523: ML Predictor: Restored best weights from epoch with val_mae=0.0018 kWh val_bias=-0.0006 kWh (-0.8%)
2026-08-18 07:24:44.838843: ML Predictor: Training complete, final val_mae=0.0018 kWh val_bias=-0.0006 kWh (-0.8%)
2026-08-18 07:24:47.430862: ML Predictor: AR rollout over holdout: ar_mae=0.0019 kWh ar_bias=-0.0006 kWh (-0.8%) [drift vs teacher-forced: +0.0001 kWh]
2026-08-18 07:24:47.435415: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0018 kWh
2026-08-18 07:24:47.503192: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-18 07:24:47.503399: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 07:24:48.162468: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 07:24:53.378921: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 07:24:53.435066: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0596 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7256 std=4.5850) import_rate(mean=16.7043 std=8.3562) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-18 07:24:53.525878: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 07:24:53.541184: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 07:24:53.567450: ML Predictor: Baseline (pre-finetune) val_mae=0.0024 kWh val_bias=-0.0002 kWh
2026-08-18 07:25:00.878203: --------------- PredBat - update at 2026-08-18 07:25:00+01:00 with clock skew 0 minutes, minutes now 445
2026-08-18 07:25:00.879507: Saved current settings to /config/predbat_config.json
2026-08-18 07:25:01.328659: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:25:01.329107: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:25:01.351475: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:25:01.351709: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:25:01.352032: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:25:01.352820: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:25:01.353216: Predbat mode is set to Control charge & discharge
2026-08-18 07:25:01.619109: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:25:01.619234: Using load_power data to fill gaps in load_today data
2026-08-18 07:25:02.781183: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:25:02.796170: Zero load period starting at 2026-08-17T10:54:00+0100 (1231 minutes) for 189 minutes with base value 208.95
2026-08-18 07:25:02.797712: Processing 721 30-minute periods for power integration
2026-08-18 07:25:03.010069: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:25:03.010195: Car charging hold False, threshold 6.0kWh
2026-08-18 07:25:03.010237: Current data so far today: load 3.7kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:25:03.026433: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:25:03.026545: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:25:03.027174: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:25:03.027246: Standing charge is set to 46.63p
2026-08-18 07:25:03.350487: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:25:03.350804: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:25:03.351079: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:25:03.352843: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:25:03.380152: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:25:03.387827: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:25:03.388242: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:25:03.544659: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:25:03.544835: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:25:03.546699: High export rate found rates in range 99p to -99p
2026-08-18 07:25:03.585356: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:25:03.585550: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:25:03.598043: Battery level now 12.48kWh, -1hr ago 12.8kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 38.76p, rate_forward 6.87p
2026-08-18 07:25:03.598412: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:25:03.669145: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:25:03.669299: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:25:03.783431: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:25:03.826449: Today's load divergence 93.32%, in-day adjustment 92.98%, damping 0.95x, yesterday 92.68% today 93.66% blend 69.1%
2026-08-18 07:25:03.826567: Today's predicted so far 4.67kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 4.67kWh forecast extra.
2026-08-18 07:25:03.826608: Today's actual load so far 3.66kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 07:25:03.899082: Inverter 0: Type SK Sunsynk
2026-08-18 07:25:03.899203: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:25:03.900721: Reserve min: 7%, battery_min: 7%
2026-08-18 07:25:03.900869: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:25:03.901364: Inverter 0 SoC: 12.48kW 78%, current charge rate 5000W, current discharge rate 5250W, current battery power 262W, current battery voltage 51.2V, grid power -55W, load power 321W, PV Power 0W
2026-08-18 07:25:03.901606: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:25:03.901762: Inverter 0 scheduled charge enable is False
2026-08-18 07:25:03.901812: Inverter 0 charge windows currently []
2026-08-18 07:25:03.901923: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:25:03.902143: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:25:03.902242: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:25:03.902304: Inverter 0 scheduled discharge enable is False
2026-08-18 07:25:03.902469: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:25:03.902515: Inverter 0 discharge windows currently []
2026-08-18 07:25:03.902545: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:25:03.902571: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:25:03.902595: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:25:04.028025: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:25:04.028316: Plan was last updated on 2026-08-18 07:20:00+01:00 and is now 5.0 minutes old
2026-08-18 07:25:04.028787: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:25:04.028976: Best export window [ ]
2026-08-18 07:25:04.030504: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:25:04.035764: Load divergence over 8.0 hours mean 402.97W, min 292.8W, max 660.0W, std dev 65.74W, divergence 8.16%
2026-08-18 07:25:04.096121: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:25:04.101112: LoadML is_calculating True
2026-08-18 07:25:04.101305: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 07:25:04.204729: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.3kWh, PV 0.0kWh
2026-08-18 07:25:04.456704: Battery has 16.42 hours left - now at 12.48kWh
2026-08-18 07:25:04.521990: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 632.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.57kWh, PV 0.0kWh
2026-08-18 07:25:06.330757: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 336.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.57kWh, PV 0.0kWh
2026-08-18 07:25:06.737727: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 323.88p, metric_keep 0kWh, min_soc 1.56kWh @ 08-19 23:25:00, load 30.3kWh, PV 0.0kWh
2026-08-18 07:25:06.752404: Saving plan best values to HA entities
2026-08-18 07:25:07.245537: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:25:07.264138: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:25:07.277057: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.71kWh, house 0.0kWh, export 0.0kWh, metric 323.88p, metric10 336.15p
2026-08-18 07:25:07.507721: Marginal costs baseline metric (no standing charge): 277.2417
2026-08-18 07:25:07.829433: Marginal energy costs matrix computed: min=23.16 max=32.43
2026-08-18 07:25:07.942151: Rate array import [{'start': 445, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 445, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:25:07.944209: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 07:25:07.944407: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:25:07.944697: - The battery is currently at 78% and is in eco mode for the next 16 hours.
2026-08-18 07:25:07.944860: - For the next 48 hours there will be no solar generation.
2026-08-18 07:25:07.945007: - You will reach a minimum of 10% battery in 40 hours.
2026-08-18 07:25:07.945130: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:25:07.945251:
2026-08-18 07:25:08.021030: Plan calculation took 3.99 seconds
2026-08-18 07:25:08.025799: No high rate period found
2026-08-18 07:25:08.126184: Import threshold used for optimisation was 8.0p
2026-08-18 07:25:08.198311: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:25:08.215044: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 78%, target 100%
2026-08-18 07:25:08.215172: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:25:08.215232: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:25:08.215411: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:25:08.215488: No export window planned
2026-08-18 07:25:08.215584: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:25:08.215620: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:25:08.215752: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:25:08.215891: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:25:08.215988: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:25:08.216039: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:25:08.216122: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216164: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216225: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216281: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216311: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216340: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216397: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216433: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216460: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216513: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216543: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:25:08.216589: Inverter 0 count register writes 0
2026-08-18 07:25:08.245683: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 07:25:08.252888: Total inverter register writes now 867
2026-08-18 07:25:08.300754: Info: Completed run status Demand
2026-08-18 07:25:08.317901: Info: record_status Demand
2026-08-18 07:25:08.329760: Saved current settings to /config/predbat_config.json
2026-08-18 07:25:08.330067: Compare, best tariff: current metric 129.87p
2026-08-18 07:25:11.166352: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0081 val_mae=0.0033 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0021 kWh ema_combined=0.0021 kWh
2026-08-18 07:25:25.326952: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0104 val_mae=0.0039 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0030 kWh ema_combined=0.0024 kWh
2026-08-18 07:25:38.409027: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0094 val_mae=0.0031 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0019 kWh ema_combined=0.0022 kWh
2026-08-18 07:25:49.498827: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:25:49.499312: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:25:49.499496: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:25:49.499822: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:25:49.499884: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:25:49.500050: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:25:49.500146: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:25:53.232618: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0108 val_mae=0.0037 kWh val_bias=-0.0014 kWh (-2.4%) combined=0.0021 kWh ema_combined=0.0022 kWh
2026-08-18 07:26:08.086705: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0107 val_mae=0.0030 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0023 kWh ema_combined=0.0022 kWh
2026-08-18 07:26:21.758415: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0098 val_mae=0.0029 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-18 07:26:35.594205: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0100 val_mae=0.0031 kWh val_bias=+0.0007 kWh (+1.2%) combined=0.0026 kWh ema_combined=0.0023 kWh
2026-08-18 07:26:47.553911: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0085 val_mae=0.0031 kWh val_bias=+0.0017 kWh (+3.0%) combined=0.0033 kWh ema_combined=0.0026 kWh
2026-08-18 07:27:02.801620: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0087 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0017 kWh ema_combined=0.0023 kWh
2026-08-18 07:27:16.141074: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0079 val_mae=0.0026 kWh val_bias=-0.0011 kWh (-1.9%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 07:27:16.141205: ML Predictor: Early stopping at epoch 10
2026-08-18 07:27:16.141985: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-18 07:27:16.142125: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.3%)
2026-08-18 07:27:17.111430: ML Predictor: AR rollout over holdout: ar_mae=0.0029 kWh ar_bias=+0.0003 kWh (+0.6%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-18 07:27:17.115890: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0024 kWh
2026-08-18 07:27:17.192586: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-18 07:27:17.192787: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 07:27:17.745690: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 07:27:22.585131: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 07:27:22.638410: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0481) pv(mean=0.0000 std=0.0100) temp(mean=19.7166 std=4.5826) import_rate(mean=16.6662 std=8.3584) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-18 07:27:22.720480: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 07:27:22.735516: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 07:27:22.758898: ML Predictor: Baseline (pre-finetune) val_mae=0.0036 kWh val_bias=+0.0001 kWh
2026-08-18 07:27:35.979541: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0085 val_mae=0.0050 kWh val_bias=-0.0005 kWh (-1.1%) combined=0.0034 kWh ema_combined=0.0034 kWh
2026-08-18 07:27:48.348841: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0149 val_mae=0.0052 kWh val_bias=+0.0009 kWh (+2.1%) combined=0.0045 kWh ema_combined=0.0038 kWh
2026-08-18 07:27:49.632273: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:27:49.632580: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:27:49.632638: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:27:49.632866: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:27:49.632929: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:27:49.632960: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:27:49.632987: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:28:04.362342: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0141 val_mae=0.0042 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0028 kWh ema_combined=0.0035 kWh
2026-08-18 07:28:17.070956: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0117 val_mae=0.0044 kWh val_bias=-0.0020 kWh (-4.7%) combined=0.0032 kWh ema_combined=0.0034 kWh
2026-08-18 07:28:31.330121: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0106 val_mae=0.0035 kWh val_bias=-0.0011 kWh (-2.5%) combined=0.0023 kWh ema_combined=0.0031 kWh
2026-08-18 07:28:44.457716: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0096 val_mae=0.0035 kWh val_bias=-0.0004 kWh (-1.0%) combined=0.0018 kWh ema_combined=0.0027 kWh
2026-08-18 07:28:58.353343: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0095 val_mae=0.0035 kWh val_bias=-0.0007 kWh (-1.5%) combined=0.0018 kWh ema_combined=0.0024 kWh
2026-08-18 07:29:12.668630: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0086 val_mae=0.0035 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 07:29:26.692210: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0085 val_mae=0.0032 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-18 07:29:40.144043: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0088 val_mae=0.0035 kWh val_bias=-0.0014 kWh (-3.3%) combined=0.0024 kWh ema_combined=0.0022 kWh
2026-08-18 07:29:40.144144: ML Predictor: Early stopping at epoch 10
2026-08-18 07:29:40.144835: ML Predictor: Restored best weights from epoch with val_mae=0.0036 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-18 07:29:40.144960: ML Predictor: Training complete, final val_mae=0.0036 kWh val_bias=+0.0001 kWh (+0.2%)
2026-08-18 07:29:41.282003: ML Predictor: AR rollout over holdout: ar_mae=0.0063 kWh ar_bias=-0.0013 kWh (-3.1%) [drift vs teacher-forced: +0.0026 kWh]
2026-08-18 07:29:41.287240: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0036 kWh
2026-08-18 07:29:41.287453: ML Predictor: Curriculum final pass 5/5: full dataset (59.7 days)
2026-08-18 07:29:41.287590: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 07:29:41.983721: ML Predictor: Creating dataset with 1433 hours of training data, 48 hours validation
2026-08-18 07:29:47.316928: ML Predictor: Created 16909 training samples, 576 validation samples
2026-08-18 07:29:47.374613: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0480) pv(mean=0.0000 std=0.0100) temp(mean=19.7063 std=4.5786) import_rate(mean=16.6418 std=8.3721) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1943 std=0.5281)
2026-08-18 07:29:47.468940: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 07:29:47.485605: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 07:29:47.510643: ML Predictor: Baseline (pre-finetune) val_mae=0.0046 kWh val_bias=-0.0002 kWh
2026-08-18 07:30:00.146985: --------------- PredBat - update at 2026-08-18 07:30:00+01:00 with clock skew 0 minutes, minutes now 450
2026-08-18 07:30:00.147693: Saved current settings to /config/predbat_config.json
2026-08-18 07:30:00.147995: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 07:30:00.148146: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:30:00.148277: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:30:00.179168: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:30:00.179293: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:30:00.179689: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:30:00.180321: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:30:00.180974: Predbat mode is set to Control charge & discharge
2026-08-18 07:30:00.494060: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:30:00.495058: Using load_power data to fill gaps in load_today data
2026-08-18 07:30:02.004051: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:30:02.004418: Zero load period starting at 2026-08-17T10:54:00+0100 (1236 minutes) for 189 minutes with base value 208.925
2026-08-18 07:30:02.006647: Processing 721 30-minute periods for power integration
2026-08-18 07:30:02.422498: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:30:02.422792: Car charging hold False, threshold 6.0kWh
2026-08-18 07:30:02.422960: Current data so far today: load 3.6kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:30:02.459554: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:30:02.461199: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:30:02.462350: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:30:02.469071: Standing charge is set to 46.63p
2026-08-18 07:30:02.633035: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:30:02.633543: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:30:02.633902: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:30:02.635536: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:30:02.635760: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:30:02.644057: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:30:02.644581: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:30:02.717840: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:30:02.719523: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:30:02.721715: High export rate found rates in range 99p to -99p
2026-08-18 07:30:02.814857: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:30:02.829463: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:30:02.852821: Battery level now 12.48kWh, -1hr ago 12.8kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 38.76p, rate_forward 6.87p
2026-08-18 07:30:02.853529: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:30:02.961050: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:30:02.961407: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:30:03.029827: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0095 val_mae=0.0046 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0025 kWh ema_combined=0.0025 kWh
2026-08-18 07:30:03.171037: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:30:03.257364: Today's load divergence 92.1%, in-day adjustment 92.62%, damping 0.95x, yesterday 92.68% today 92.49% blend 68.75%
2026-08-18 07:30:03.257488: Today's predicted so far 4.78kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 4.78kWh forecast extra.
2026-08-18 07:30:03.257530: Today's actual load so far 3.6kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 07:30:03.346325: Inverter 0: Type SK Sunsynk
2026-08-18 07:30:03.346418: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:30:03.346712: Reserve min: 7%, battery_min: 7%
2026-08-18 07:30:03.346799: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:30:03.347064: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 1496W, current battery voltage 51.2V, grid power -62W, load power 1568W, PV Power 0W
2026-08-18 07:30:03.347210: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:30:03.347315: Inverter 0 scheduled charge enable is False
2026-08-18 07:30:03.347353: Inverter 0 charge windows currently []
2026-08-18 07:30:03.347405: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:30:03.347525: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:30:03.347563: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:30:03.347599: Inverter 0 scheduled discharge enable is False
2026-08-18 07:30:03.347732: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:30:03.347769: Inverter 0 discharge windows currently []
2026-08-18 07:30:03.347793: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:30:03.347813: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:30:03.359972: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:30:03.503718: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:30:03.504001: Plan was last updated on 2026-08-18 07:20:00+01:00 and is now 10.0 minutes old
2026-08-18 07:30:03.504396: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:30:03.504534: Best export window [ ]
2026-08-18 07:30:03.505674: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:30:03.509819: Load divergence over 8.0 hours mean 405.96W, min 281.4W, max 651.6W, std dev 61.49W, divergence 7.57%
2026-08-18 07:30:03.530789: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:30:03.531574: LoadML is_calculating True
2026-08-18 07:30:03.531739: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 07:30:03.566569: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 607.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.2kWh, PV 0.0kWh
2026-08-18 07:30:03.714049: Battery has 16.33 hours left - now at 12.32kWh
2026-08-18 07:30:03.805065: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.82p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.47kWh, PV 0.0kWh
2026-08-18 07:30:04.042882: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.47kWh, PV 0.0kWh
2026-08-18 07:30:04.159428: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 328.5p, metric_keep 0kWh, min_soc 1.5kWh @ 08-18 23:25:00, load 30.2kWh, PV 0.0kWh
2026-08-18 07:30:04.159673: Saving plan best values to HA entities
2026-08-18 07:30:04.438966: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:30:04.460950: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:30:04.476029: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.28kWh, house 0.0kWh, export 0.0kWh, metric 328.5p, metric10 341.67p
2026-08-18 07:30:04.754286: Marginal costs baseline metric (no standing charge): 281.8705
2026-08-18 07:30:05.051608: Marginal energy costs matrix computed: min=24.97 max=32.65
2026-08-18 07:30:05.249949: Rate array import [{'start': 450, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 450, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:30:05.262782: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:30:05.262977: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:30:05.263042: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-18 07:30:05.263171: - For the next 48 hours there will be no solar generation.
2026-08-18 07:30:05.263231: - You will reach a minimum of 9% battery in 15 hours.
2026-08-18 07:30:05.263322: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:30:05.263434:
2026-08-18 07:30:05.370184: Plan calculation took 1.87 seconds
2026-08-18 07:30:05.373420: No high rate period found
2026-08-18 07:30:05.452270: Import threshold used for optimisation was 8.0p
2026-08-18 07:30:05.521562: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:30:05.528817: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:30:05.529061: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:30:05.529190: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:30:05.529591: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:30:05.529768: No export window planned
2026-08-18 07:30:05.529976: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:30:05.530064: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:30:05.530292: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:30:05.530574: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:30:05.530714: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:30:05.530903: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:30:05.531073: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.531195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.531284: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.531410: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.531531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.531617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.531729: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.531921: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.532035: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.532140: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.532206: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.532270: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.532418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.532539: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:05.532616: Inverter 0 count register writes 0
2026-08-18 07:30:05.552711: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 07:30:05.552885: Recompute is saving previous plan...
2026-08-18 07:30:05.554137: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 07:30:05.554204: Best export window [ ]
2026-08-18 07:30:05.555597: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:30:05.559183: Load divergence over 8.0 hours mean 405.96W, min 281.4W, max 651.6W, std dev 61.49W, divergence 7.57%
2026-08-18 07:30:05.597982: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:30:05.598602: LoadML is_calculating True
2026-08-18 07:30:05.611951: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 07:30:05.626886: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 07:30:05.627359: Optimise levels pass started at 2026-08-18 07:30:05
2026-08-18 07:30:05.627452: Optimise all windows, total charge 24 export 1
2026-08-18 07:30:09.381088: >> Region optimisation pass width 960 gives best_metric 310.6p, best_cost 316.96p, best_cycle 38.98kWh, best_import 23.67kWh
2026-08-18 07:30:09.703202: >> Region optimisation pass width 480 gives best_metric 310.6p, best_cost 316.96p, best_cycle 38.98kWh, best_import 23.67kWh
2026-08-18 07:30:10.130225: >> Region optimisation pass width 240 gives best_metric 310.6p, best_cost 316.96p, best_cycle 38.98kWh, best_import 23.67kWh
2026-08-18 07:30:11.588510: >> Region optimisation pass width 120 gives best_metric 310.6p, best_cost 316.96p, best_cycle 38.98kWh, best_import 23.67kWh
2026-08-18 07:30:11.588796: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 07:30:11.589005: Optimise levels pass ended at 2026-08-18 07:30:11, duration 6.0 seconds tried 50 combinations
2026-08-18 07:30:11.589064: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 310.6p, best_keep 0kWh, best_cycle 38.98kWh, best_carbon 0kg, best_import 23.67kWh
2026-08-18 07:30:11.616544: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 07:30:21.678903: Tweak plan optimisation started metric 265.09p, cost 275.78p
2026-08-18 07:30:24.363303: Tweak optimisation finished metric 265.09p, cost 275.78p, metric_keep 0kWh, cycle 36.16kWh, carbon 0kg, import 18.52kWh, changed 8 window(s)
2026-08-18 07:30:24.385752: Swap charge optimisation started metric 265.09p, cost 275.78p, min_improvement_swap 0.1p
2026-08-18 07:30:25.362673: Swap charge optimisation finished metric 265.09p, cost 275.78p
2026-08-18 07:30:25.488764: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 263.1p -> 262.94p, plan now metric 265.54p, cost 273.75p, cycle 36.43kWh, import 18.27kWh
2026-08-18 07:30:25.502615: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:30:25.502977: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:30:25.503315: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:30:25.503644: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:30:25.544310: Previous plan best metric is 265.09 (cost 275.78) and new plan best metric is 265.09 (cost 275.78)
2026-08-18 07:30:25.544473: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 07:30:25.544593: Plan valid is now true after recompute was False
2026-08-18 07:30:25.573688: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.02kWh, PV 0.0kWh
2026-08-18 07:30:25.716949: Battery has 16.33 hours left - now at 12.32kWh
2026-08-18 07:30:25.778016: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.28kWh, PV 0.0kWh
2026-08-18 07:30:25.927515: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:20:00, load 31.28kWh, PV 0.0kWh
2026-08-18 07:30:26.117524: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 320.38p, metric_keep 0kWh, min_soc 1.5kWh @ 08-18 23:25:00, load 30.02kWh, PV 0.0kWh
2026-08-18 07:30:26.117628: Saving plan best values to HA entities
2026-08-18 07:30:26.395461: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:30:26.404127: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:30:26.412266: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.27kWh, house 0.0kWh, export 0.0kWh, metric 320.38p, metric10 334.59p
2026-08-18 07:30:26.528948: Marginal costs baseline metric (no standing charge): 273.7462
2026-08-18 07:30:26.829503: Marginal energy costs matrix computed: min=24.97 max=32.65
2026-08-18 07:30:26.937377: Rate array import [{'start': 450, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 450, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:30:26.938693: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:30:26.938943: - Import rates are very expensive (33.8p) for the next 16 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:30:26.939081: - The battery is currently at 77% and is in eco mode for the next 16 hours.
2026-08-18 07:30:26.939219: - For the next 48 hours there will be no solar generation.
2026-08-18 07:30:26.939354: - You will reach a minimum of 9% battery in 15 hours.
2026-08-18 07:30:26.939475: - Your next charge slot will be in 16 hours where import rates will be cheap (8.0p).
2026-08-18 07:30:26.939611:
2026-08-18 07:30:27.019430: Plan calculation took 21.47 seconds
2026-08-18 07:30:27.019665: Inverter 0: Type SK Sunsynk
2026-08-18 07:30:27.019727: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:30:27.019979: Reserve min: 7%, battery_min: 7%
2026-08-18 07:30:27.020665: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:30:27.021009: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 287W, current battery voltage 51.2V, grid power -62W, load power 348W, PV Power 0W
2026-08-18 07:30:27.021192: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:30:27.021298: Inverter 0 scheduled charge enable is False
2026-08-18 07:30:27.021343: Inverter 0 charge windows currently []
2026-08-18 07:30:27.021377: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:30:27.021528: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:30:27.021684: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:30:27.021810: Inverter 0 scheduled discharge enable is False
2026-08-18 07:30:27.022105: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:30:27.022261: Inverter 0 discharge windows currently []
2026-08-18 07:30:27.022371: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:30:27.022472: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:30:27.022572: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:30:27.162570: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:30:27.162818: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:30:27.162938: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:30:27.163270: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:30:27.163403: No export window planned
2026-08-18 07:30:27.163663: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:30:27.163715: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:30:27.164006: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:30:27.164274: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:30:27.164375: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:30:27.164502: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:30:27.164711: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.164801: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.164917: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165009: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165100: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165223: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165336: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165609: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165695: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165778: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165861: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.165993: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:30:27.166071: Inverter 0 count register writes 0
2026-08-18 07:30:27.224579: Total inverter register writes now 867
2026-08-18 07:30:27.282730: Info: Completed run status Demand
2026-08-18 07:30:27.289765: Info: record_status Demand
2026-08-18 07:30:27.305080: Saved current settings to /config/predbat_config.json
2026-08-18 07:30:27.305334: Compare, best tariff: current metric 129.87p
2026-08-18 07:30:35.313097: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0133 val_mae=0.0048 kWh val_bias=-0.0023 kWh (-5.4%) combined=0.0040 kWh ema_combined=0.0030 kWh
2026-08-18 07:30:49.081644: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0117 val_mae=0.0047 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0028 kWh ema_combined=0.0029 kWh
2026-08-18 07:31:03.926566: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0125 val_mae=0.0044 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-18 07:31:04.511428: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:31:04.512899: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:31:04.513064: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:31:04.514514: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:31:04.518269: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:31:04.521306: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:31:04.521475: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:31:18.460383: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0105 val_mae=0.0042 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-18 07:31:31.530720: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0106 val_mae=0.0040 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0026 kWh ema_combined=0.0027 kWh
2026-08-18 07:31:45.598855: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0116 val_mae=0.0040 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0024 kWh ema_combined=0.0026 kWh
2026-08-18 07:31:59.494948: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0106 val_mae=0.0039 kWh val_bias=+0.0005 kWh (+1.1%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-18 07:32:14.329037: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0092 val_mae=0.0037 kWh val_bias=-0.0008 kWh (-1.9%) combined=0.0026 kWh ema_combined=0.0026 kWh
2026-08-18 07:32:27.990599: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0093 val_mae=0.0044 kWh val_bias=-0.0008 kWh (-1.9%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-18 07:32:40.719346: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0090 val_mae=0.0039 kWh val_bias=+0.0006 kWh (+1.3%) combined=0.0028 kWh ema_combined=0.0026 kWh
2026-08-18 07:32:40.719592: ML Predictor: Early stopping at epoch 11
2026-08-18 07:32:40.720652: ML Predictor: Restored best weights from epoch with val_mae=0.0046 kWh val_bias=-0.0000 kWh (-0.1%)
2026-08-18 07:32:40.720885: ML Predictor: Training complete, final val_mae=0.0046 kWh val_bias=-0.0000 kWh (-0.1%)
2026-08-18 07:32:41.733205: ML Predictor: AR rollout over holdout: ar_mae=0.0128 kWh ar_bias=+0.0022 kWh (+5.1%) [drift vs teacher-forced: +0.0082 kWh]
2026-08-18 07:32:41.745089: ML Predictor: Curriculum training complete, final val_mae=0.0046 kWh
2026-08-18 07:32:41.755620: ML Component: Training successful, val_mae=0.0046 kWh
2026-08-18 07:32:41.893359: ML Predictor: Model saved to /config/predbat_ml_model.npz
2026-08-18 07:32:41.897813: ML Component: Generating predictions load data age 59.0 days, 17198 data points
2026-08-18 07:32:42.038463: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.02 max_dow {0: 0.08858888895147377, 1: 0.09250277776271104, 2: 0.10743437459506094, 3: 0.10012812538649886, 4: 0.1354906253574416, 5: 0.105466667087045, 6: 0.1023027771184014}
2026-08-18 07:32:42.461594: ML Component: Generated 576 predictions (total 26.11 kWh over 48h)
2026-08-18 07:32:42.500181: ML Component: Prediction cycle completed
2026-08-18 07:32:42.619505: ML Component: Saved 17198 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 07:33:18.895965: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:33:18.896246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:33:18.896331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:33:18.896500: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:33:18.896537: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:33:18.896558: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:33:18.896599: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:35:00.093496: --------------- PredBat - update at 2026-08-18 07:35:00+01:00 with clock skew 0 minutes, minutes now 455
2026-08-18 07:35:00.094337: Saved current settings to /config/predbat_config.json
2026-08-18 07:35:00.094460: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 07:35:00.094569: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:35:00.094674: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:35:00.113045: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:35:00.113149: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:35:00.113278: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:35:00.113700: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:35:00.113793: Predbat mode is set to Control charge & discharge
2026-08-18 07:35:00.280095: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:35:00.280215: Using load_power data to fill gaps in load_today data
2026-08-18 07:35:01.075263: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:35:01.075463: Zero load period starting at 2026-08-17T10:54:00+0100 (1241 minutes) for 189 minutes with base value 208.9
2026-08-18 07:35:01.076546: Processing 721 30-minute periods for power integration
2026-08-18 07:35:01.279057: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:35:01.279155: Car charging hold False, threshold 6.0kWh
2026-08-18 07:35:01.279189: Current data so far today: load 3.6kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:35:01.293992: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:35:01.294982: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:35:01.295584: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:35:01.296054: Standing charge is set to 46.63p
2026-08-18 07:35:01.393427: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:35:01.393683: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:35:01.393867: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:35:01.394936: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:35:01.395040: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:35:01.400392: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:35:01.400641: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:35:01.444620: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:35:01.444842: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:35:01.446026: High export rate found rates in range 99p to -99p
2026-08-18 07:35:01.470043: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:35:01.470155: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:35:01.481867: Battery level now 12.32kWh, -1hr ago 12.8kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 37.66p, rate_forward 6.87p
2026-08-18 07:35:01.482234: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:35:01.527354: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:35:01.527478: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:35:01.611251: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:35:01.647073: Today's load divergence 91.7%, in-day adjustment 92.5%, damping 0.95x, yesterday 92.68% today 92.12% blend 68.4%
2026-08-18 07:35:01.647204: Today's predicted so far 4.86kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 4.86kWh forecast extra.
2026-08-18 07:35:01.647255: Today's actual load so far 3.62kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 07:35:01.683247: Inverter 0: Type SK Sunsynk
2026-08-18 07:35:01.683326: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:35:01.683494: Reserve min: 7%, battery_min: 7%
2026-08-18 07:35:01.683562: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:35:01.683820: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 307W, current battery voltage 51.2V, grid power -55W, load power 366W, PV Power 0W
2026-08-18 07:35:01.684002: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:35:01.684091: Inverter 0 scheduled charge enable is False
2026-08-18 07:35:01.684119: Inverter 0 charge windows currently []
2026-08-18 07:35:01.684145: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:35:01.684247: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:35:01.684282: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:35:01.684318: Inverter 0 scheduled discharge enable is False
2026-08-18 07:35:01.684437: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:35:01.684473: Inverter 0 discharge windows currently []
2026-08-18 07:35:01.684495: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:35:01.684517: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:35:01.684535: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:35:01.743814: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:35:01.744004: Plan was last updated on 2026-08-18 07:30:00+01:00 and is now 5.0 minutes old
2026-08-18 07:35:01.744334: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:35:01.744395: Best export window [ ]
2026-08-18 07:35:01.745227: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:35:01.748730: Load divergence over 8.0 hours mean 408.88W, min 274.8W, max 675.0W, std dev 66.73W, divergence 8.16%
2026-08-18 07:35:01.768732: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:35:01.768839: LoadML is_calculating False
2026-08-18 07:35:01.768902: Creating pool of 12 processes to match your CPU count
2026-08-18 07:35:01.893194: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 606.04p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.08kWh, PV 0.0kWh
2026-08-18 07:35:02.017245: Battery has 16.33 hours left - now at 12.32kWh
2026-08-18 07:35:02.063317: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 632.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 07:35:02.141627: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 336.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 07:35:02.221334: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 324.14p, metric_keep 0kWh, min_soc 1.55kWh @ 08-18 23:25:00, load 30.08kWh, PV 0.0kWh
2026-08-18 07:35:02.221415: Saving plan best values to HA entities
2026-08-18 07:35:02.385754: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:35:02.390732: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:35:02.396441: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.0kWh, export 0.0kWh, metric 324.14p, metric10 336.54p
2026-08-18 07:35:02.469985: Marginal costs baseline metric (no standing charge): 277.5077
2026-08-18 07:35:02.754894: Marginal energy costs matrix computed: min=23.83 max=32.51
2026-08-18 07:35:02.833872: Rate array import [{'start': 455, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 455, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:35:02.834635: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:35:02.834700: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:35:02.834746: - The battery is currently at 77% and is in eco mode for the next 15 hours.
2026-08-18 07:35:02.834766: - For the next 48 hours there will be no solar generation.
2026-08-18 07:35:02.834784: - You will reach a minimum of 10% battery in 15 hours.
2026-08-18 07:35:02.834803: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 07:35:02.834821:
2026-08-18 07:35:02.894546: Plan calculation took 1.15 seconds
2026-08-18 07:35:02.898633: No high rate period found
2026-08-18 07:35:02.954684: Import threshold used for optimisation was 8.0p
2026-08-18 07:35:03.015410: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:35:03.020915: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:35:03.021080: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:35:03.021186: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:35:03.021392: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:35:03.021464: No export window planned
2026-08-18 07:35:03.021565: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:35:03.021594: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:35:03.021721: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:35:03.021867: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:35:03.021918: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:35:03.021969: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:35:03.022052: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022079: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022103: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022125: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022145: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022165: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022190: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022239: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022308: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:35:03.022387: Inverter 0 count register writes 0
2026-08-18 07:35:03.037602: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 07:35:03.042597: Total inverter register writes now 867
2026-08-18 07:35:03.070613: Info: Completed run status Demand
2026-08-18 07:35:03.077912: Info: record_status Demand
2026-08-18 07:35:03.085852: Saved current settings to /config/predbat_config.json
2026-08-18 07:35:03.086253: Compare, best tariff: current metric 129.87p
2026-08-18 07:35:34.188753: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:35:34.188991: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:35:34.189067: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:35:34.189292: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:35:34.189336: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:35:34.189365: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:35:34.189395: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:37:34.397032: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:37:34.397310: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:37:34.397361: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:37:34.397599: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:37:34.397655: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:37:34.397678: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:37:34.397704: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:39:34.615546: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:39:34.615884: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:39:34.615991: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:39:34.616168: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:39:34.616209: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:39:34.616232: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:39:34.616250: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:40:00.726051: --------------- PredBat - update at 2026-08-18 07:40:00+01:00 with clock skew 0 minutes, minutes now 460
2026-08-18 07:40:00.726733: Saved current settings to /config/predbat_config.json
2026-08-18 07:40:00.726864: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 07:40:00.726942: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:40:00.727039: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:40:00.746350: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:40:00.746475: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:40:00.746654: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:40:00.747177: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:40:00.747294: Predbat mode is set to Control charge & discharge
2026-08-18 07:40:00.930903: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:40:00.931496: Using load_power data to fill gaps in load_today data
2026-08-18 07:40:01.743345: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:40:01.743504: Zero load period starting at 2026-08-17T10:54:00+0100 (1246 minutes) for 189 minutes with base value 208.875
2026-08-18 07:40:01.744352: Processing 721 30-minute periods for power integration
2026-08-18 07:40:01.892877: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:40:01.892989: Car charging hold False, threshold 6.0kWh
2026-08-18 07:40:01.893024: Current data so far today: load 3.72kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:40:01.905239: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:40:01.905338: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:40:01.906005: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:40:01.906082: Standing charge is set to 46.63p
2026-08-18 07:40:01.996714: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:40:01.996931: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:40:01.997190: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:40:01.998143: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:40:01.998250: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:40:02.002494: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:40:02.002896: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:40:02.038341: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:40:02.038443: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:40:02.039495: High export rate found rates in range 99p to -99p
2026-08-18 07:40:02.062187: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:40:02.062286: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:40:02.073500: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 37.66p, rate_forward 6.87p
2026-08-18 07:40:02.074091: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:40:02.119043: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:40:02.119194: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:40:02.199619: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:40:02.230613: Today's load divergence 92.44%, in-day adjustment 92.72%, damping 0.95x, yesterday 92.68% today 92.82% blend 68.06%
2026-08-18 07:40:02.230706: Today's predicted so far 4.85kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 4.85kWh forecast extra.
2026-08-18 07:40:02.231008: Today's actual load so far 3.71kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 07:40:02.267355: Inverter 0: Type SK Sunsynk
2026-08-18 07:40:02.267440: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:40:02.267614: Reserve min: 7%, battery_min: 7%
2026-08-18 07:40:02.267689: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:40:02.268056: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 336W, current battery voltage 51.2V, grid power -54W, load power 395W, PV Power 0W
2026-08-18 07:40:02.268206: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:40:02.268299: Inverter 0 scheduled charge enable is False
2026-08-18 07:40:02.268329: Inverter 0 charge windows currently []
2026-08-18 07:40:02.268352: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:40:02.268443: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:40:02.268472: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:40:02.268500: Inverter 0 scheduled discharge enable is False
2026-08-18 07:40:02.268601: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:40:02.268630: Inverter 0 discharge windows currently []
2026-08-18 07:40:02.268648: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:40:02.268662: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:40:02.268676: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:40:02.316640: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:40:02.316727: Plan was last updated on 2026-08-18 07:30:00+01:00 and is now 10.0 minutes old
2026-08-18 07:40:02.316932: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:40:02.316968: Best export window [ ]
2026-08-18 07:40:02.317560: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:40:02.320072: Load divergence over 8.0 hours mean 410.52W, min 287.4W, max 712.8W, std dev 67.9W, divergence 8.27%
2026-08-18 07:40:02.335334: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:40:02.335422: LoadML is_calculating False
2026-08-18 07:40:02.335471: Creating pool of 12 processes to match your CPU count
2026-08-18 07:40:02.435015: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 606.67p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.29kWh, PV 0.0kWh
2026-08-18 07:40:02.550716: Battery has 16.25 hours left - now at 12.32kWh
2026-08-18 07:40:02.597530: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 632.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.56kWh, PV 0.0kWh
2026-08-18 07:40:02.676664: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 339.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.56kWh, PV 0.0kWh
2026-08-18 07:40:02.748526: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 328.27p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 30.29kWh, PV 0.0kWh
2026-08-18 07:40:02.748603: Saving plan best values to HA entities
2026-08-18 07:40:02.886112: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:40:02.891178: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:40:02.896888: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.25kWh, house 0.0kWh, export 0.0kWh, metric 328.27p, metric10 339.73p
2026-08-18 07:40:02.973329: Marginal costs baseline metric (no standing charge): 281.6375
2026-08-18 07:40:03.226389: Marginal energy costs matrix computed: min=23.6 max=32.48
2026-08-18 07:40:03.300805: Rate array import [{'start': 460, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 460, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:40:03.301685: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:40:03.301744: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:40:03.301786: - The battery is currently at 77% and is in eco mode for the next 15 hours.
2026-08-18 07:40:03.301839: - For the next 48 hours there will be no solar generation.
2026-08-18 07:40:03.301883: - You will reach a minimum of 10% battery in 15 hours.
2026-08-18 07:40:03.301907: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 07:40:03.301932:
2026-08-18 07:40:03.358634: Plan calculation took 1.04 seconds
2026-08-18 07:40:03.362212: No high rate period found
2026-08-18 07:40:03.410664: Import threshold used for optimisation was 8.0p
2026-08-18 07:40:03.454405: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:40:03.459789: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:40:03.459946: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:40:03.460053: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:40:03.460259: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:40:03.460332: No export window planned
2026-08-18 07:40:03.460427: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:40:03.460455: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:40:03.460560: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:40:03.460702: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:40:03.460750: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:40:03.460821: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:40:03.460906: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.460938: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.460962: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.460983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461002: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461022: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461059: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461108: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461137: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461158: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461182: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461202: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461221: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:03.461257: Inverter 0 count register writes 0
2026-08-18 07:40:03.475556: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 07:40:03.475735: Recompute is saving previous plan...
2026-08-18 07:40:03.476665: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 07:40:03.476717: Best export window [ ]
2026-08-18 07:40:03.477469: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:40:03.480500: Load divergence over 8.0 hours mean 410.52W, min 287.4W, max 712.8W, std dev 67.9W, divergence 8.27%
2026-08-18 07:40:03.496699: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:40:03.496799: LoadML is_calculating False
2026-08-18 07:40:03.496877: Creating pool of 12 processes to match your CPU count
2026-08-18 07:40:03.577064: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 07:40:03.577898: Optimise levels pass started at 2026-08-18 07:40:03
2026-08-18 07:40:03.577948: Optimise all windows, total charge 24 export 1
2026-08-18 07:40:04.074127: >> Region optimisation pass width 960 gives best_metric 310.52p, best_cost 316.2p, best_cycle 38.43kWh, best_import 23.57kWh
2026-08-18 07:40:04.184333: >> Region optimisation pass width 480 gives best_metric 310.52p, best_cost 316.2p, best_cycle 38.43kWh, best_import 23.57kWh
2026-08-18 07:40:04.457847: >> Region optimisation pass width 240 gives best_metric 310.52p, best_cost 316.2p, best_cycle 38.43kWh, best_import 23.57kWh
2026-08-18 07:40:04.977244: >> Region optimisation pass width 120 gives best_metric 310.52p, best_cost 316.2p, best_cycle 38.43kWh, best_import 23.57kWh
2026-08-18 07:40:04.977424: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 07:40:04.977481: Optimise levels pass ended at 2026-08-18 07:40:04, duration 1.4 seconds tried 53 combinations
2026-08-18 07:40:04.977539: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 310.52p, best_keep 0kWh, best_cycle 38.43kWh, best_carbon 0kg, best_import 23.57kWh
2026-08-18 07:40:04.996096: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 07:40:07.613959: Tweak plan optimisation started metric 264.39p, cost 275.32p
2026-08-18 07:40:07.939636: Tweak optimisation finished metric 264.39p, cost 275.32p, metric_keep 0kWh, cycle 36.05kWh, carbon 0kg, import 18.46kWh, changed 8 window(s)
2026-08-18 07:40:07.959749: Swap charge optimisation started metric 264.39p, cost 275.32p, min_improvement_swap 0.1p
2026-08-18 07:40:08.717429: Swap charge optimisation finished metric 264.39p, cost 275.32p
2026-08-18 07:40:08.852653: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 262.6p -> 262.02p, plan now metric 265.3p, cost 271.16p, cycle 36.05kWh, import 17.94kWh
2026-08-18 07:40:08.863083: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:40:08.863397: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:40:08.863622: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:40:08.863826: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:40:08.900655: Previous plan best metric is 264.46 (cost 275.39) and new plan best metric is 264.39 (cost 275.32)
2026-08-18 07:40:08.900892: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 07:40:08.901035: Plan valid is now true after recompute was False
2026-08-18 07:40:08.931461: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 605.08p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.09kWh, PV 0.0kWh
2026-08-18 07:40:09.035238: Battery has 16.25 hours left - now at 12.32kWh
2026-08-18 07:40:09.074402: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 631.3p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.35kWh, PV 0.0kWh
2026-08-18 07:40:09.143182: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 332.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.35kWh, PV 0.0kWh
2026-08-18 07:40:09.235771: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 320.02p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 30.09kWh, PV 0.0kWh
2026-08-18 07:40:09.235874: Saving plan best values to HA entities
2026-08-18 07:40:09.377667: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:40:09.382545: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:40:09.388600: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.22kWh, house 0.0kWh, export 0.0kWh, metric 320.02p, metric10 332.51p
2026-08-18 07:40:09.461218: Marginal costs baseline metric (no standing charge): 273.3837
2026-08-18 07:40:09.750854: Marginal energy costs matrix computed: min=23.6 max=32.48
2026-08-18 07:40:09.820031: Rate array import [{'start': 460, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 460, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:40:09.820611: - Your estimated bill for today is £1.51 and tomorrow is £1.93
2026-08-18 07:40:09.820670: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:40:09.820688: - The battery is currently at 77% and is in eco mode for the next 15 hours.
2026-08-18 07:40:09.820703: - For the next 48 hours there will be no solar generation.
2026-08-18 07:40:09.820717: - You will reach a minimum of 10% battery in 15 hours.
2026-08-18 07:40:09.820737: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 07:40:09.820752:
2026-08-18 07:40:09.873564: Plan calculation took 6.40 seconds
2026-08-18 07:40:09.873896: Inverter 0: Type SK Sunsynk
2026-08-18 07:40:09.873943: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:40:09.874154: Reserve min: 7%, battery_min: 7%
2026-08-18 07:40:09.874229: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:40:09.874563: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 336W, current battery voltage 51.2V, grid power -54W, load power 395W, PV Power 0W
2026-08-18 07:40:09.874783: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:40:09.874902: Inverter 0 scheduled charge enable is False
2026-08-18 07:40:09.874932: Inverter 0 charge windows currently []
2026-08-18 07:40:09.874962: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:40:09.875077: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:40:09.875117: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:40:09.875177: Inverter 0 scheduled discharge enable is False
2026-08-18 07:40:09.875307: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:40:09.875346: Inverter 0 discharge windows currently []
2026-08-18 07:40:09.875368: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:40:09.875390: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:40:09.875407: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:40:09.928692: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:40:09.928852: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:40:09.928934: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:40:09.929107: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:40:09.929190: No export window planned
2026-08-18 07:40:09.929295: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:40:09.929330: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:40:09.929464: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:40:09.929625: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:40:09.929677: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:40:09.929740: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:40:09.929848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.929892: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.929925: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.929956: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.929982: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930011: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930036: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930095: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930147: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930195: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930226: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930251: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:40:09.930272: Inverter 0 count register writes 0
2026-08-18 07:40:09.954305: Total inverter register writes now 867
2026-08-18 07:40:09.988411: Info: Completed run status Demand
2026-08-18 07:40:09.994450: Info: record_status Demand
2026-08-18 07:40:10.001296: Saved current settings to /config/predbat_config.json
2026-08-18 07:40:10.001723: Compare, best tariff: current metric 129.87p
2026-08-18 07:40:49.112401: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:40:49.112654: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:40:49.112695: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:40:49.112840: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:40:49.112879: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:40:49.112901: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:40:49.112919: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:42:49.333130: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:42:49.333358: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:42:49.333400: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:42:49.333532: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:42:49.333570: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:42:49.333592: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:42:49.333613: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:44:49.541049: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:44:49.541369: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:44:49.541423: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:44:49.541600: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:44:49.541643: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:44:49.541667: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:44:49.541707: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:45:00.625269: --------------- PredBat - update at 2026-08-18 07:45:00+01:00 with clock skew 0 minutes, minutes now 465
2026-08-18 07:45:00.626003: Saved current settings to /config/predbat_config.json
2026-08-18 07:45:00.626149: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 07:45:00.626211: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:45:00.626330: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:45:00.643788: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:45:00.643940: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:45:00.644119: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:45:00.644653: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:45:00.644770: Predbat mode is set to Control charge & discharge
2026-08-18 07:45:00.822118: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:45:00.822246: Using load_power data to fill gaps in load_today data
2026-08-18 07:45:01.605461: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:45:01.605834: Zero load period starting at 2026-08-17T10:54:00+0100 (1251 minutes) for 189 minutes with base value 208.85
2026-08-18 07:45:01.606688: Processing 721 30-minute periods for power integration
2026-08-18 07:45:01.794703: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:45:01.794847: Car charging hold False, threshold 6.0kWh
2026-08-18 07:45:01.794936: Current data so far today: load 3.75kWh, import 10.0kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:45:01.809391: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:45:01.809470: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:45:01.810189: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:45:01.810259: Standing charge is set to 46.63p
2026-08-18 07:45:01.911254: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:45:01.911488: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:45:01.911671: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:45:01.913057: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:45:01.913172: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:45:01.918344: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:45:01.918737: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:45:01.962956: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:45:01.963066: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:45:01.964321: High export rate found rates in range 99p to -99p
2026-08-18 07:45:01.992350: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:45:01.992949: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:45:02.003176: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 37.66p, rate_forward 6.87p
2026-08-18 07:45:02.003533: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:45:02.046331: Today's energy total net 10.0kWh, import 10.0kWh, export 0.0kWh, cost 127.6p, import 80.97p, export 0.0p, carbon 0.0kg
2026-08-18 07:45:02.046457: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:45:02.110131: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:45:02.135128: Today's load divergence 92.59%, in-day adjustment 92.77%, damping 0.95x, yesterday 92.68% today 92.96% blend 67.71%
2026-08-18 07:45:02.135209: Today's predicted so far 4.84kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 4.84kWh forecast extra.
2026-08-18 07:45:02.135235: Today's actual load so far 3.72kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 07:45:02.166021: Inverter 0: Type SK Sunsynk
2026-08-18 07:45:02.166100: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:45:02.166270: Reserve min: 7%, battery_min: 7%
2026-08-18 07:45:02.166337: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:45:02.166590: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 331W, current battery voltage 51.2V, grid power -54W, load power 390W, PV Power 0W
2026-08-18 07:45:02.166756: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:45:02.166843: Inverter 0 scheduled charge enable is False
2026-08-18 07:45:02.166878: Inverter 0 charge windows currently []
2026-08-18 07:45:02.166904: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:45:02.167042: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:45:02.167079: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:45:02.167115: Inverter 0 scheduled discharge enable is False
2026-08-18 07:45:02.167235: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:45:02.167271: Inverter 0 discharge windows currently []
2026-08-18 07:45:02.167293: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:45:02.167313: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:45:02.167338: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:45:02.221397: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:45:02.221497: Plan was last updated on 2026-08-18 07:40:00+01:00 and is now 5.0 minutes old
2026-08-18 07:45:02.221698: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:45:02.221739: Best export window [ ]
2026-08-18 07:45:02.222585: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:45:02.225793: Load divergence over 8.0 hours mean 411.96W, min 300.0W, max 753.0W, std dev 79.27W, divergence 9.62%
2026-08-18 07:45:02.241581: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:45:02.241680: LoadML is_calculating False
2026-08-18 07:45:02.241753: Creating pool of 12 processes to match your CPU count
2026-08-18 07:45:02.343849: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 605.84p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.2kWh, PV 0.0kWh
2026-08-18 07:45:02.447455: Battery has 16.08 hours left - now at 12.32kWh
2026-08-18 07:45:02.491062: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 631.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.46kWh, PV 0.0kWh
2026-08-18 07:45:02.561027: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 335.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.46kWh, PV 0.0kWh
2026-08-18 07:45:02.636060: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 323.98p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.2kWh, PV 0.0kWh
2026-08-18 07:45:02.636147: Saving plan best values to HA entities
2026-08-18 07:45:02.787534: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:45:02.792545: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:45:02.797653: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.72kWh, house 0.0kWh, export 0.0kWh, metric 323.98p, metric10 335.46p
2026-08-18 07:45:02.872484: Marginal costs baseline metric (no standing charge): 277.3421
2026-08-18 07:45:03.147247: Marginal energy costs matrix computed: min=23.06 max=32.41
2026-08-18 07:45:03.229095: Rate array import [{'start': 465, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 465, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:45:03.229864: - Your estimated bill for today is £1.52 and tomorrow is £1.93
2026-08-18 07:45:03.229908: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:45:03.229951: - The battery is currently at 77% and is in eco mode for the next 15 hours.
2026-08-18 07:45:03.229970: - For the next 48 hours there will be no solar generation.
2026-08-18 07:45:03.229988: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 07:45:03.230005: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 07:45:03.230028:
2026-08-18 07:45:03.289479: Plan calculation took 1.07 seconds
2026-08-18 07:45:03.292963: No high rate period found
2026-08-18 07:45:03.341306: Import threshold used for optimisation was 8.0p
2026-08-18 07:45:03.388554: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:45:03.394318: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:45:03.394442: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:45:03.394542: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:45:03.394807: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:45:03.394934: No export window planned
2026-08-18 07:45:03.395072: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:45:03.395111: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:45:03.395248: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:45:03.395422: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:45:03.395482: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:45:03.395551: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:45:03.395644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.395683: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.395714: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.395739: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.395765: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.395791: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.395837: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.395960: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.396017: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.396047: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.396079: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.396129: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.396166: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.396192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:45:03.396221: Inverter 0 count register writes 0
2026-08-18 07:45:03.414742: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 07:45:03.419748: Total inverter register writes now 867
2026-08-18 07:45:03.450987: Info: Completed run status Demand
2026-08-18 07:45:03.458218: Info: record_status Demand
2026-08-18 07:45:03.465936: Saved current settings to /config/predbat_config.json
2026-08-18 07:45:03.466272: Compare, best tariff: current metric 129.87p
2026-08-18 07:45:34.564806: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:45:34.565107: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:45:34.565162: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:45:34.565345: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:45:34.565393: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:45:34.565421: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:45:34.565465: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:47:48.790712: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:47:48.790937: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:47:48.791001: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:47:48.791164: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:47:48.791203: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:47:48.791224: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:47:48.791246: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:49:49.010515: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:49:49.010739: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:49:49.010773: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:49:49.010917: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:49:49.010957: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:49:49.010978: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:49:49.011026: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:50:00.096450: --------------- PredBat - update at 2026-08-18 07:50:00+01:00 with clock skew 0 minutes, minutes now 470
2026-08-18 07:50:00.097094: Saved current settings to /config/predbat_config.json
2026-08-18 07:50:00.097214: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 07:50:00.097294: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:50:00.097390: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:50:00.117739: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:50:00.117870: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:50:00.118030: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:50:00.118448: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:50:00.118544: Predbat mode is set to Control charge & discharge
2026-08-18 07:50:00.298183: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:50:00.298306: Using load_power data to fill gaps in load_today data
2026-08-18 07:50:01.005349: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:50:01.005513: Zero load period starting at 2026-08-17T10:54:00+0100 (1256 minutes) for 189 minutes with base value 208.825
2026-08-18 07:50:01.006314: Processing 721 30-minute periods for power integration
2026-08-18 07:50:01.160054: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:50:01.160173: Car charging hold False, threshold 6.0kWh
2026-08-18 07:50:01.160216: Current data so far today: load 3.7kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:50:01.172244: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:50:01.172322: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:50:01.172911: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:50:01.172968: Standing charge is set to 46.63p
2026-08-18 07:50:01.264350: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:50:01.264554: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:50:01.264688: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:50:01.265532: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:50:01.265616: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:50:01.269825: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:50:01.270141: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:50:01.305141: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:50:01.305239: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:50:01.306270: High export rate found rates in range 99p to -99p
2026-08-18 07:50:01.328640: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:50:01.328746: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:50:01.339113: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 37.66p, rate_forward 6.87p
2026-08-18 07:50:01.339477: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 1.55p, import 1.55p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:50:01.381944: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 07:50:01.382087: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:50:01.449428: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:50:01.477022: Today's load divergence 92.12%, in-day adjustment 92.62%, damping 0.95x, yesterday 92.68% today 92.51% blend 67.36%
2026-08-18 07:50:01.477105: Today's predicted so far 4.86kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 4.86kWh forecast extra.
2026-08-18 07:50:01.477131: Today's actual load so far 3.68kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 07:50:01.509071: Inverter 0: Type SK Sunsynk
2026-08-18 07:50:01.509166: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:50:01.509424: Reserve min: 7%, battery_min: 7%
2026-08-18 07:50:01.509545: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:50:01.509871: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 330W, current battery voltage 51.2V, grid power -55W, load power 393W, PV Power 0W
2026-08-18 07:50:01.510092: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:50:01.510218: Inverter 0 scheduled charge enable is False
2026-08-18 07:50:01.510278: Inverter 0 charge windows currently []
2026-08-18 07:50:01.510329: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:50:01.510494: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:50:01.510544: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:50:01.510608: Inverter 0 scheduled discharge enable is False
2026-08-18 07:50:01.510792: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:50:01.510835: Inverter 0 discharge windows currently []
2026-08-18 07:50:01.510863: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:50:01.510906: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:50:01.510941: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:50:01.565725: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:50:01.565825: Plan was last updated on 2026-08-18 07:40:00+01:00 and is now 10.0 minutes old
2026-08-18 07:50:01.566092: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:50:01.566137: Best export window [ ]
2026-08-18 07:50:01.566956: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:50:01.570262: Load divergence over 8.0 hours mean 412.09W, min 310.8W, max 693.0W, std dev 69.78W, divergence 8.47%
2026-08-18 07:50:01.590730: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:50:01.590833: LoadML is_calculating False
2026-08-18 07:50:01.590891: Creating pool of 12 processes to match your CPU count
2026-08-18 07:50:01.718616: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.18kWh, PV 0.0kWh
2026-08-18 07:50:01.840910: Battery has 16.08 hours left - now at 12.32kWh
2026-08-18 07:50:01.887008: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.44kWh, PV 0.0kWh
2026-08-18 07:50:01.954564: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.57p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.44kWh, PV 0.0kWh
2026-08-18 07:50:02.030861: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 330.97p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.18kWh, PV 0.0kWh
2026-08-18 07:50:02.030944: Saving plan best values to HA entities
2026-08-18 07:50:02.200579: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:50:02.206602: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:50:02.212371: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.17kWh, house 0kWh, export 0.0kWh, metric 330.97p, metric10 340.57p
2026-08-18 07:50:02.289150: Marginal costs baseline metric (no standing charge): 284.3343
2026-08-18 07:50:02.599452: Marginal energy costs matrix computed: min=21.53 max=32.22
2026-08-18 07:50:02.677821: Rate array import [{'start': 470, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 470, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:50:02.678596: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 07:50:02.678640: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:50:02.678662: - The battery is currently at 77% and is in eco mode for the next 15 hours.
2026-08-18 07:50:02.678681: - For the next 48 hours there will be no solar generation.
2026-08-18 07:50:02.678699: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 07:50:02.678716: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 07:50:02.678734:
2026-08-18 07:50:02.737628: Plan calculation took 1.17 seconds
2026-08-18 07:50:02.740276: No high rate period found
2026-08-18 07:50:02.790260: Import threshold used for optimisation was 8.0p
2026-08-18 07:50:02.847813: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:50:02.854843: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:50:02.854984: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:50:02.855124: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:50:02.855422: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:50:02.855559: No export window planned
2026-08-18 07:50:02.855763: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:50:02.855820: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:50:02.856196: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:50:02.856853: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:50:02.856963: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:50:02.857098: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:50:02.857272: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.857349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.857411: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.857476: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.857906: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.857988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858072: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858193: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858267: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858323: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858375: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858442: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858690: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858750: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:02.858792: Inverter 0 count register writes 0
2026-08-18 07:50:02.878981: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 07:50:02.879170: Recompute is saving previous plan...
2026-08-18 07:50:02.880160: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 07:50:02.880231: Best export window [ ]
2026-08-18 07:50:02.881083: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:50:02.884229: Load divergence over 8.0 hours mean 412.09W, min 310.8W, max 693.0W, std dev 69.78W, divergence 8.47%
2026-08-18 07:50:02.902352: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:50:02.902792: LoadML is_calculating False
2026-08-18 07:50:02.902872: Creating pool of 12 processes to match your CPU count
2026-08-18 07:50:02.983672: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 07:50:02.984502: Optimise levels pass started at 2026-08-18 07:50:02
2026-08-18 07:50:02.984560: Optimise all windows, total charge 24 export 1
2026-08-18 07:50:03.506514: >> Region optimisation pass width 960 gives best_metric 313.66p, best_cost 318.85p, best_cycle 38.34kWh, best_import 23.48kWh
2026-08-18 07:50:03.624685: >> Region optimisation pass width 480 gives best_metric 313.66p, best_cost 318.85p, best_cycle 38.34kWh, best_import 23.48kWh
2026-08-18 07:50:03.846288: >> Region optimisation pass width 240 gives best_metric 313.66p, best_cost 318.85p, best_cycle 38.34kWh, best_import 23.48kWh
2026-08-18 07:50:04.301075: >> Region optimisation pass width 120 gives best_metric 313.66p, best_cost 318.85p, best_cycle 38.34kWh, best_import 23.48kWh
2026-08-18 07:50:04.301238: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 07:50:04.301290: Optimise levels pass ended at 2026-08-18 07:50:04, duration 1.3 seconds tried 53 combinations
2026-08-18 07:50:04.301337: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 313.66p, best_keep 0kWh, best_cycle 38.34kWh, best_carbon 0kg, best_import 23.48kWh
2026-08-18 07:50:04.316353: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 07:50:07.157601: Tweak plan optimisation started metric 266.76p, cost 277.94p
2026-08-18 07:50:07.513054: Tweak optimisation finished metric 266.76p, cost 277.94p, metric_keep 0kWh, cycle 35.87kWh, carbon 0kg, import 18.37kWh, changed 8 window(s)
2026-08-18 07:50:07.533904: Swap charge optimisation started metric 266.76p, cost 277.94p, min_improvement_swap 0.1p
2026-08-18 07:50:08.192677: Swap charge optimisation finished metric 266.76p, cost 277.94p
2026-08-18 07:50:08.328860: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 265.22p -> 264.64p, plan now metric 267.66p, cost 273.8p, cycle 35.87kWh, import 17.85kWh
2026-08-18 07:50:08.336904: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:50:08.337198: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:50:08.337397: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:50:08.337538: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 07:50:08.366676: Previous plan best metric is 266.89 (cost 278.1) and new plan best metric is 266.76 (cost 277.94)
2026-08-18 07:50:08.366854: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 07:50:08.366967: Plan valid is now true after recompute was False
2026-08-18 07:50:08.390761: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 607.78p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 29.99kWh, PV 0.0kWh
2026-08-18 07:50:08.482412: Battery has 16.08 hours left - now at 12.32kWh
2026-08-18 07:50:08.518318: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.24kWh, PV 0.0kWh
2026-08-18 07:50:08.579125: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 333.37p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.24kWh, PV 0.0kWh
2026-08-18 07:50:08.644697: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 322.74p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 29.99kWh, PV 0.0kWh
2026-08-18 07:50:08.644775: Saving plan best values to HA entities
2026-08-18 07:50:08.779702: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:50:08.785517: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 07:50:08.790952: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.14kWh, house 0kWh, export 0.0kWh, metric 322.74p, metric10 333.37p
2026-08-18 07:50:08.862478: Marginal costs baseline metric (no standing charge): 276.1012
2026-08-18 07:50:09.151302: Marginal energy costs matrix computed: min=21.53 max=32.22
2026-08-18 07:50:09.219598: Rate array import [{'start': 470, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 470, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:50:09.220461: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 07:50:09.220514: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:50:09.220545: - The battery is currently at 77% and is in eco mode for the next 15 hours.
2026-08-18 07:50:09.220611: - For the next 48 hours there will be no solar generation.
2026-08-18 07:50:09.220642: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 07:50:09.220684: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 07:50:09.220718:
2026-08-18 07:50:09.290232: Plan calculation took 6.41 seconds
2026-08-18 07:50:09.290648: Inverter 0: Type SK Sunsynk
2026-08-18 07:50:09.290701: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:50:09.290915: Reserve min: 7%, battery_min: 7%
2026-08-18 07:50:09.290989: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:50:09.291415: Inverter 0 SoC: 12.32kW 77%, current charge rate 5000W, current discharge rate 5250W, current battery power 332W, current battery voltage 51.2V, grid power -55W, load power 394W, PV Power 0W
2026-08-18 07:50:09.291677: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:50:09.291812: Inverter 0 scheduled charge enable is False
2026-08-18 07:50:09.291856: Inverter 0 charge windows currently []
2026-08-18 07:50:09.291893: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:50:09.292115: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:50:09.292164: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:50:09.292213: Inverter 0 scheduled discharge enable is False
2026-08-18 07:50:09.292397: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:50:09.292440: Inverter 0 discharge windows currently []
2026-08-18 07:50:09.292465: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:50:09.292505: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:50:09.292540: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:50:09.350433: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 77%, target 100%
2026-08-18 07:50:09.350606: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:50:09.350707: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:50:09.350957: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:50:09.351081: No export window planned
2026-08-18 07:50:09.351240: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:50:09.351290: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:50:09.351519: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:50:09.351737: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:50:09.351814: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:50:09.351969: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:50:09.352121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352239: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352266: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352321: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352349: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352373: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352521: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352575: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352629: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352688: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352747: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352807: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:50:09.352855: Inverter 0 count register writes 0
2026-08-18 07:50:09.373472: Total inverter register writes now 867
2026-08-18 07:50:09.403838: Info: Completed run status Demand
2026-08-18 07:50:09.410403: Info: record_status Demand
2026-08-18 07:50:09.416887: Saved current settings to /config/predbat_config.json
2026-08-18 07:50:09.417319: Compare, best tariff: current metric 129.87p
2026-08-18 07:50:49.532147: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:50:49.532379: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:50:49.532420: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:50:49.532550: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:50:49.532587: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:50:49.532608: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:50:49.532630: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:53:03.755625: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:53:03.755818: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:53:03.755852: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:53:03.756121: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:53:03.756162: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:53:03.756181: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:53:03.756195: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:55:00.951577: --------------- PredBat - update at 2026-08-18 07:55:00+01:00 with clock skew 0 minutes, minutes now 475
2026-08-18 07:55:00.952422: Saved current settings to /config/predbat_config.json
2026-08-18 07:55:00.952544: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 07:55:00.952619: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 07:55:00.952685: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 07:55:00.971578: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 07:55:00.971731: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 07:55:00.971995: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 07:55:00.972564: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 07:55:00.972687: Predbat mode is set to Control charge & discharge
2026-08-18 07:55:01.138905: Found 21602 load_today datapoints going back 28 days
2026-08-18 07:55:01.139035: Using load_power data to fill gaps in load_today data
2026-08-18 07:55:01.881130: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 07:55:01.881276: Zero load period starting at 2026-08-17T10:54:00+0100 (1261 minutes) for 189 minutes with base value 208.8
2026-08-18 07:55:01.882083: Processing 721 30-minute periods for power integration
2026-08-18 07:55:02.041577: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 07:55:02.041680: Car charging hold False, threshold 6.0kWh
2026-08-18 07:55:02.041717: Current data so far today: load 3.7kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 07:55:02.053576: Car 0 using Octopus Intelligent is unplugged
2026-08-18 07:55:02.053682: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 07:55:02.054341: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 07:55:02.054405: Standing charge is set to 46.63p
2026-08-18 07:55:02.138677: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:55:02.138951: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:55:02.139176: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 07:55:02.140217: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 07:55:02.140332: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 07:55:02.144678: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 07:55:02.145045: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 07:55:02.179769: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 07:55:02.179870: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 07:55:02.181002: High export rate found rates in range 99p to -99p
2026-08-18 07:55:02.204562: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 07:55:02.204891: Car 0 on Octopus Intelligent, no active plan
2026-08-18 07:55:02.215614: Battery level now 12.32kWh, -1hr ago 12.64kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 37.66p, rate_forward 6.87p
2026-08-18 07:55:02.216046: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 1.41p, import 1.41p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 07:55:02.265893: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 07:55:02.266042: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 07:55:02.350446: Using weighted-bucket historical load forecast over 14 days
2026-08-18 07:55:02.376607: Today's load divergence 92.1%, in-day adjustment 92.62%, damping 0.95x, yesterday 92.68% today 92.5% blend 67.01%
2026-08-18 07:55:02.376704: Today's predicted so far 4.87kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 4.87kWh forecast extra.
2026-08-18 07:55:02.376731: Today's actual load so far 3.69kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 07:55:02.406685: Inverter 0: Type SK Sunsynk
2026-08-18 07:55:02.406772: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 07:55:02.406943: Reserve min: 7%, battery_min: 7%
2026-08-18 07:55:02.407038: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 07:55:02.407305: Inverter 0 SoC: 12.18kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 329W, current battery voltage 51.2V, grid power -54W, load power 390W, PV Power 0W
2026-08-18 07:55:02.407470: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:55:02.407559: Inverter 0 scheduled charge enable is False
2026-08-18 07:55:02.407590: Inverter 0 charge windows currently []
2026-08-18 07:55:02.407616: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 07:55:02.407725: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:55:02.407761: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:55:02.407795: Inverter 0 scheduled discharge enable is False
2026-08-18 07:55:02.407989: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:55:02.408088: Inverter 0 discharge windows currently []
2026-08-18 07:55:02.408116: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:55:02.408135: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:55:02.408157: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:55:02.459618: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 07:55:02.459702: Plan was last updated on 2026-08-18 07:50:00+01:00 and is now 5.0 minutes old
2026-08-18 07:55:02.459867: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 07:55:02.459949: Best export window [ ]
2026-08-18 07:55:02.460634: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 07:55:02.463463: Load divergence over 8.0 hours mean 412.15W, min 292.8W, max 660.0W, std dev 68.03W, divergence 8.25%
2026-08-18 07:55:02.479105: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 07:55:02.479182: LoadML is_calculating False
2026-08-18 07:55:02.479241: Creating pool of 12 processes to match your CPU count
2026-08-18 07:55:02.580248: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.06kWh, PV 0.0kWh
2026-08-18 07:55:02.688076: Battery has 15.92 hours left - now at 12.18kWh
2026-08-18 07:55:02.725246: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.32kWh, PV 0.0kWh
2026-08-18 07:55:02.793071: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 340.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.32kWh, PV 0.0kWh
2026-08-18 07:55:02.873535: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 327.54p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.06kWh, PV 0.0kWh
2026-08-18 07:55:02.873633: Saving plan best values to HA entities
2026-08-18 07:55:03.012564: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 07:55:03.017260: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 07:55:03.022309: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.0kWh, export 0.0kWh, metric 327.54p, metric10 340.53p
2026-08-18 07:55:03.085869: Marginal costs baseline metric (no standing charge): 280.9048
2026-08-18 07:55:03.322436: Marginal energy costs matrix computed: min=24.26 max=32.57
2026-08-18 07:55:03.400005: Rate array import [{'start': 475, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 475, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 07:55:03.400775: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 07:55:03.401186: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 07:55:03.401229: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 07:55:03.401247: - For the next 48 hours there will be no solar generation.
2026-08-18 07:55:03.401261: - You will reach a minimum of 10% battery in 15 hours.
2026-08-18 07:55:03.401275: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 07:55:03.401289:
2026-08-18 07:55:03.454724: Plan calculation took 0.99 seconds
2026-08-18 07:55:03.457466: No high rate period found
2026-08-18 07:55:03.498515: Import threshold used for optimisation was 8.0p
2026-08-18 07:55:03.543554: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 07:55:03.548554: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 07:55:03.548655: Inverter 0 disabled charge window while waiting for schedule (now 08-18 07:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 07:55:03.548748: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:55:03.548947: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:55:03.549024: No export window planned
2026-08-18 07:55:03.549140: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 07:55:03.549171: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 07:55:03.549279: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 07:55:03.549423: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 07:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 07:55:03.549489: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 07:55:03.549545: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 07:55:03.549629: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549692: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549717: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549738: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549758: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549784: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549833: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549896: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549915: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549935: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549958: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 07:55:03.549978: Inverter 0 count register writes 0
2026-08-18 07:55:03.564102: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 07:55:03.569244: Total inverter register writes now 867
2026-08-18 07:55:03.598746: Info: Completed run status Demand
2026-08-18 07:55:03.604369: Info: record_status Demand
2026-08-18 07:55:03.610538: Saved current settings to /config/predbat_config.json
2026-08-18 07:55:03.610854: Compare, best tariff: current metric 129.87p
2026-08-18 07:55:33.707314: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:55:33.707538: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:55:33.707578: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:55:33.707782: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:55:33.707834: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:55:33.707858: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:55:33.707877: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:55:57.572328: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 07:55:57.730996: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 07:57:33.921871: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:57:33.922270: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:57:33.922330: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:57:33.922501: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:57:33.922542: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:57:33.922564: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:57:33.922582: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 07:59:15.245485: Info: HAHistory: Pruning history data started.
2026-08-18 07:59:15.249879: Info: HAHistory: Pruning history data completed.
2026-08-18 07:59:34.145562: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 07:59:34.145784: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 07:59:34.145837: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 07:59:34.146001: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 07:59:34.146064: Note: Inverter does not support discharge freeze - disabled
2026-08-18 07:59:34.146087: Note: Inverter does not support charge freeze - disabled
2026-08-18 07:59:34.146113: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:00:00.250513: --------------- PredBat - update at 2026-08-18 08:00:00+01:00 with clock skew 0 minutes, minutes now 480
2026-08-18 08:00:00.251612: Saved current settings to /config/predbat_config.json
2026-08-18 08:00:00.251775: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 08:00:00.251945: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:00:00.252083: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:00:00.275408: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:00:00.275516: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:00:00.275712: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:00:00.276351: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:00:00.276491: Predbat mode is set to Control charge & discharge
2026-08-18 08:00:00.514231: Found 21602 load_today datapoints going back 27 days
2026-08-18 08:00:00.514386: Using load_power data to fill gaps in load_today data
2026-08-18 08:00:01.462054: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:00:01.462243: Zero load period starting at 2026-08-17T10:54:00+0100 (1266 minutes) for 189 minutes with base value 208.75
2026-08-18 08:00:01.463932: Processing 721 30-minute periods for power integration
2026-08-18 08:00:01.684827: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:00:01.685179: Car charging hold False, threshold 6.0kWh
2026-08-18 08:00:01.685238: Current data so far today: load 3.82kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:00:01.700324: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:00:01.700440: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:00:01.701282: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:00:01.701365: Standing charge is set to 46.63p
2026-08-18 08:00:01.814865: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:00:01.815141: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:00:01.815322: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:00:01.816411: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:00:01.816517: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:00:01.822260: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:00:01.822806: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:00:01.876464: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:00:01.876606: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:00:01.877918: High export rate found rates in range 99p to -99p
2026-08-18 08:00:01.910587: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:00:01.910702: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:00:01.923385: Battery level now 12.18kWh, -1hr ago 12.59kWh, at midnight 6.84kWh, battery value change in the last hour -2.8p, change today 36.73p, rate_forward 6.87p
2026-08-18 08:00:01.923755: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.27p, import 1.27p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:00:01.983453: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:00:01.983595: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:00:02.076567: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:00:02.111786: Today's load divergence 92.33%, in-day adjustment 92.69%, damping 0.95x, yesterday 92.68% today 92.71% blend 66.67%
2026-08-18 08:00:02.111889: Today's predicted so far 4.97kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 4.97kWh forecast extra.
2026-08-18 08:00:02.111974: Today's actual load so far 3.82kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 08:00:02.152978: Inverter 0: Type SK Sunsynk
2026-08-18 08:00:02.153082: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:00:02.153335: Reserve min: 7%, battery_min: 7%
2026-08-18 08:00:02.153456: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:00:02.153737: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 331W, current battery voltage 51.2V, grid power -55W, load power 392W, PV Power 0W
2026-08-18 08:00:02.153890: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:00:02.153995: Inverter 0 scheduled charge enable is False
2026-08-18 08:00:02.154059: Inverter 0 charge windows currently []
2026-08-18 08:00:02.154102: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:00:02.154254: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:00:02.154299: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:00:02.154345: Inverter 0 scheduled discharge enable is False
2026-08-18 08:00:02.154480: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:00:02.154519: Inverter 0 discharge windows currently []
2026-08-18 08:00:02.154543: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:00:02.154561: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:00:02.154579: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:00:02.214960: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:00:02.215127: Plan was last updated on 2026-08-18 07:50:00+01:00 and is now 10.0 minutes old
2026-08-18 08:00:02.215480: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:00:02.215553: Best export window [ ]
2026-08-18 08:00:02.216825: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:00:02.221966: Load divergence over 8.0 hours mean 412.31W, min 281.4W, max 651.6W, std dev 60.57W, divergence 7.35%
2026-08-18 08:00:02.243404: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:00:02.243524: LoadML is_calculating False
2026-08-18 08:00:02.243587: Creating pool of 12 processes to match your CPU count
2026-08-18 08:00:02.373486: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 610.18p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.25kWh, PV 0.0kWh
2026-08-18 08:00:02.499640: Battery has 15.83 hours left - now at 12.16kWh
2026-08-18 08:00:02.539190: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 636.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.51kWh, PV 0.0kWh
2026-08-18 08:00:02.623546: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 343.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.51kWh, PV 0.0kWh
2026-08-18 08:00:02.715753: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 331.58p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.25kWh, PV 0.0kWh
2026-08-18 08:00:02.715861: Saving plan best values to HA entities
2026-08-18 08:00:02.902675: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:00:02.909321: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:00:02.916827: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.25kWh, house 0.0kWh, export 0.0kWh, metric 331.58p, metric10 343.59p
2026-08-18 08:00:03.011854: Marginal costs baseline metric (no standing charge): 284.9435
2026-08-18 08:00:03.268225: Marginal energy costs matrix computed: min=24.16 max=32.55
2026-08-18 08:00:03.345178: Rate array import [{'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 480, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:00:03.345778: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 08:00:03.345814: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:00:03.345832: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:00:03.345847: - For the next 48 hours there will be no solar generation.
2026-08-18 08:00:03.345861: - You will reach a minimum of 10% battery in 15 hours.
2026-08-18 08:00:03.345875: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:00:03.345889:
2026-08-18 08:00:03.405882: Plan calculation took 1.19 seconds
2026-08-18 08:00:03.408646: No high rate period found
2026-08-18 08:00:03.453037: Import threshold used for optimisation was 8.0p
2026-08-18 08:00:03.498543: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:00:03.503604: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:00:03.503712: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:00:03.503804: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:00:03.504119: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:00:03.504239: No export window planned
2026-08-18 08:00:03.504406: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:00:03.504444: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:00:03.504566: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:00:03.504715: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:00:03.504766: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:00:03.504820: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:00:03.504902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.504934: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.504959: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.504981: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505014: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505038: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505058: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505114: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505143: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505163: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505186: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505205: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505228: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505268: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:03.505287: Inverter 0 count register writes 0
2026-08-18 08:00:03.519775: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 08:00:03.520042: Recompute is saving previous plan...
2026-08-18 08:00:03.521028: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 08:00:03.521080: Best export window [ ]
2026-08-18 08:00:03.521974: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:00:03.526164: Load divergence over 8.0 hours mean 412.31W, min 281.4W, max 651.6W, std dev 60.57W, divergence 7.35%
2026-08-18 08:00:03.545840: Calculating data from yesterday for savings calculation
2026-08-18 08:00:03.559930: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 08:00:03.616568: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 08:00:03.635033: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 08:00:03.659167: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 08:00:03.701364: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 08:00:03.782143: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 08:00:03.782293: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 08:00:03.793219: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:00:03.793345: LoadML is_calculating False
2026-08-18 08:00:03.793410: Creating pool of 12 processes to match your CPU count
2026-08-18 08:00:03.886241: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 08:00:03.887151: Optimise levels pass started at 2026-08-18 08:00:03
2026-08-18 08:00:03.887204: Optimise all windows, total charge 24 export 1
2026-08-18 08:00:04.738168: >> Region optimisation pass width 960 gives best_metric 315.45p, best_cost 322.18p, best_cycle 39.23kWh, best_import 23.9kWh
2026-08-18 08:00:04.867834: >> Region optimisation pass width 480 gives best_metric 315.45p, best_cost 322.18p, best_cycle 39.23kWh, best_import 23.9kWh
2026-08-18 08:00:05.122208: >> Region optimisation pass width 240 gives best_metric 315.45p, best_cost 322.18p, best_cycle 39.23kWh, best_import 23.9kWh
2026-08-18 08:00:05.697385: >> Region optimisation pass width 120 gives best_metric 315.45p, best_cost 322.18p, best_cycle 39.23kWh, best_import 23.9kWh
2026-08-18 08:00:05.697570: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 08:00:05.697647: Optimise levels pass ended at 2026-08-18 08:00:05, duration 1.8 seconds tried 58 combinations
2026-08-18 08:00:05.697736: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 315.45p, best_keep 0kWh, best_cycle 39.23kWh, best_carbon 0kg, best_import 23.9kWh
2026-08-18 08:00:05.720059: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 08:00:08.733201: Tweak plan optimisation started metric 267.99p, cost 278.86p
2026-08-18 08:00:09.156268: Tweak optimisation finished metric 267.99p, cost 278.86p, metric_keep 0kWh, cycle 35.94kWh, carbon 0kg, import 18.49kWh, changed 8 window(s)
2026-08-18 08:00:09.178272: Swap charge optimisation started metric 267.99p, cost 278.86p, min_improvement_swap 0.1p
2026-08-18 08:00:09.990913: Swap charge optimisation finished metric 267.99p, cost 278.86p
2026-08-18 08:00:10.134813: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 266.17p -> 266.01p, plan now metric 268.44p, cost 276.82p, cycle 36.2kWh, import 18.23kWh
2026-08-18 08:00:10.145532: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 81%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 81%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:00:10.146135: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:00:10.146534: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:00:10.146890: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:00:10.191238: Previous plan best metric is 267.99 (cost 278.86) and new plan best metric is 267.99 (cost 278.86)
2026-08-18 08:00:10.191436: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 08:00:10.191583: Plan valid is now true after recompute was False
2026-08-18 08:00:10.221633: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 608.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.07kWh, PV 0.0kWh
2026-08-18 08:00:10.337536: Battery has 15.83 hours left - now at 12.16kWh
2026-08-18 08:00:10.382992: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 635.21p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.31kWh, PV 0.0kWh
2026-08-18 08:00:10.465842: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 336.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.31kWh, PV 0.0kWh
2026-08-18 08:00:10.563731: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 323.45p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.07kWh, PV 0.0kWh
2026-08-18 08:00:10.563819: Saving plan best values to HA entities
2026-08-18 08:00:10.896135: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:00:10.901984: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:00:10.908181: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.23kWh, house 0.0kWh, export 0.0kWh, metric 323.45p, metric10 336.51p
2026-08-18 08:00:10.991449: Marginal costs baseline metric (no standing charge): 276.8192
2026-08-18 08:00:11.298716: Marginal energy costs matrix computed: min=24.16 max=32.55
2026-08-18 08:00:11.365952: Rate array import [{'start': 480, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 480, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:00:11.366607: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 08:00:11.366651: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:00:11.366671: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:00:11.366686: - For the next 48 hours there will be no solar generation.
2026-08-18 08:00:11.366700: - You will reach a minimum of 10% battery in 15 hours.
2026-08-18 08:00:11.366719: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:00:11.366733:
2026-08-18 08:00:11.430496: Plan calculation took 7.91 seconds
2026-08-18 08:00:11.430755: Inverter 0: Type SK Sunsynk
2026-08-18 08:00:11.430793: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:00:11.431038: Reserve min: 7%, battery_min: 7%
2026-08-18 08:00:11.431120: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:00:11.431451: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 331W, current battery voltage 51.2V, grid power -55W, load power 392W, PV Power 0W
2026-08-18 08:00:11.431668: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:00:11.431815: Inverter 0 scheduled charge enable is False
2026-08-18 08:00:11.431851: Inverter 0 charge windows currently []
2026-08-18 08:00:11.431878: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:00:11.432074: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:00:11.432117: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:00:11.432156: Inverter 0 scheduled discharge enable is False
2026-08-18 08:00:11.432330: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:00:11.432366: Inverter 0 discharge windows currently []
2026-08-18 08:00:11.432386: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:00:11.432406: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:00:11.432444: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:00:11.480125: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:00:11.480267: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:00:11.480339: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:00:11.480561: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:00:11.480662: No export window planned
2026-08-18 08:00:11.480795: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:00:11.480836: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:00:11.481042: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:00:11.481228: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:00:11.481294: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:00:11.481374: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:00:11.481486: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481531: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481563: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481615: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481654: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481690: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481718: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481842: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481865: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481885: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481927: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.481996: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.482044: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:00:11.482065: Inverter 0 count register writes 0
2026-08-18 08:00:11.502085: Total inverter register writes now 867
2026-08-18 08:00:11.529695: Info: Completed run status Demand
2026-08-18 08:00:11.534679: Info: record_status Demand
2026-08-18 08:00:11.539765: Saved current settings to /config/predbat_config.json
2026-08-18 08:00:11.540064: Compare, best tariff: current metric 129.87p
2026-08-18 08:00:48.640682: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:00:48.640866: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:00:48.640894: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:00:48.641041: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:00:48.641077: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:00:48.641095: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:00:48.641110: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:02:44.217815: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 08:02:45.140395: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:02:45.140585: Zero load period starting at 2026-08-17T10:54:00+0100 (1266 minutes) for 189 minutes with base value 387.275
2026-08-18 08:02:45.142084: Processing 1297 30-minute periods for power integration
2026-08-18 08:02:45.244900: ML Component: Car charging hold False, car energy reported load False
2026-08-18 08:02:45.340391: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:02:45.438340: ML Temperature data points: 48481
2026-08-18 08:02:45.698989: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-18 08:02:45.737817: ML Component: Data fetch completed, load data age 59.0 days, 17207 data points
2026-08-18 08:02:45.737936: ML Component: No training needed, model age is 0.46 hours
2026-08-18 08:02:45.738009: ML Component: Generating predictions load data age 59.0 days, 17207 data points
2026-08-18 08:02:45.876961: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0252 max_dow {0: 0.08580555561814043, 1: 0.09143333321428962, 2: 0.10809374959506095, 3: 0.10235625034738333, 4: 0.1370843753574416, 5: 0.09880833375371165, 6: 0.10414166664199698}
2026-08-18 08:02:46.329209: ML Component: Generated 576 predictions (total 28.08 kWh over 48h)
2026-08-18 08:02:46.366158: ML Component: Prediction cycle completed
2026-08-18 08:02:46.486352: ML Component: Saved 17207 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 08:02:48.885218: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:02:48.885440: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:02:48.885474: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:02:48.885628: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:02:48.885665: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:02:48.885687: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:02:48.885705: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:04:49.089396: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:04:49.089647: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:04:49.089714: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:04:49.089851: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:04:49.089889: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:04:49.089910: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:04:49.089931: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:05:00.177795: --------------- PredBat - update at 2026-08-18 08:05:00+01:00 with clock skew 0 minutes, minutes now 485
2026-08-18 08:05:00.178660: Saved current settings to /config/predbat_config.json
2026-08-18 08:05:00.178839: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 40.0 minutes
2026-08-18 08:05:00.178932: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:05:00.179048: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:05:00.203495: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:05:00.203624: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:05:00.203864: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:05:00.204561: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:05:00.204730: Predbat mode is set to Control charge & discharge
2026-08-18 08:05:00.418117: Found 21602 load_today datapoints going back 27 days
2026-08-18 08:05:00.418236: Using load_power data to fill gaps in load_today data
2026-08-18 08:05:01.264308: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:05:01.264490: Zero load period starting at 2026-08-17T10:54:00+0100 (1271 minutes) for 189 minutes with base value 208.7
2026-08-18 08:05:01.265495: Processing 721 30-minute periods for power integration
2026-08-18 08:05:01.458671: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:05:01.458784: Car charging hold False, threshold 6.0kWh
2026-08-18 08:05:01.458823: Current data so far today: load 3.85kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:05:01.474211: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:05:01.474313: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:05:01.475098: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:05:01.475171: Standing charge is set to 46.63p
2026-08-18 08:05:01.625649: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:05:01.625939: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:05:01.626192: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:05:01.627695: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:05:01.627814: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:05:01.634216: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:05:01.634497: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:05:01.679455: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:05:01.679565: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:05:01.680932: High export rate found rates in range 99p to -99p
2026-08-18 08:05:01.706692: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:05:01.706799: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:05:01.721267: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 36.56p, rate_forward 6.87p
2026-08-18 08:05:01.721749: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 1.12p, import 1.12p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:05:01.776178: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:05:01.776299: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:05:01.859605: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:05:01.890605: Today's load divergence 92.07%, in-day adjustment 92.61%, damping 0.95x, yesterday 92.68% today 92.47% blend 66.32%
2026-08-18 08:05:01.890699: Today's predicted so far 5.05kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 5.05kWh forecast extra.
2026-08-18 08:05:01.890733: Today's actual load so far 3.86kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 08:05:01.928053: Inverter 0: Type SK Sunsynk
2026-08-18 08:05:01.928135: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:05:01.928320: Reserve min: 7%, battery_min: 7%
2026-08-18 08:05:01.928391: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:05:01.928644: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 340W, current battery voltage 51.2V, grid power -54W, load power 398W, PV Power 0W
2026-08-18 08:05:01.928797: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:05:01.928884: Inverter 0 scheduled charge enable is False
2026-08-18 08:05:01.928919: Inverter 0 charge windows currently []
2026-08-18 08:05:01.928946: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:05:01.929075: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:05:01.929113: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:05:01.929149: Inverter 0 scheduled discharge enable is False
2026-08-18 08:05:01.929271: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:05:01.929307: Inverter 0 discharge windows currently []
2026-08-18 08:05:01.929330: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:05:01.929351: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:05:01.929368: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:05:01.990084: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:05:01.990187: Plan was last updated on 2026-08-18 08:00:00+01:00 and is now 5.0 minutes old
2026-08-18 08:05:01.990390: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:05:01.990428: Best export window [ ]
2026-08-18 08:05:01.991299: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:05:01.994536: Load divergence over 8.0 hours mean 412.45W, min 274.8W, max 675.0W, std dev 64.96W, divergence 7.88%
2026-08-18 08:05:02.014184: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:05:02.014300: LoadML is_calculating False
2026-08-18 08:05:02.014360: Creating pool of 12 processes to match your CPU count
2026-08-18 08:05:02.133193: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.16kWh, PV 0.0kWh
2026-08-18 08:05:02.259664: Battery has 15.92 hours left - now at 12.16kWh
2026-08-18 08:05:02.294627: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 634.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.41kWh, PV 0.0kWh
2026-08-18 08:05:02.386314: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 338.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.41kWh, PV 0.0kWh
2026-08-18 08:05:02.462607: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 327.37p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.16kWh, PV 0.0kWh
2026-08-18 08:05:02.462680: Saving plan best values to HA entities
2026-08-18 08:05:02.622478: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:05:02.628708: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:05:02.634601: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.72kWh, house 0.0kWh, export 0.0kWh, metric 327.37p, metric10 338.83p
2026-08-18 08:05:02.705351: Marginal costs baseline metric (no standing charge): 280.7371
2026-08-18 08:05:02.971993: Marginal energy costs matrix computed: min=23.15 max=32.43
2026-08-18 08:05:03.047616: Rate array import [{'start': 485, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 485, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:05:03.048396: - Your estimated bill for today is £1.54 and tomorrow is £1.93
2026-08-18 08:05:03.048443: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:05:03.048466: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:05:03.048484: - For the next 48 hours there will be no solar generation.
2026-08-18 08:05:03.048505: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 08:05:03.048523: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:05:03.048544:
2026-08-18 08:05:03.110420: Plan calculation took 1.12 seconds
2026-08-18 08:05:03.113851: No high rate period found
2026-08-18 08:05:03.162523: Import threshold used for optimisation was 8.0p
2026-08-18 08:05:03.210210: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:05:03.215516: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:05:03.215646: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:05:03.215757: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:05:03.216107: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:05:03.216208: No export window planned
2026-08-18 08:05:03.216327: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:05:03.216363: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:05:03.216496: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:05:03.216675: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:05:03.216736: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:05:03.216806: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:05:03.216904: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.216944: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217000: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217042: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217074: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217101: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217127: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217189: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217224: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217250: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217275: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217304: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217353: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:05:03.217373: Inverter 0 count register writes 0
2026-08-18 08:05:03.234547: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 08:05:03.239024: Total inverter register writes now 867
2026-08-18 08:05:03.270003: Info: Completed run status Demand
2026-08-18 08:05:03.277725: Info: record_status Demand
2026-08-18 08:05:03.286500: Saved current settings to /config/predbat_config.json
2026-08-18 08:05:03.286852: Compare, best tariff: current metric 129.87p
2026-08-18 08:05:34.399269: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:05:34.399512: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:05:34.399572: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:05:34.399835: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:05:34.399887: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:05:34.399976: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:05:34.400023: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:07:34.600636: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:07:34.600924: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:07:34.601031: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:07:34.601199: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:07:34.601233: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:07:34.601252: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:07:34.601266: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:09:48.825862: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:09:48.826083: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:09:48.826121: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:09:48.826251: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:09:48.826283: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:09:48.826300: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:09:48.826315: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:10:00.912978: --------------- PredBat - update at 2026-08-18 08:10:00+01:00 with clock skew 0 minutes, minutes now 490
2026-08-18 08:10:00.913666: Saved current settings to /config/predbat_config.json
2026-08-18 08:10:00.913785: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 45.0 minutes
2026-08-18 08:10:00.913851: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:10:00.913957: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:10:00.929217: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:10:00.929345: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:10:00.929506: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:10:00.929997: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:10:00.930121: Predbat mode is set to Control charge & discharge
2026-08-18 08:10:01.093098: Found 21602 load_today datapoints going back 27 days
2026-08-18 08:10:01.093219: Using load_power data to fill gaps in load_today data
2026-08-18 08:10:01.797845: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:10:01.798576: Zero load period starting at 2026-08-17T10:54:00+0100 (1276 minutes) for 189 minutes with base value 208.675
2026-08-18 08:10:01.799870: Processing 721 30-minute periods for power integration
2026-08-18 08:10:01.981812: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:10:01.982153: Car charging hold False, threshold 6.0kWh
2026-08-18 08:10:01.982212: Current data so far today: load 3.95kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:10:01.997329: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:10:01.997427: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:10:01.998218: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:10:01.998298: Standing charge is set to 46.63p
2026-08-18 08:10:02.093609: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:10:02.094508: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:10:02.094835: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:10:02.096096: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:10:02.096246: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:10:02.101670: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:10:02.102141: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:10:02.145590: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:10:02.145701: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:10:02.146918: High export rate found rates in range 99p to -99p
2026-08-18 08:10:02.175037: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:10:02.175162: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:10:02.186690: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 36.56p, rate_forward 6.87p
2026-08-18 08:10:02.187137: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.99p, import 0.99p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:10:02.237540: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:10:02.237666: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:10:02.317678: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:10:02.347293: Today's load divergence 92.61%, in-day adjustment 92.78%, damping 0.95x, yesterday 92.68% today 92.98% blend 65.97%
2026-08-18 08:10:02.347376: Today's predicted so far 5.04kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 5.04kWh forecast extra.
2026-08-18 08:10:02.347408: Today's actual load so far 3.93kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 08:10:02.380271: Inverter 0: Type SK Sunsynk
2026-08-18 08:10:02.380342: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:10:02.380581: Reserve min: 7%, battery_min: 7%
2026-08-18 08:10:02.380680: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:10:02.381035: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 341W, current battery voltage 51.2V, grid power -54W, load power 400W, PV Power 0W
2026-08-18 08:10:02.381229: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:10:02.381322: Inverter 0 scheduled charge enable is False
2026-08-18 08:10:02.381383: Inverter 0 charge windows currently []
2026-08-18 08:10:02.381434: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:10:02.381594: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:10:02.381638: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:10:02.381675: Inverter 0 scheduled discharge enable is False
2026-08-18 08:10:02.381821: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:10:02.381878: Inverter 0 discharge windows currently []
2026-08-18 08:10:02.381903: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:10:02.381922: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:10:02.381966: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:10:02.436148: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:10:02.436236: Plan was last updated on 2026-08-18 08:00:00+01:00 and is now 10.0 minutes old
2026-08-18 08:10:02.436413: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:10:02.436447: Best export window [ ]
2026-08-18 08:10:02.437090: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:10:02.439545: Load divergence over 8.0 hours mean 412.51W, min 287.4W, max 712.8W, std dev 66.64W, divergence 8.08%
2026-08-18 08:10:02.455639: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:10:02.455746: LoadML is_calculating False
2026-08-18 08:10:02.455821: Creating pool of 12 processes to match your CPU count
2026-08-18 08:10:02.558224: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.33kWh, PV 0.0kWh
2026-08-18 08:10:02.680443: Battery has 15.75 hours left - now at 12.16kWh
2026-08-18 08:10:02.716222: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.93p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.59kWh, PV 0.0kWh
2026-08-18 08:10:02.783697: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.59kWh, PV 0.0kWh
2026-08-18 08:10:02.848903: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 331.35p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.33kWh, PV 0.0kWh
2026-08-18 08:10:02.849018: Saving plan best values to HA entities
2026-08-18 08:10:02.986729: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:10:02.991096: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:10:02.995318: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.22kWh, house 0.0kWh, export 0.0kWh, metric 331.35p, metric10 341.69p
2026-08-18 08:10:03.054816: Marginal costs baseline metric (no standing charge): 284.7111
2026-08-18 08:10:03.271200: Marginal energy costs matrix computed: min=22.79 max=32.38
2026-08-18 08:10:03.339735: Rate array import [{'start': 490, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 490, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:10:03.340406: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:10:03.340468: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:10:03.340492: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:10:03.340517: - For the next 48 hours there will be no solar generation.
2026-08-18 08:10:03.340545: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 08:10:03.340573: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:10:03.340607:
2026-08-18 08:10:03.393613: Plan calculation took 0.96 seconds
2026-08-18 08:10:03.396330: No high rate period found
2026-08-18 08:10:03.442542: Import threshold used for optimisation was 8.0p
2026-08-18 08:10:03.486895: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:10:03.491399: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:10:03.491493: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:10:03.491572: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:10:03.491789: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:10:03.491867: No export window planned
2026-08-18 08:10:03.492008: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:10:03.492044: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:10:03.492157: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:10:03.492304: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:10:03.492354: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:10:03.492406: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:10:03.492491: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492523: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492545: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492566: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492585: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492605: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492625: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492694: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492720: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492765: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492784: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492803: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492823: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:03.492839: Inverter 0 count register writes 0
2026-08-18 08:10:03.505262: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 08:10:03.505384: Recompute is saving previous plan...
2026-08-18 08:10:03.506087: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 08:10:03.506127: Best export window [ ]
2026-08-18 08:10:03.506923: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:10:03.509702: Load divergence over 8.0 hours mean 412.51W, min 287.4W, max 712.8W, std dev 66.64W, divergence 8.08%
2026-08-18 08:10:03.523991: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:10:03.524087: LoadML is_calculating False
2026-08-18 08:10:03.524142: Creating pool of 12 processes to match your CPU count
2026-08-18 08:10:03.598146: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 08:10:03.599195: Optimise levels pass started at 2026-08-18 08:10:03
2026-08-18 08:10:03.599258: Optimise all windows, total charge 24 export 1
2026-08-18 08:10:04.097914: >> Region optimisation pass width 960 gives best_metric 315.36p, best_cost 321.42p, best_cycle 38.68kWh, best_import 23.81kWh
2026-08-18 08:10:04.218197: >> Region optimisation pass width 480 gives best_metric 315.36p, best_cost 321.42p, best_cycle 38.68kWh, best_import 23.81kWh
2026-08-18 08:10:04.446220: >> Region optimisation pass width 240 gives best_metric 315.36p, best_cost 321.42p, best_cycle 38.68kWh, best_import 23.81kWh
2026-08-18 08:10:04.892931: >> Region optimisation pass width 120 gives best_metric 315.36p, best_cost 321.42p, best_cycle 38.68kWh, best_import 23.81kWh
2026-08-18 08:10:04.893159: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 08:10:04.893226: Optimise levels pass ended at 2026-08-18 08:10:04, duration 1.3 seconds tried 57 combinations
2026-08-18 08:10:04.893285: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 315.36p, best_keep 0kWh, best_cycle 38.68kWh, best_carbon 0kg, best_import 23.81kWh
2026-08-18 08:10:04.912151: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 08:10:07.566221: Tweak plan optimisation started metric 267.3p, cost 278.39p
2026-08-18 08:10:07.916658: Tweak optimisation finished metric 267.3p, cost 278.39p, metric_keep 0kWh, cycle 35.82kWh, carbon 0kg, import 18.43kWh, changed 8 window(s)
2026-08-18 08:10:07.935526: Swap charge optimisation started metric 267.3p, cost 278.39p, min_improvement_swap 0.1p
2026-08-18 08:10:08.639702: Swap charge optimisation finished metric 267.3p, cost 278.39p
2026-08-18 08:10:08.761080: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 265.67p -> 265.09p, plan now metric 268.2p, cost 274.23p, cycle 35.82kWh, import 17.91kWh
2026-08-18 08:10:08.769247: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:10:08.769553: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:10:08.769769: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:10:08.769967: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:10:08.800351: Previous plan best metric is 267.36 (cost 278.47) and new plan best metric is 267.3 (cost 278.39)
2026-08-18 08:10:08.800739: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 08:10:08.800921: Plan valid is now true after recompute was False
2026-08-18 08:10:08.825442: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 608.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.14kWh, PV 0.0kWh
2026-08-18 08:10:08.928004: Battery has 15.75 hours left - now at 12.16kWh
2026-08-18 08:10:08.971526: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.26p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.38kWh, PV 0.0kWh
2026-08-18 08:10:09.040910: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.38kWh, PV 0.0kWh
2026-08-18 08:10:09.121068: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 323.09p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.14kWh, PV 0.0kWh
2026-08-18 08:10:09.121166: Saving plan best values to HA entities
2026-08-18 08:10:09.239223: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:10:09.243690: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:10:09.248079: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.19kWh, house 0.0kWh, export 0.0kWh, metric 323.09p, metric10 334.47p
2026-08-18 08:10:09.317755: Marginal costs baseline metric (no standing charge): 276.4572
2026-08-18 08:10:09.552538: Marginal energy costs matrix computed: min=22.79 max=32.38
2026-08-18 08:10:09.627132: Rate array import [{'start': 490, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 490, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:10:09.627875: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:10:09.627957: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:10:09.627985: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:10:09.628004: - For the next 48 hours there will be no solar generation.
2026-08-18 08:10:09.628022: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 08:10:09.628039: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:10:09.628056:
2026-08-18 08:10:09.689871: Plan calculation took 6.18 seconds
2026-08-18 08:10:09.690176: Inverter 0: Type SK Sunsynk
2026-08-18 08:10:09.690221: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:10:09.690437: Reserve min: 7%, battery_min: 7%
2026-08-18 08:10:09.690513: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:10:09.690853: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 341W, current battery voltage 51.2V, grid power -54W, load power 400W, PV Power 0W
2026-08-18 08:10:09.691144: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:10:09.691290: Inverter 0 scheduled charge enable is False
2026-08-18 08:10:09.691342: Inverter 0 charge windows currently []
2026-08-18 08:10:09.691396: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:10:09.691558: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:10:09.691614: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:10:09.691675: Inverter 0 scheduled discharge enable is False
2026-08-18 08:10:09.691875: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:10:09.691999: Inverter 0 discharge windows currently []
2026-08-18 08:10:09.692039: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:10:09.692066: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:10:09.692091: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:10:09.745537: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:10:09.745693: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:10:09.745780: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:10:09.746024: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:10:09.746142: No export window planned
2026-08-18 08:10:09.746323: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:10:09.746364: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:10:09.746495: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:10:09.746631: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:10:09.746674: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:10:09.746728: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:10:09.746807: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.746839: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.746861: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.746882: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.746902: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.746925: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.746960: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747063: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747083: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747120: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747139: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:10:09.747162: Inverter 0 count register writes 0
2026-08-18 08:10:09.766439: Total inverter register writes now 867
2026-08-18 08:10:09.799464: Info: Completed run status Demand
2026-08-18 08:10:09.805286: Info: record_status Demand
2026-08-18 08:10:09.811088: Saved current settings to /config/predbat_config.json
2026-08-18 08:10:09.811368: Compare, best tariff: current metric 129.87p
2026-08-18 08:10:48.915699: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:10:48.915999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:10:48.916047: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:10:48.916183: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:10:48.916220: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:10:48.916241: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:10:48.916264: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:12:49.118660: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:12:49.118920: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:12:49.118979: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:12:49.119132: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:12:49.119169: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:12:49.119189: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:12:49.119204: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:14:49.327253: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:14:49.327541: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:14:49.327584: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:14:49.327717: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:14:49.327754: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:14:49.327775: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:14:49.327800: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:15:00.420662: --------------- PredBat - update at 2026-08-18 08:15:00+01:00 with clock skew 0 minutes, minutes now 495
2026-08-18 08:15:00.421447: Saved current settings to /config/predbat_config.json
2026-08-18 08:15:00.421572: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 50.0 minutes
2026-08-18 08:15:00.421646: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:15:00.421716: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:15:00.438654: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:15:00.438775: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:15:00.438955: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:15:00.439455: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:15:00.439572: Predbat mode is set to Control charge & discharge
2026-08-18 08:15:00.619091: Found 21602 load_today datapoints going back 27 days
2026-08-18 08:15:00.619213: Using load_power data to fill gaps in load_today data
2026-08-18 08:15:01.441518: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:15:01.441884: Zero load period starting at 2026-08-17T10:54:00+0100 (1281 minutes) for 189 minutes with base value 208.65
2026-08-18 08:15:01.442977: Processing 721 30-minute periods for power integration
2026-08-18 08:15:01.625426: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:15:01.625544: Car charging hold False, threshold 6.0kWh
2026-08-18 08:15:01.625605: Current data so far today: load 4.0kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:15:01.639628: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:15:01.639712: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:15:01.640492: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:15:01.640569: Standing charge is set to 46.63p
2026-08-18 08:15:01.727807: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:15:01.728064: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:15:01.728216: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:15:01.729066: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:15:01.729150: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:15:01.733438: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:15:01.733796: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:15:01.768005: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:15:01.768094: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:15:01.769142: High export rate found rates in range 99p to -99p
2026-08-18 08:15:01.793653: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:15:01.794082: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:15:01.805007: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 36.56p, rate_forward 6.87p
2026-08-18 08:15:01.805291: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 0.84p, import 0.84p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:15:01.855654: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:15:01.855796: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:15:01.939102: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:15:01.969281: Today's load divergence 92.91%, in-day adjustment 92.88%, damping 0.95x, yesterday 92.68% today 93.26% blend 65.62%
2026-08-18 08:15:01.969619: Today's predicted so far 5.03kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 5.03kWh forecast extra.
2026-08-18 08:15:01.969665: Today's actual load so far 3.96kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 08:15:02.000565: Inverter 0: Type SK Sunsynk
2026-08-18 08:15:02.000655: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:15:02.000885: Reserve min: 7%, battery_min: 7%
2026-08-18 08:15:02.001011: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:15:02.001329: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 332W, current battery voltage 51.2V, grid power -54W, load power 388W, PV Power 0W
2026-08-18 08:15:02.001532: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:15:02.001679: Inverter 0 scheduled charge enable is False
2026-08-18 08:15:02.001726: Inverter 0 charge windows currently []
2026-08-18 08:15:02.001758: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:15:02.001926: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:15:02.001986: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:15:02.002027: Inverter 0 scheduled discharge enable is False
2026-08-18 08:15:02.002209: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:15:02.002251: Inverter 0 discharge windows currently []
2026-08-18 08:15:02.002277: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:15:02.002320: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:15:02.002366: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:15:02.054495: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:15:02.054596: Plan was last updated on 2026-08-18 08:10:00+01:00 and is now 5.0 minutes old
2026-08-18 08:15:02.054808: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:15:02.054876: Best export window [ ]
2026-08-18 08:15:02.055738: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:15:02.058964: Load divergence over 8.0 hours mean 412.54W, min 300.0W, max 753.0W, std dev 78.98W, divergence 9.57%
2026-08-18 08:15:02.077546: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:15:02.077644: LoadML is_calculating False
2026-08-18 08:15:02.077703: Creating pool of 12 processes to match your CPU count
2026-08-18 08:15:02.188499: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.28kWh, PV 0.0kWh
2026-08-18 08:15:02.304898: Battery has 15.67 hours left - now at 12.16kWh
2026-08-18 08:15:02.348100: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.53kWh, PV 0.0kWh
2026-08-18 08:15:02.425055: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.53kWh, PV 0.0kWh
2026-08-18 08:15:02.505742: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 327.12p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.28kWh, PV 0.0kWh
2026-08-18 08:15:02.505829: Saving plan best values to HA entities
2026-08-18 08:15:02.650434: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:15:02.655388: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:15:02.660193: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.69kWh, house 0kWh, export 0.0kWh, metric 327.12p, metric10 337.69p
2026-08-18 08:15:02.722065: Marginal costs baseline metric (no standing charge): 280.4838
2026-08-18 08:15:02.984555: Marginal energy costs matrix computed: min=22.42 max=32.34
2026-08-18 08:15:03.050726: Rate array import [{'start': 495, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 495, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:15:03.051413: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:15:03.051451: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:15:03.051471: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:15:03.051486: - For the next 48 hours there will be no solar generation.
2026-08-18 08:15:03.051499: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 08:15:03.051514: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:15:03.051527:
2026-08-18 08:15:03.108493: Plan calculation took 1.05 seconds
2026-08-18 08:15:03.111200: No high rate period found
2026-08-18 08:15:03.151043: Import threshold used for optimisation was 8.0p
2026-08-18 08:15:03.190409: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:15:03.195072: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:15:03.195167: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:15:03.195256: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:15:03.195460: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:15:03.195539: No export window planned
2026-08-18 08:15:03.195683: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:15:03.195723: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:15:03.195863: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:15:03.196057: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:15:03.196112: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:15:03.196166: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:15:03.196253: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196286: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196310: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196339: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196360: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196380: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196423: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196476: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196527: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196566: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196585: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:15:03.196629: Inverter 0 count register writes 0
2026-08-18 08:15:03.209824: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 08:15:03.214182: Total inverter register writes now 867
2026-08-18 08:15:03.241168: Info: Completed run status Demand
2026-08-18 08:15:03.246474: Info: record_status Demand
2026-08-18 08:15:03.252071: Saved current settings to /config/predbat_config.json
2026-08-18 08:15:03.252365: Compare, best tariff: current metric 129.87p
2026-08-18 08:15:34.340566: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:15:34.340874: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:15:34.340953: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:15:34.341180: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:15:34.341237: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:15:34.341280: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:15:34.341319: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:17:34.547610: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:17:34.547827: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:17:34.547868: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:17:34.548082: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:17:34.548130: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:17:34.548152: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:17:34.548175: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:19:48.769734: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:19:48.770071: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:19:48.770130: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:19:48.770332: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:19:48.770378: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:19:48.770410: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:19:48.770445: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:20:00.857065: --------------- PredBat - update at 2026-08-18 08:20:00+01:00 with clock skew 0 minutes, minutes now 500
2026-08-18 08:20:00.857739: Saved current settings to /config/predbat_config.json
2026-08-18 08:20:00.857871: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 55.0 minutes
2026-08-18 08:20:00.857963: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:20:00.858075: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:20:00.874266: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:20:00.874388: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:20:00.874552: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:20:00.875055: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:20:00.875172: Predbat mode is set to Control charge & discharge
2026-08-18 08:20:01.062028: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:20:01.062169: Using load_power data to fill gaps in load_today data
2026-08-18 08:20:01.848541: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:20:01.848693: Zero load period starting at 2026-08-17T10:54:00+0100 (1286 minutes) for 189 minutes with base value 208.625
2026-08-18 08:20:01.849530: Processing 721 30-minute periods for power integration
2026-08-18 08:20:02.044620: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:20:02.044766: Car charging hold False, threshold 6.0kWh
2026-08-18 08:20:02.044809: Current data so far today: load 3.9kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:20:02.059145: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:20:02.059252: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:20:02.060010: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:20:02.060085: Standing charge is set to 46.63p
2026-08-18 08:20:02.165093: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:20:02.165405: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:20:02.165675: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:20:02.166790: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:20:02.166964: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:20:02.172337: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:20:02.172745: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:20:02.216851: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:20:02.216980: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:20:02.218138: High export rate found rates in range 99p to -99p
2026-08-18 08:20:02.246504: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:20:02.246619: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:20:02.259356: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 36.56p, rate_forward 6.87p
2026-08-18 08:20:02.259721: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.28kWh, net cost 0.7p, import 0.7p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:20:02.312586: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:20:02.312707: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:20:02.394616: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:20:02.424885: Today's load divergence 92.17%, in-day adjustment 92.64%, damping 0.95x, yesterday 92.68% today 92.56% blend 65.28%
2026-08-18 08:20:02.424990: Today's predicted so far 5.04kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 5.04kWh forecast extra.
2026-08-18 08:20:02.425024: Today's actual load so far 3.87kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 08:20:02.458999: Inverter 0: Type SK Sunsynk
2026-08-18 08:20:02.459171: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:20:02.459428: Reserve min: 7%, battery_min: 7%
2026-08-18 08:20:02.459854: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:20:02.460283: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 329W, current battery voltage 51.2V, grid power -54W, load power 385W, PV Power 0W
2026-08-18 08:20:02.460478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:20:02.460587: Inverter 0 scheduled charge enable is False
2026-08-18 08:20:02.460633: Inverter 0 charge windows currently []
2026-08-18 08:20:02.460668: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:20:02.460819: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:20:02.460865: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:20:02.460913: Inverter 0 scheduled discharge enable is False
2026-08-18 08:20:02.461106: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:20:02.461156: Inverter 0 discharge windows currently []
2026-08-18 08:20:02.461188: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:20:02.461221: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:20:02.461247: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:20:02.517328: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:20:02.517426: Plan was last updated on 2026-08-18 08:10:00+01:00 and is now 10.0 minutes old
2026-08-18 08:20:02.517669: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:20:02.517719: Best export window [ ]
2026-08-18 08:20:02.518554: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:20:02.521806: Load divergence over 8.0 hours mean 410.94W, min 310.8W, max 693.0W, std dev 70.62W, divergence 8.59%
2026-08-18 08:20:02.541228: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:20:02.541337: LoadML is_calculating False
2026-08-18 08:20:02.541408: Creating pool of 12 processes to match your CPU count
2026-08-18 08:20:02.657911: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.2kWh, PV 0.0kWh
2026-08-18 08:20:02.774404: Battery has 15.58 hours left - now at 12.16kWh
2026-08-18 08:20:02.816110: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.58p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.46kWh, PV 0.0kWh
2026-08-18 08:20:02.896530: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.46kWh, PV 0.0kWh
2026-08-18 08:20:02.978122: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 330.7p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.2kWh, PV 0.0kWh
2026-08-18 08:20:02.978228: Saving plan best values to HA entities
2026-08-18 08:20:03.138015: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:20:03.143264: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:20:03.149347: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.14kWh, house 0.0kWh, export 0.0kWh, metric 330.7p, metric10 340.22p
2026-08-18 08:20:03.232394: Marginal costs baseline metric (no standing charge): 284.0658
2026-08-18 08:20:03.505327: Marginal energy costs matrix computed: min=20.82 max=32.13
2026-08-18 08:20:03.579551: Rate array import [{'start': 500, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 500, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:20:03.580364: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:20:03.580415: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:20:03.580438: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:20:03.580457: - For the next 48 hours there will be no solar generation.
2026-08-18 08:20:03.580475: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 08:20:03.580492: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:20:03.580515:
2026-08-18 08:20:03.638890: Plan calculation took 1.12 seconds
2026-08-18 08:20:03.642089: No high rate period found
2026-08-18 08:20:03.698405: Import threshold used for optimisation was 8.0p
2026-08-18 08:20:03.744446: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:20:03.749836: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:20:03.749976: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:20:03.750085: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:20:03.750326: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:20:03.750443: No export window planned
2026-08-18 08:20:03.750576: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:20:03.750611: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:20:03.750746: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:20:03.750919: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:20:03.750997: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:20:03.751065: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:20:03.751169: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751209: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751240: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751272: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751298: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751328: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751353: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751418: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751453: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751478: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751503: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751555: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751578: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:03.751603: Inverter 0 count register writes 0
2026-08-18 08:20:03.766156: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 08:20:03.766320: Recompute is saving previous plan...
2026-08-18 08:20:03.767221: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 08:20:03.767288: Best export window [ ]
2026-08-18 08:20:03.768158: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:20:03.771296: Load divergence over 8.0 hours mean 410.94W, min 310.8W, max 693.0W, std dev 70.62W, divergence 8.59%
2026-08-18 08:20:03.789052: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:20:03.789159: LoadML is_calculating False
2026-08-18 08:20:03.789218: Creating pool of 12 processes to match your CPU count
2026-08-18 08:20:03.871420: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 08:20:03.872190: Optimise levels pass started at 2026-08-18 08:20:03
2026-08-18 08:20:03.872237: Optimise all windows, total charge 24 export 1
2026-08-18 08:20:04.353746: >> Region optimisation pass width 960 gives best_metric 315.15p, best_cost 320.73p, best_cycle 38.58kWh, best_import 23.72kWh
2026-08-18 08:20:04.476789: >> Region optimisation pass width 480 gives best_metric 315.15p, best_cost 320.73p, best_cycle 38.58kWh, best_import 23.72kWh
2026-08-18 08:20:04.733521: >> Region optimisation pass width 240 gives best_metric 315.15p, best_cost 320.73p, best_cycle 38.58kWh, best_import 23.72kWh
2026-08-18 08:20:05.266554: >> Region optimisation pass width 120 gives best_metric 315.15p, best_cost 320.73p, best_cycle 38.58kWh, best_import 23.72kWh
2026-08-18 08:20:05.266991: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 08:20:05.267069: Optimise levels pass ended at 2026-08-18 08:20:05, duration 1.4 seconds tried 57 combinations
2026-08-18 08:20:05.267204: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 315.15p, best_keep 0kWh, best_cycle 38.58kWh, best_carbon 0kg, best_import 23.72kWh
2026-08-18 08:20:05.286582: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 08:20:07.946385: Tweak plan optimisation started metric 266.48p, cost 277.68p
2026-08-18 08:20:08.275613: Tweak optimisation finished metric 266.48p, cost 277.68p, metric_keep 0kWh, cycle 35.65kWh, carbon 0kg, import 18.34kWh, changed 8 window(s)
2026-08-18 08:20:08.291573: Swap charge optimisation started metric 266.48p, cost 277.68p, min_improvement_swap 0.1p
2026-08-18 08:20:08.958663: Swap charge optimisation finished metric 266.48p, cost 277.68p
2026-08-18 08:20:09.070790: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 264.95p -> 264.37p, plan now metric 267.37p, cost 273.53p, cycle 35.65kWh, import 17.82kWh
2026-08-18 08:20:09.080345: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:20:09.080697: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:20:09.080986: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:20:09.081139: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:20:09.112319: Previous plan best metric is 266.61 (cost 277.83) and new plan best metric is 266.48 (cost 277.68)
2026-08-18 08:20:09.112520: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 08:20:09.112633: Plan valid is now true after recompute was False
2026-08-18 08:20:09.140554: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 607.54p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.01kWh, PV 0.0kWh
2026-08-18 08:20:09.265711: Battery has 15.58 hours left - now at 12.16kWh
2026-08-18 08:20:09.311612: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 631.94p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.25kWh, PV 0.0kWh
2026-08-18 08:20:09.385414: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 333.03p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.25kWh, PV 0.0kWh
2026-08-18 08:20:09.464299: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 322.47p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.01kWh, PV 0.0kWh
2026-08-18 08:20:09.464387: Saving plan best values to HA entities
2026-08-18 08:20:09.604519: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:20:09.609341: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:20:09.614258: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.11kWh, house 0.0kWh, export 0.0kWh, metric 322.47p, metric10 333.03p
2026-08-18 08:20:09.675099: Marginal costs baseline metric (no standing charge): 275.8327
2026-08-18 08:20:09.913627: Marginal energy costs matrix computed: min=20.82 max=32.13
2026-08-18 08:20:09.973441: Rate array import [{'start': 500, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 500, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:20:09.974136: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:20:09.974177: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:20:09.974197: - The battery is currently at 76% and is in eco mode for the next 15 hours.
2026-08-18 08:20:09.974212: - For the next 48 hours there will be no solar generation.
2026-08-18 08:20:09.974240: - You will reach a minimum of 10% battery in 39 hours.
2026-08-18 08:20:09.974259: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:20:09.974277:
2026-08-18 08:20:10.032384: Plan calculation took 6.27 seconds
2026-08-18 08:20:10.032675: Inverter 0: Type SK Sunsynk
2026-08-18 08:20:10.032716: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:20:10.032899: Reserve min: 7%, battery_min: 7%
2026-08-18 08:20:10.032977: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:20:10.033293: Inverter 0 SoC: 12.16kW 76%, current charge rate 5000W, current discharge rate 5250W, current battery power 329W, current battery voltage 51.2V, grid power -54W, load power 385W, PV Power 0W
2026-08-18 08:20:10.033498: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:20:10.033607: Inverter 0 scheduled charge enable is False
2026-08-18 08:20:10.033645: Inverter 0 charge windows currently []
2026-08-18 08:20:10.033670: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:20:10.033762: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:20:10.033794: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:20:10.033824: Inverter 0 scheduled discharge enable is False
2026-08-18 08:20:10.033928: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:20:10.033972: Inverter 0 discharge windows currently []
2026-08-18 08:20:10.033992: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:20:10.034007: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:20:10.034021: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:20:10.087496: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 76%, target 100%
2026-08-18 08:20:10.087635: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:20:10.087705: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:20:10.087881: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:20:10.088030: No export window planned
2026-08-18 08:20:10.088134: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:20:10.088164: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:20:10.088295: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:20:10.088441: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:20:10.088484: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:20:10.088541: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:20:10.088649: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.088708: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.088759: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.088808: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.088844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.088888: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.088911: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.088975: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.089007: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.089029: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.089048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.089074: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.089094: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.089113: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:20:10.089130: Inverter 0 count register writes 0
2026-08-18 08:20:10.106419: Total inverter register writes now 867
2026-08-18 08:20:10.138357: Info: Completed run status Demand
2026-08-18 08:20:10.144203: Info: record_status Demand
2026-08-18 08:20:10.151137: Saved current settings to /config/predbat_config.json
2026-08-18 08:20:10.151572: Compare, best tariff: current metric 129.87p
2026-08-18 08:20:49.263543: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:20:49.263842: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:20:49.263924: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:20:49.264142: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:20:49.264193: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:20:49.264235: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:20:49.264275: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:22:49.475169: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:22:49.475470: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:22:49.475530: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:22:49.475739: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:22:49.475796: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:22:49.475830: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:22:49.475867: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:25:00.697939: --------------- PredBat - update at 2026-08-18 08:25:00+01:00 with clock skew 0 minutes, minutes now 505
2026-08-18 08:25:00.698809: Saved current settings to /config/predbat_config.json
2026-08-18 08:25:00.698970: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 60.0 minutes
2026-08-18 08:25:00.699075: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:25:00.699188: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:25:00.716534: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:25:00.716708: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:25:00.716896: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:25:00.717501: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:25:00.717631: Predbat mode is set to Control charge & discharge
2026-08-18 08:25:00.871034: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:25:00.871148: Using load_power data to fill gaps in load_today data
2026-08-18 08:25:01.609319: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:25:01.609466: Zero load period starting at 2026-08-17T10:54:00+0100 (1291 minutes) for 189 minutes with base value 208.6
2026-08-18 08:25:01.610302: Processing 721 30-minute periods for power integration
2026-08-18 08:25:01.758162: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:25:01.758263: Car charging hold False, threshold 6.0kWh
2026-08-18 08:25:01.758299: Current data so far today: load 3.9kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:25:01.769864: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:25:01.769969: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:25:01.770575: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:25:01.770634: Standing charge is set to 46.63p
2026-08-18 08:25:01.864499: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:25:01.864759: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:25:01.865010: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:25:01.865896: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:25:01.866024: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:25:01.870230: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:25:01.870482: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:25:01.905524: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:25:01.905622: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:25:01.906665: High export rate found rates in range 99p to -99p
2026-08-18 08:25:01.932755: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:25:01.933096: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:25:01.943758: Battery level now 12.16kWh, -1hr ago 12.48kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 36.56p, rate_forward 6.87p
2026-08-18 08:25:01.944188: Last hour: net energy 0.02kWh, import 0.02kWh, export 0.0kWh, car 0kWh, load 0.25kWh, net cost 0.56p, import 0.56p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:25:01.985288: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:25:01.985395: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:25:02.055969: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:25:02.083988: Today's load divergence 92.16%, in-day adjustment 92.63%, damping 0.95x, yesterday 92.68% today 92.55% blend 64.93%
2026-08-18 08:25:02.084080: Today's predicted so far 5.05kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 5.05kWh forecast extra.
2026-08-18 08:25:02.084133: Today's actual load so far 3.88kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 08:25:02.119149: Inverter 0: Type SK Sunsynk
2026-08-18 08:25:02.119240: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:25:02.119415: Reserve min: 7%, battery_min: 7%
2026-08-18 08:25:02.119484: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:25:02.119734: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 326W, current battery voltage 51.2V, grid power -55W, load power 386W, PV Power 0W
2026-08-18 08:25:02.119885: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:25:02.120087: Inverter 0 scheduled charge enable is False
2026-08-18 08:25:02.120136: Inverter 0 charge windows currently []
2026-08-18 08:25:02.120168: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:25:02.120309: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:25:02.120347: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:25:02.120384: Inverter 0 scheduled discharge enable is False
2026-08-18 08:25:02.120514: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:25:02.120550: Inverter 0 discharge windows currently []
2026-08-18 08:25:02.120572: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:25:02.120594: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:25:02.120611: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:25:02.176314: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:25:02.176425: Plan was last updated on 2026-08-18 08:20:00+01:00 and is now 5.0 minutes old
2026-08-18 08:25:02.176594: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:25:02.176627: Best export window [ ]
2026-08-18 08:25:02.177275: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:25:02.179748: Load divergence over 8.0 hours mean 409.52W, min 292.8W, max 660.0W, std dev 69.36W, divergence 8.47%
2026-08-18 08:25:02.195046: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:25:02.195260: LoadML is_calculating False
2026-08-18 08:25:02.195328: Creating pool of 12 processes to match your CPU count
2026-08-18 08:25:02.293911: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.77p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.09kWh, PV 0.0kWh
2026-08-18 08:25:02.402499: Battery has 15.42 hours left - now at 12.0kWh
2026-08-18 08:25:02.439050: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 08:25:02.510484: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 340.16p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 08:25:02.579584: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 327.51p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.09kWh, PV 0.0kWh
2026-08-18 08:25:02.579662: Saving plan best values to HA entities
2026-08-18 08:25:02.735667: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:25:02.740592: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 08:25:02.745965: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.74kWh, house 0.0kWh, export 0.0kWh, metric 327.51p, metric10 340.16p
2026-08-18 08:25:02.811515: Marginal costs baseline metric (no standing charge): 280.8801
2026-08-18 08:25:03.039823: Marginal energy costs matrix computed: min=24.19 max=32.56
2026-08-18 08:25:03.114646: Rate array import [{'start': 505, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 505, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:25:03.115265: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 08:25:03.115301: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:25:03.115320: - The battery is currently at 75% and is in eco mode for the next 15 hours.
2026-08-18 08:25:03.115335: - For the next 48 hours there will be no solar generation.
2026-08-18 08:25:03.115349: - You will reach a minimum of 10% battery in 15 hours.
2026-08-18 08:25:03.115362: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:25:03.115377:
2026-08-18 08:25:03.166932: Plan calculation took 0.99 seconds
2026-08-18 08:25:03.169668: No high rate period found
2026-08-18 08:25:03.212044: Import threshold used for optimisation was 8.0p
2026-08-18 08:25:03.265481: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:25:03.270092: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:25:03.270194: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:25:03.270280: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:25:03.270690: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:25:03.270784: No export window planned
2026-08-18 08:25:03.270890: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:25:03.271036: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:25:03.271213: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:25:03.271630: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:25:03.272163: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:25:03.272351: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:25:03.272541: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.272595: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.272629: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.272727: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.272784: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.272811: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.272837: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273000: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273049: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273075: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273235: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273278: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:25:03.273295: Inverter 0 count register writes 0
2026-08-18 08:25:03.287828: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 08:25:03.292002: Total inverter register writes now 867
2026-08-18 08:25:03.321493: Info: Completed run status Demand
2026-08-18 08:25:03.326446: Info: record_status Demand
2026-08-18 08:25:03.331791: Saved current settings to /config/predbat_config.json
2026-08-18 08:25:03.332089: Compare, best tariff: current metric 129.87p
2026-08-18 08:25:34.422608: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:25:34.422837: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:25:34.422884: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:25:34.423055: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:25:34.423102: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:25:34.423125: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:25:34.423143: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:27:34.631438: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:27:34.631640: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:27:34.631679: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:27:34.631790: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:27:34.631822: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:27:34.631839: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:27:34.631873: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:29:48.847704: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:29:48.847893: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:29:48.847992: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:29:48.848212: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:29:48.848260: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:29:48.848276: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:29:48.848291: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:30:00.922990: --------------- PredBat - update at 2026-08-18 08:30:00+01:00 with clock skew 0 minutes, minutes now 510
2026-08-18 08:30:00.923773: Saved current settings to /config/predbat_config.json
2026-08-18 08:30:00.923956: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 65.0 minutes
2026-08-18 08:30:00.924124: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:30:00.924245: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:30:00.940438: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:30:00.940542: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:30:00.940690: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:30:00.941213: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:30:00.941317: Predbat mode is set to Control charge & discharge
2026-08-18 08:30:01.127636: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:30:01.127752: Using load_power data to fill gaps in load_today data
2026-08-18 08:30:01.824827: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:30:01.825008: Zero load period starting at 2026-08-17T10:54:00+0100 (1296 minutes) for 189 minutes with base value 208.575
2026-08-18 08:30:01.825842: Processing 721 30-minute periods for power integration
2026-08-18 08:30:01.984203: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:30:01.984316: Car charging hold False, threshold 6.0kWh
2026-08-18 08:30:01.984354: Current data so far today: load 4.03kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:30:01.996499: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:30:01.996595: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:30:01.997527: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:30:01.997615: Standing charge is set to 46.63p
2026-08-18 08:30:02.128245: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:30:02.128587: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:30:02.128829: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:30:02.130038: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:30:02.130518: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:30:02.135747: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:30:02.136274: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:30:02.180061: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:30:02.180173: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:30:02.181465: High export rate found rates in range 99p to -99p
2026-08-18 08:30:02.210980: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:30:02.211137: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:30:02.224650: Battery level now 12.0kWh, -1hr ago 12.32kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 35.46p, rate_forward 6.87p
2026-08-18 08:30:02.225118: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.42p, import 0.42p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:30:02.276124: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:30:02.276251: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:30:02.356583: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:30:02.387094: Today's load divergence 92.45%, in-day adjustment 92.73%, damping 0.95x, yesterday 92.68% today 92.83% blend 64.58%
2026-08-18 08:30:02.387183: Today's predicted so far 5.15kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 5.15kWh forecast extra.
2026-08-18 08:30:02.387215: Today's actual load so far 4.02kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 08:30:02.423153: Inverter 0: Type SK Sunsynk
2026-08-18 08:30:02.423237: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:30:02.423446: Reserve min: 7%, battery_min: 7%
2026-08-18 08:30:02.423543: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:30:02.423852: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 323W, current battery voltage 51.2V, grid power -55W, load power 384W, PV Power 0W
2026-08-18 08:30:02.424079: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:30:02.424190: Inverter 0 scheduled charge enable is False
2026-08-18 08:30:02.424245: Inverter 0 charge windows currently []
2026-08-18 08:30:02.424294: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:30:02.424453: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:30:02.424495: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:30:02.424544: Inverter 0 scheduled discharge enable is False
2026-08-18 08:30:02.424718: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:30:02.424760: Inverter 0 discharge windows currently []
2026-08-18 08:30:02.424786: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:30:02.424827: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:30:02.424868: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:30:02.480982: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:30:02.481084: Plan was last updated on 2026-08-18 08:20:00+01:00 and is now 10.0 minutes old
2026-08-18 08:30:02.481285: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:30:02.481346: Best export window [ ]
2026-08-18 08:30:02.482195: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:30:02.485328: Load divergence over 8.0 hours mean 410.98W, min 281.4W, max 651.6W, std dev 61.15W, divergence 7.44%
2026-08-18 08:30:02.503996: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:30:02.504147: LoadML is_calculating False
2026-08-18 08:30:02.504237: Creating pool of 12 processes to match your CPU count
2026-08-18 08:30:02.616201: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 610.02p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.28kWh, PV 0.0kWh
2026-08-18 08:30:02.733726: Battery has 15.42 hours left - now at 12.0kWh
2026-08-18 08:30:02.777842: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 635.74p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.53kWh, PV 0.0kWh
2026-08-18 08:30:02.853241: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 342.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.53kWh, PV 0.0kWh
2026-08-18 08:30:02.936110: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 331.47p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 30.28kWh, PV 0.0kWh
2026-08-18 08:30:02.936184: Saving plan best values to HA entities
2026-08-18 08:30:03.083075: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:30:03.088133: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 08:30:03.092874: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.23kWh, house 0.0kWh, export 0.0kWh, metric 331.47p, metric10 342.59p
2026-08-18 08:30:03.168263: Marginal costs baseline metric (no standing charge): 284.8321
2026-08-18 08:30:03.433629: Marginal energy costs matrix computed: min=23.57 max=32.48
2026-08-18 08:30:03.504326: Rate array import [{'start': 510, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 510, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:30:03.504927: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 08:30:03.504976: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:30:03.504996: - The battery is currently at 75% and is in eco mode for the next 15 hours.
2026-08-18 08:30:03.505012: - For the next 48 hours there will be no solar generation.
2026-08-18 08:30:03.505026: - You will reach a minimum of 10% battery in 14 hours.
2026-08-18 08:30:03.505040: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:30:03.505054:
2026-08-18 08:30:03.567611: Plan calculation took 1.09 seconds
2026-08-18 08:30:03.570404: No high rate period found
2026-08-18 08:30:03.620498: Import threshold used for optimisation was 8.0p
2026-08-18 08:30:03.669123: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:30:03.674735: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:30:03.674862: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:30:03.674982: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:30:03.675229: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:30:03.675324: No export window planned
2026-08-18 08:30:03.675448: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:30:03.675484: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:30:03.675613: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:30:03.675788: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:30:03.675849: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:30:03.675970: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:30:03.676088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676130: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676161: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676195: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676220: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676250: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676275: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676340: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676394: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676422: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676479: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676504: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:03.676530: Inverter 0 count register writes 0
2026-08-18 08:30:03.692334: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 08:30:03.692568: Recompute is saving previous plan...
2026-08-18 08:30:03.694084: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 08:30:03.694155: Best export window [ ]
2026-08-18 08:30:03.695360: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:30:03.699330: Load divergence over 8.0 hours mean 410.98W, min 281.4W, max 651.6W, std dev 61.15W, divergence 7.44%
2026-08-18 08:30:03.714456: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:30:03.714553: LoadML is_calculating False
2026-08-18 08:30:03.714607: Creating pool of 12 processes to match your CPU count
2026-08-18 08:30:03.795425: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 08:30:03.796707: Optimise levels pass started at 2026-08-18 08:30:03
2026-08-18 08:30:03.796785: Optimise all windows, total charge 24 export 1
2026-08-18 08:30:04.608071: >> Region optimisation pass width 960 gives best_metric 316.97p, best_cost 324.14p, best_cycle 39.48kWh, best_import 24.15kWh
2026-08-18 08:30:04.750789: >> Region optimisation pass width 480 gives best_metric 316.97p, best_cost 324.14p, best_cycle 39.48kWh, best_import 24.15kWh
2026-08-18 08:30:05.033376: >> Region optimisation pass width 240 gives best_metric 316.97p, best_cost 324.14p, best_cycle 39.48kWh, best_import 24.15kWh
2026-08-18 08:30:05.534303: >> Region optimisation pass width 120 gives best_metric 316.97p, best_cost 324.14p, best_cycle 39.48kWh, best_import 24.15kWh
2026-08-18 08:30:05.534531: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 08:30:05.534604: Optimise levels pass ended at 2026-08-18 08:30:05, duration 1.7 seconds tried 67 combinations
2026-08-18 08:30:05.534677: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 316.97p, best_keep 0kWh, best_cycle 39.48kWh, best_carbon 0kg, best_import 24.15kWh
2026-08-18 08:30:05.553655: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [16.0, 16.0, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 08:30:08.407438: Tweak plan optimisation started metric 267.68p, cost 278.67p
2026-08-18 08:30:08.761095: Tweak optimisation finished metric 267.68p, cost 278.67p, metric_keep 0kWh, cycle 35.74kWh, carbon 0kg, import 18.46kWh, changed 8 window(s)
2026-08-18 08:30:08.780585: Swap charge optimisation started metric 267.68p, cost 278.67p, min_improvement_swap 0.1p
2026-08-18 08:30:09.450136: Swap charge optimisation finished metric 267.68p, cost 278.67p
2026-08-18 08:30:09.564105: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 265.98p -> 265.82p, plan now metric 268.13p, cost 276.63p, cycle 36.0kWh, import 18.21kWh
2026-08-18 08:30:09.574828: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:30:09.575132: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:30:09.575338: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:30:09.575479: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:30:09.605481: Previous plan best metric is 267.75 (cost 278.74) and new plan best metric is 267.68 (cost 278.67)
2026-08-18 08:30:09.605662: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 08:30:09.605784: Plan valid is now true after recompute was False
2026-08-18 08:30:09.629250: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 608.56p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.1kWh, PV 0.0kWh
2026-08-18 08:30:09.728703: Battery has 15.42 hours left - now at 12.0kWh
2026-08-18 08:30:09.770781: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 634.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 08:30:09.854111: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 335.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.34kWh, PV 0.0kWh
2026-08-18 08:30:09.934495: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 323.34p, metric_keep 0kWh, min_soc 1.56kWh @ 08-18 23:25:00, load 30.1kWh, PV 0.0kWh
2026-08-18 08:30:09.934579: Saving plan best values to HA entities
2026-08-18 08:30:10.078730: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:30:10.083851: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 08:30:10.090133: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.22kWh, house 0.0kWh, export 0.0kWh, metric 323.34p, metric10 335.51p
2026-08-18 08:30:10.169540: Marginal costs baseline metric (no standing charge): 276.7078
2026-08-18 08:30:10.457539: Marginal energy costs matrix computed: min=23.57 max=32.48
2026-08-18 08:30:10.617783: Rate array import [{'start': 510, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 510, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:30:10.618591: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 08:30:10.618636: - Import rates are very expensive (33.8p) for the next 15 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:30:10.618658: - The battery is currently at 75% and is in eco mode for the next 15 hours.
2026-08-18 08:30:10.618677: - For the next 48 hours there will be no solar generation.
2026-08-18 08:30:10.618698: - You will reach a minimum of 10% battery in 14 hours.
2026-08-18 08:30:10.618715: - Your next charge slot will be in 15 hours where import rates will be cheap (8.0p).
2026-08-18 08:30:10.618750:
2026-08-18 08:30:10.680402: Plan calculation took 6.99 seconds
2026-08-18 08:30:10.680693: Inverter 0: Type SK Sunsynk
2026-08-18 08:30:10.680740: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:30:10.680993: Reserve min: 7%, battery_min: 7%
2026-08-18 08:30:10.681076: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:30:10.681434: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 321W, current battery voltage 51.2V, grid power -55W, load power 383W, PV Power 0W
2026-08-18 08:30:10.681665: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:30:10.681766: Inverter 0 scheduled charge enable is False
2026-08-18 08:30:10.681801: Inverter 0 charge windows currently []
2026-08-18 08:30:10.681832: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:30:10.681951: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:30:10.682007: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:30:10.682046: Inverter 0 scheduled discharge enable is False
2026-08-18 08:30:10.682180: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:30:10.682218: Inverter 0 discharge windows currently []
2026-08-18 08:30:10.682241: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:30:10.682262: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:30:10.682279: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:30:10.730014: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:30:10.730136: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:30:10.730205: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:30:10.730394: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:30:10.730469: No export window planned
2026-08-18 08:30:10.730588: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:30:10.730622: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:30:10.730774: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:30:10.730938: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:30:10.731030: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:30:10.731087: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:30:10.731162: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731217: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731239: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731259: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731285: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731354: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731421: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731441: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731461: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:30:10.731497: Inverter 0 count register writes 0
2026-08-18 08:30:10.748789: Total inverter register writes now 867
2026-08-18 08:30:10.775697: Info: Completed run status Demand
2026-08-18 08:30:10.780956: Info: record_status Demand
2026-08-18 08:30:10.786282: Saved current settings to /config/predbat_config.json
2026-08-18 08:30:10.786568: Compare, best tariff: current metric 129.87p
2026-08-18 08:30:48.893190: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:30:48.893387: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:30:48.893416: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:30:48.893521: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:30:48.893552: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:30:48.893570: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:30:48.893584: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:32:48.054373: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 08:32:48.974521: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:32:48.974671: Zero load period starting at 2026-08-17T10:54:00+0100 (1296 minutes) for 189 minutes with base value 400.075
2026-08-18 08:32:48.975539: Processing 1345 30-minute periods for power integration
2026-08-18 08:32:49.061042: ML Component: Car charging hold False, car energy reported load False
2026-08-18 08:32:49.101258: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:32:49.106554: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:32:49.106606: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:32:49.106727: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:32:49.106766: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:32:49.106787: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:32:49.111915: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:32:49.165381: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:32:49.264097: ML Temperature data points: 49891
2026-08-18 08:32:49.535664: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 08:32:49.573965: ML Component: Data fetch completed, load data age 59.0 days, 17213 data points
2026-08-18 08:32:49.575314: ML Component: No training needed, model age is 0.96 hours
2026-08-18 08:32:49.575388: ML Component: Waiting for current prediction cycle to complete before running ML work
2026-08-18 08:32:50.076215: ML Component: Generating predictions load data age 59.0 days, 17213 data points
2026-08-18 08:32:50.191640: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0287 max_dow {0: 0.08580555561814043, 1: 0.09143333321428962, 2: 0.10736562459506094, 3: 0.10235625034738333, 4: 0.1370843753574416, 5: 0.09880833375371165, 6: 0.10414166664199698}
2026-08-18 08:32:50.585804: ML Component: Generated 576 predictions (total 28.19 kWh over 48h)
2026-08-18 08:32:50.620174: ML Component: Prediction cycle completed
2026-08-18 08:32:50.728366: ML Component: Saved 17213 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 08:35:00.757198: --------------- PredBat - update at 2026-08-18 08:35:00+01:00 with clock skew 0 minutes, minutes now 515
2026-08-18 08:35:00.758009: Saved current settings to /config/predbat_config.json
2026-08-18 08:35:00.758151: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 70.0 minutes
2026-08-18 08:35:00.758281: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:35:00.758393: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:35:00.776050: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:35:00.776164: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:35:00.776326: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:35:00.776946: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:35:00.777092: Predbat mode is set to Control charge & discharge
2026-08-18 08:35:00.952949: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:35:00.953071: Using load_power data to fill gaps in load_today data
2026-08-18 08:35:01.784856: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:35:01.785047: Zero load period starting at 2026-08-17T10:54:00+0100 (1301 minutes) for 189 minutes with base value 208.55
2026-08-18 08:35:01.786084: Processing 721 30-minute periods for power integration
2026-08-18 08:35:01.978498: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:35:01.978628: Car charging hold False, threshold 6.0kWh
2026-08-18 08:35:01.978672: Current data so far today: load 4.05kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:35:01.994068: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:35:01.994178: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:35:01.994944: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:35:01.995017: Standing charge is set to 46.63p
2026-08-18 08:35:02.105232: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:35:02.105466: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:35:02.105648: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:35:02.106758: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:35:02.106887: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:35:02.113031: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:35:02.113348: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:35:02.156471: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:35:02.156588: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:35:02.157840: High export rate found rates in range 99p to -99p
2026-08-18 08:35:02.185436: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:35:02.185535: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:35:02.197074: Battery level now 12.0kWh, -1hr ago 12.32kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 35.46p, rate_forward 6.87p
2026-08-18 08:35:02.197443: Last hour: net energy 0.01kWh, import 0.01kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.28p, import 0.28p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:35:02.247273: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:35:02.247395: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:35:02.332731: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:35:02.363803: Today's load divergence 92.22%, in-day adjustment 92.65%, damping 0.95x, yesterday 92.68% today 92.61% blend 64.24%
2026-08-18 08:35:02.363941: Today's predicted so far 5.23kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 5.23kWh forecast extra.
2026-08-18 08:35:02.364020: Today's actual load so far 4.06kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 08:35:02.399158: Inverter 0: Type SK Sunsynk
2026-08-18 08:35:02.399234: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:35:02.399450: Reserve min: 7%, battery_min: 7%
2026-08-18 08:35:02.399526: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:35:02.399774: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 298W, current battery voltage 51.2V, grid power -55W, load power 355W, PV Power 0W
2026-08-18 08:35:02.399996: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:35:02.400093: Inverter 0 scheduled charge enable is False
2026-08-18 08:35:02.400122: Inverter 0 charge windows currently []
2026-08-18 08:35:02.400174: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:35:02.400293: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:35:02.400329: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:35:02.400365: Inverter 0 scheduled discharge enable is False
2026-08-18 08:35:02.400488: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:35:02.400524: Inverter 0 discharge windows currently []
2026-08-18 08:35:02.400547: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:35:02.400566: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:35:02.400583: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:35:02.461782: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:35:02.461880: Plan was last updated on 2026-08-18 08:30:00+01:00 and is now 5.0 minutes old
2026-08-18 08:35:02.462098: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:35:02.462139: Best export window [ ]
2026-08-18 08:35:02.462973: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:35:02.466114: Load divergence over 8.0 hours mean 412.5W, min 274.8W, max 675.0W, std dev 64.95W, divergence 7.87%
2026-08-18 08:35:02.484522: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:35:02.484618: LoadML is_calculating False
2026-08-18 08:35:02.484674: Creating pool of 12 processes to match your CPU count
2026-08-18 08:35:02.603820: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.19kWh, PV 0.0kWh
2026-08-18 08:35:02.728601: Battery has 15.42 hours left - now at 12.0kWh
2026-08-18 08:35:02.772428: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.43kWh, PV 0.0kWh
2026-08-18 08:35:02.853571: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.43kWh, PV 0.0kWh
2026-08-18 08:35:02.921521: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 327.17p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.19kWh, PV 0.0kWh
2026-08-18 08:35:02.921598: Saving plan best values to HA entities
2026-08-18 08:35:03.067693: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:35:03.075001: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 08:35:03.081059: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.7kWh, house 0.0kWh, export 0.0kWh, metric 327.17p, metric10 337.83p
2026-08-18 08:35:03.148388: Marginal costs baseline metric (no standing charge): 280.5404
2026-08-18 08:35:03.390125: Marginal energy costs matrix computed: min=22.62 max=32.36
2026-08-18 08:35:03.456352: Rate array import [{'start': 515, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 515, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:35:03.457025: - Your estimated bill for today is £1.54 and tomorrow is £1.92
2026-08-18 08:35:03.457073: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:35:03.457133: - The battery is currently at 75% and is in eco mode for the next 14 hours.
2026-08-18 08:35:03.457172: - For the next 48 hours there will be no solar generation.
2026-08-18 08:35:03.457191: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 08:35:03.457211: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 08:35:03.457244:
2026-08-18 08:35:03.512426: Plan calculation took 1.05 seconds
2026-08-18 08:35:03.515869: No high rate period found
2026-08-18 08:35:03.569048: Import threshold used for optimisation was 8.0p
2026-08-18 08:35:03.617438: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:35:03.624179: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:35:03.624321: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:35:03.624424: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:35:03.624683: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:35:03.624779: No export window planned
2026-08-18 08:35:03.624905: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:35:03.624959: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:35:03.625104: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:35:03.625286: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:35:03.625355: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:35:03.625426: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:35:03.625534: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625582: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625614: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625646: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625673: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625697: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625792: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625859: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625897: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625944: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625972: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.625997: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.626021: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:35:03.626048: Inverter 0 count register writes 0
2026-08-18 08:35:03.641631: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 08:35:03.646701: Total inverter register writes now 867
2026-08-18 08:35:03.678934: Info: Completed run status Demand
2026-08-18 08:35:03.684633: Info: record_status Demand
2026-08-18 08:35:03.690783: Saved current settings to /config/predbat_config.json
2026-08-18 08:35:03.691172: Compare, best tariff: current metric 129.87p
2026-08-18 08:35:33.793934: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:35:33.794226: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:35:33.794279: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:35:33.794461: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:35:33.794509: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:35:33.794538: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:35:33.794577: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:37:34.005485: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:37:34.005698: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:37:34.005739: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:37:34.005866: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:37:34.005919: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:37:34.005943: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:37:34.005961: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:39:34.212241: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:39:34.212503: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:39:34.212574: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:39:34.212769: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:39:34.212813: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:39:34.212835: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:39:34.212853: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:40:00.316028: --------------- PredBat - update at 2026-08-18 08:40:00+01:00 with clock skew 0 minutes, minutes now 520
2026-08-18 08:40:00.316909: Saved current settings to /config/predbat_config.json
2026-08-18 08:40:00.317027: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 75.0 minutes
2026-08-18 08:40:00.317121: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:40:00.317248: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:40:00.335198: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:40:00.335321: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:40:00.335480: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:40:00.336095: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:40:00.336427: Predbat mode is set to Control charge & discharge
2026-08-18 08:40:00.521943: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:40:00.522071: Using load_power data to fill gaps in load_today data
2026-08-18 08:40:01.282137: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:40:01.282293: Zero load period starting at 2026-08-17T10:54:00+0100 (1306 minutes) for 189 minutes with base value 208.525
2026-08-18 08:40:01.283119: Processing 721 30-minute periods for power integration
2026-08-18 08:40:01.435376: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:40:01.435479: Car charging hold False, threshold 6.0kWh
2026-08-18 08:40:01.435514: Current data so far today: load 4.15kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:40:01.447343: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:40:01.447429: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:40:01.448084: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:40:01.448157: Standing charge is set to 46.63p
2026-08-18 08:40:01.538210: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:40:01.538406: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:40:01.538556: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:40:01.539413: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:40:01.539497: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:40:01.543986: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:40:01.544376: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:40:01.578534: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:40:01.578642: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:40:01.579745: High export rate found rates in range 99p to -99p
2026-08-18 08:40:01.603330: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:40:01.603420: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:40:01.614676: Battery level now 12.0kWh, -1hr ago 12.32kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 35.46p, rate_forward 6.87p
2026-08-18 08:40:01.615146: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.43kWh, net cost 0.14p, import 0.14p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:40:01.666218: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:40:01.666343: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:40:01.749284: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:40:01.779740: Today's load divergence 92.77%, in-day adjustment 92.84%, damping 0.95x, yesterday 92.68% today 93.13% blend 63.89%
2026-08-18 08:40:01.779845: Today's predicted so far 5.22kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 5.22kWh forecast extra.
2026-08-18 08:40:01.779931: Today's actual load so far 4.13kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 08:40:01.813652: Inverter 0: Type SK Sunsynk
2026-08-18 08:40:01.813739: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:40:01.813956: Reserve min: 7%, battery_min: 7%
2026-08-18 08:40:01.814058: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:40:01.814349: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 297W, current battery voltage 51.2V, grid power -55W, load power 355W, PV Power 0W
2026-08-18 08:40:01.814500: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:40:01.814583: Inverter 0 scheduled charge enable is False
2026-08-18 08:40:01.814637: Inverter 0 charge windows currently []
2026-08-18 08:40:01.814678: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:40:01.814791: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:40:01.814826: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:40:01.814862: Inverter 0 scheduled discharge enable is False
2026-08-18 08:40:01.814999: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:40:01.815029: Inverter 0 discharge windows currently []
2026-08-18 08:40:01.815050: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:40:01.815069: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:40:01.815096: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:40:01.871020: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:40:01.871118: Plan was last updated on 2026-08-18 08:30:00+01:00 and is now 10.0 minutes old
2026-08-18 08:40:01.871326: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:40:01.871366: Best export window [ ]
2026-08-18 08:40:01.872243: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:40:01.875008: Load divergence over 8.0 hours mean 413.99W, min 287.4W, max 712.8W, std dev 66.59W, divergence 8.04%
2026-08-18 08:40:01.891722: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:40:01.891815: LoadML is_calculating False
2026-08-18 08:40:01.891868: Creating pool of 12 processes to match your CPU count
2026-08-18 08:40:01.998607: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.64p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.37kWh, PV 0.0kWh
2026-08-18 08:40:02.108643: Battery has 15.25 hours left - now at 12.0kWh
2026-08-18 08:40:02.154242: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.07p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.62kWh, PV 0.0kWh
2026-08-18 08:40:02.229365: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.83p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.62kWh, PV 0.0kWh
2026-08-18 08:40:02.294156: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 331.17p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.37kWh, PV 0.0kWh
2026-08-18 08:40:02.294229: Saving plan best values to HA entities
2026-08-18 08:40:02.444560: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:40:02.449257: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:40:02.453788: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.2kWh, house 0.0kWh, export 0.0kWh, metric 331.17p, metric10 340.83p
2026-08-18 08:40:02.528726: Marginal costs baseline metric (no standing charge): 284.5393
2026-08-18 08:40:02.769582: Marginal energy costs matrix computed: min=22.33 max=32.32
2026-08-18 08:40:02.838329: Rate array import [{'start': 520, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 520, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:40:02.838962: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:40:02.839003: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:40:02.839021: - The battery is currently at 75% and is in eco mode for the next 14 hours.
2026-08-18 08:40:02.839036: - For the next 48 hours there will be no solar generation.
2026-08-18 08:40:02.839049: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 08:40:02.839063: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 08:40:02.839077:
2026-08-18 08:40:02.893828: Plan calculation took 1.02 seconds
2026-08-18 08:40:02.897214: No high rate period found
2026-08-18 08:40:02.944416: Import threshold used for optimisation was 8.0p
2026-08-18 08:40:02.988954: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:40:02.994248: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:40:02.994411: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:40:02.994678: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:40:02.995005: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:40:02.995122: No export window planned
2026-08-18 08:40:02.995264: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:40:02.995300: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:40:02.995465: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:40:02.995634: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:40:02.995695: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:40:02.995762: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:40:02.995857: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.995950: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996007: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996038: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996063: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996112: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996176: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996214: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996240: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996289: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996312: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996336: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:02.996356: Inverter 0 count register writes 0
2026-08-18 08:40:03.009414: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 08:40:03.009529: Recompute is saving previous plan...
2026-08-18 08:40:03.010250: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 08:40:03.010294: Best export window [ ]
2026-08-18 08:40:03.010971: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:40:03.013515: Load divergence over 8.0 hours mean 413.99W, min 287.4W, max 712.8W, std dev 66.59W, divergence 8.04%
2026-08-18 08:40:03.028659: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:40:03.028772: LoadML is_calculating False
2026-08-18 08:40:03.028830: Creating pool of 12 processes to match your CPU count
2026-08-18 08:40:03.102138: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 08:40:03.103066: Optimise levels pass started at 2026-08-18 08:40:03
2026-08-18 08:40:03.103120: Optimise all windows, total charge 24 export 1
2026-08-18 08:40:03.575934: >> Region optimisation pass width 960 gives best_metric 316.92p, best_cost 323.39p, best_cycle 38.93kWh, best_import 24.05kWh
2026-08-18 08:40:03.697096: >> Region optimisation pass width 480 gives best_metric 316.92p, best_cost 323.39p, best_cycle 38.93kWh, best_import 24.05kWh
2026-08-18 08:40:03.919008: >> Region optimisation pass width 240 gives best_metric 316.92p, best_cost 323.39p, best_cycle 38.93kWh, best_import 24.05kWh
2026-08-18 08:40:04.407451: >> Region optimisation pass width 120 gives best_metric 316.92p, best_cost 323.39p, best_cycle 38.93kWh, best_import 24.05kWh
2026-08-18 08:40:04.407638: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 08:40:04.407726: Optimise levels pass ended at 2026-08-18 08:40:04, duration 1.3 seconds tried 57 combinations
2026-08-18 08:40:04.407803: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 316.92p, best_keep 0kWh, best_cycle 38.93kWh, best_carbon 0kg, best_import 24.05kWh
2026-08-18 08:40:04.426663: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 08:40:06.991821: Tweak plan optimisation started metric 267.02p, cost 278.22p
2026-08-18 08:40:07.328165: Tweak optimisation finished metric 267.02p, cost 278.22p, metric_keep 0kWh, cycle 35.62kWh, carbon 0kg, import 18.41kWh, changed 8 window(s)
2026-08-18 08:40:07.348502: Swap charge optimisation started metric 267.02p, cost 278.22p, min_improvement_swap 0.1p
2026-08-18 08:40:08.072239: Swap charge optimisation finished metric 267.02p, cost 278.22p
2026-08-18 08:40:08.196364: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 265.5p -> 264.92p, plan now metric 267.93p, cost 274.06p, cycle 35.63kWh, import 17.89kWh
2026-08-18 08:40:08.204798: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:40:08.205109: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:40:08.205289: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:40:08.205433: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:40:08.236024: Previous plan best metric is 267.09 (cost 278.3) and new plan best metric is 267.02 (cost 278.22)
2026-08-18 08:40:08.236203: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 08:40:08.236311: Plan valid is now true after recompute was False
2026-08-18 08:40:08.260425: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 608.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.17kWh, PV 0.0kWh
2026-08-18 08:40:08.541214: Battery has 15.25 hours left - now at 12.0kWh
2026-08-18 08:40:08.587444: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.4p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.41kWh, PV 0.0kWh
2026-08-18 08:40:08.654798: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 333.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.41kWh, PV 0.0kWh
2026-08-18 08:40:08.725612: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 322.92p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.17kWh, PV 0.0kWh
2026-08-18 08:40:08.725697: Saving plan best values to HA entities
2026-08-18 08:40:08.861516: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:40:08.866926: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:40:08.872171: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.16kWh, house 0.0kWh, export 0.0kWh, metric 322.92p, metric10 333.61p
2026-08-18 08:40:08.941616: Marginal costs baseline metric (no standing charge): 276.2854
2026-08-18 08:40:09.195468: Marginal energy costs matrix computed: min=22.33 max=32.32
2026-08-18 08:40:09.267035: Rate array import [{'start': 520, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 520, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:40:09.267769: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:40:09.267811: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:40:09.267833: - The battery is currently at 75% and is in eco mode for the next 14 hours.
2026-08-18 08:40:09.267852: - For the next 48 hours there will be no solar generation.
2026-08-18 08:40:09.267870: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 08:40:09.267925: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 08:40:09.267982:
2026-08-18 08:40:09.326616: Plan calculation took 6.32 seconds
2026-08-18 08:40:09.326938: Inverter 0: Type SK Sunsynk
2026-08-18 08:40:09.326990: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:40:09.327218: Reserve min: 7%, battery_min: 7%
2026-08-18 08:40:09.327313: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:40:09.327662: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 297W, current battery voltage 51.2V, grid power -55W, load power 355W, PV Power 0W
2026-08-18 08:40:09.327946: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:40:09.328079: Inverter 0 scheduled charge enable is False
2026-08-18 08:40:09.328127: Inverter 0 charge windows currently []
2026-08-18 08:40:09.328171: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:40:09.328317: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:40:09.328358: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:40:09.328398: Inverter 0 scheduled discharge enable is False
2026-08-18 08:40:09.328548: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:40:09.328584: Inverter 0 discharge windows currently []
2026-08-18 08:40:09.328603: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:40:09.328636: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:40:09.328665: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:40:09.379081: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:40:09.379274: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:40:09.379389: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:40:09.379718: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:40:09.379848: No export window planned
2026-08-18 08:40:09.380026: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:40:09.380069: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:40:09.380212: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:40:09.380369: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:40:09.380420: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:40:09.380486: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:40:09.380573: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380613: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380644: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380669: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380701: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380726: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380782: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380843: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380877: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380924: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380959: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.380984: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.381010: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.381038: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:40:09.381059: Inverter 0 count register writes 0
2026-08-18 08:40:09.406102: Total inverter register writes now 867
2026-08-18 08:40:09.438373: Info: Completed run status Demand
2026-08-18 08:40:09.445171: Info: record_status Demand
2026-08-18 08:40:09.451573: Saved current settings to /config/predbat_config.json
2026-08-18 08:40:09.451880: Compare, best tariff: current metric 129.87p
2026-08-18 08:40:49.563429: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:40:49.563659: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:40:49.563693: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:40:49.563841: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:40:49.563879: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:40:49.563974: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:40:49.564011: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:43:03.793032: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:43:03.793256: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:43:03.793325: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:43:03.793472: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:43:03.793510: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:43:03.793533: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:43:03.793556: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:45:00.000511: --------------- PredBat - update at 2026-08-18 08:45:00+01:00 with clock skew 0 minutes, minutes now 525
2026-08-18 08:45:00.001271: Saved current settings to /config/predbat_config.json
2026-08-18 08:45:00.001473: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 80.0 minutes
2026-08-18 08:45:00.001583: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:45:00.001700: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:45:00.033435: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:45:00.033551: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:45:00.033712: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:45:00.034399: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:45:00.034541: Predbat mode is set to Control charge & discharge
2026-08-18 08:45:00.216010: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:45:00.216169: Using load_power data to fill gaps in load_today data
2026-08-18 08:45:00.933281: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:45:00.933458: Zero load period starting at 2026-08-17T10:54:00+0100 (1311 minutes) for 189 minutes with base value 208.5
2026-08-18 08:45:00.934814: Processing 721 30-minute periods for power integration
2026-08-18 08:45:01.105839: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:45:01.105961: Car charging hold False, threshold 6.0kWh
2026-08-18 08:45:01.105997: Current data so far today: load 4.2kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:45:01.117689: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:45:01.117773: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:45:01.118409: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:45:01.118467: Standing charge is set to 46.63p
2026-08-18 08:45:01.212347: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:45:01.212542: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:45:01.212713: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:45:01.213667: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:45:01.213751: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:45:01.218064: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:45:01.218472: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:45:01.253962: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:45:01.254086: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:45:01.255380: High export rate found rates in range 99p to -99p
2026-08-18 08:45:01.278912: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:45:01.279047: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:45:01.289256: Battery level now 12.0kWh, -1hr ago 12.32kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 35.46p, rate_forward 6.87p
2026-08-18 08:45:01.289538: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:45:01.331312: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:45:01.331415: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:45:01.395038: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:45:01.419682: Today's load divergence 93.06%, in-day adjustment 92.95%, damping 0.95x, yesterday 92.68% today 93.41% blend 63.54%
2026-08-18 08:45:01.419753: Today's predicted so far 5.21kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 5.21kWh forecast extra.
2026-08-18 08:45:01.419777: Today's actual load so far 4.16kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 08:45:01.449392: Inverter 0: Type SK Sunsynk
2026-08-18 08:45:01.449457: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:45:01.449599: Reserve min: 7%, battery_min: 7%
2026-08-18 08:45:01.449655: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:45:01.449863: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 292W, current battery voltage 51.2V, grid power -54W, load power 352W, PV Power 0W
2026-08-18 08:45:01.450002: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:45:01.450072: Inverter 0 scheduled charge enable is False
2026-08-18 08:45:01.450097: Inverter 0 charge windows currently []
2026-08-18 08:45:01.450119: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:45:01.450206: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:45:01.450236: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:45:01.450265: Inverter 0 scheduled discharge enable is False
2026-08-18 08:45:01.450362: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:45:01.450392: Inverter 0 discharge windows currently []
2026-08-18 08:45:01.450410: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:45:01.450425: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:45:01.450441: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:45:01.502129: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:45:01.502209: Plan was last updated on 2026-08-18 08:40:00+01:00 and is now 5.0 minutes old
2026-08-18 08:45:01.502371: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:45:01.502431: Best export window [ ]
2026-08-18 08:45:01.503076: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:45:01.505628: Load divergence over 8.0 hours mean 415.48W, min 300.0W, max 753.0W, std dev 79.32W, divergence 9.55%
2026-08-18 08:45:01.520940: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:45:01.521035: LoadML is_calculating False
2026-08-18 08:45:01.521089: Creating pool of 12 processes to match your CPU count
2026-08-18 08:45:01.620909: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 608.86p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.31kWh, PV 0.0kWh
2026-08-18 08:45:01.723539: Battery has 15.17 hours left - now at 12.0kWh
2026-08-18 08:45:01.769140: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.25p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.55kWh, PV 0.0kWh
2026-08-18 08:45:01.853251: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.22p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.55kWh, PV 0.0kWh
2026-08-18 08:45:01.929136: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 327.02p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-18 08:45:01.929238: Saving plan best values to HA entities
2026-08-18 08:45:02.077598: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:45:02.082306: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:45:02.087053: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.68kWh, house 0kWh, export 0.0kWh, metric 327.02p, metric10 337.22p
2026-08-18 08:45:02.160148: Marginal costs baseline metric (no standing charge): 280.3877
2026-08-18 08:45:02.435544: Marginal energy costs matrix computed: min=21.89 max=32.27
2026-08-18 08:45:02.506301: Rate array import [{'start': 525, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 525, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:45:02.507118: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:45:02.507166: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:45:02.507190: - The battery is currently at 75% and is in eco mode for the next 14 hours.
2026-08-18 08:45:02.507208: - For the next 48 hours there will be no solar generation.
2026-08-18 08:45:02.507226: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 08:45:02.507245: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 08:45:02.507262:
2026-08-18 08:45:02.564649: Plan calculation took 1.06 seconds
2026-08-18 08:45:02.568224: No high rate period found
2026-08-18 08:45:02.612004: Import threshold used for optimisation was 8.0p
2026-08-18 08:45:02.659751: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:45:02.664901: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:45:02.665021: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:45:02.665122: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:45:02.665375: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:45:02.665465: No export window planned
2026-08-18 08:45:02.665594: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:45:02.665629: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:45:02.665762: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:45:02.665953: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:45:02.666016: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:45:02.666083: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:45:02.666179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666239: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666273: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666305: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666331: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666355: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666385: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666446: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666480: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666534: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666559: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666583: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666611: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:45:02.666631: Inverter 0 count register writes 0
2026-08-18 08:45:02.680543: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 08:45:02.685139: Total inverter register writes now 867
2026-08-18 08:45:02.715302: Info: Completed run status Demand
2026-08-18 08:45:02.720770: Info: record_status Demand
2026-08-18 08:45:02.726583: Saved current settings to /config/predbat_config.json
2026-08-18 08:45:02.726903: Compare, best tariff: current metric 129.87p
2026-08-18 08:45:33.828352: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:45:33.828589: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:45:33.828661: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:45:33.828826: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:45:33.828905: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:45:33.828941: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:45:33.828959: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:47:34.040375: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:47:34.040649: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:47:34.040696: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:47:34.040895: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:47:34.040947: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:47:34.040972: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:47:34.041014: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:49:34.264671: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:49:34.264991: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:49:34.265039: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:49:34.265210: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:49:34.265255: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:49:34.265278: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:49:34.265318: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:50:00.367449: --------------- PredBat - update at 2026-08-18 08:50:00+01:00 with clock skew 0 minutes, minutes now 530
2026-08-18 08:50:00.368211: Saved current settings to /config/predbat_config.json
2026-08-18 08:50:00.368317: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 85.0 minutes
2026-08-18 08:50:00.368379: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:50:00.368458: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:50:00.382685: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:50:00.382787: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:50:00.382945: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:50:00.383370: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:50:00.383467: Predbat mode is set to Control charge & discharge
2026-08-18 08:50:00.532834: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:50:00.532965: Using load_power data to fill gaps in load_today data
2026-08-18 08:50:01.213461: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:50:01.213616: Zero load period starting at 2026-08-17T10:54:00+0100 (1316 minutes) for 189 minutes with base value 208.475
2026-08-18 08:50:01.214440: Processing 721 30-minute periods for power integration
2026-08-18 08:50:01.372642: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:50:01.372742: Car charging hold False, threshold 6.0kWh
2026-08-18 08:50:01.372783: Current data so far today: load 4.1kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:50:01.385797: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:50:01.385896: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:50:01.386532: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:50:01.386592: Standing charge is set to 46.63p
2026-08-18 08:50:01.478460: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:50:01.478659: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:50:01.478808: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:50:01.479719: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:50:01.479805: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:50:01.484167: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:50:01.484478: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:50:01.519127: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:50:01.519224: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:50:01.520259: High export rate found rates in range 99p to -99p
2026-08-18 08:50:01.542677: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:50:01.542767: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:50:01.554119: Battery level now 12.0kWh, -1hr ago 12.32kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 35.46p, rate_forward 6.87p
2026-08-18 08:50:01.554523: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.33kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:50:01.606679: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:50:01.606808: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:50:01.671807: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:50:01.698299: Today's load divergence 92.36%, in-day adjustment 92.7%, damping 0.95x, yesterday 92.68% today 92.74% blend 63.19%
2026-08-18 08:50:01.698606: Today's predicted so far 5.22kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 5.22kWh forecast extra.
2026-08-18 08:50:01.698648: Today's actual load so far 4.07kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 08:50:01.735509: Inverter 0: Type SK Sunsynk
2026-08-18 08:50:01.735585: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:50:01.735728: Reserve min: 7%, battery_min: 7%
2026-08-18 08:50:01.735790: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:50:01.736062: Inverter 0 SoC: 12.0kW 75%, current charge rate 5000W, current discharge rate 5250W, current battery power 294W, current battery voltage 51.2V, grid power -54W, load power 352W, PV Power 0W
2026-08-18 08:50:01.736197: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:50:01.736267: Inverter 0 scheduled charge enable is False
2026-08-18 08:50:01.736289: Inverter 0 charge windows currently []
2026-08-18 08:50:01.736309: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:50:01.736397: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:50:01.736426: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:50:01.736455: Inverter 0 scheduled discharge enable is False
2026-08-18 08:50:01.736550: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:50:01.736579: Inverter 0 discharge windows currently []
2026-08-18 08:50:01.736598: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:50:01.736613: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:50:01.736626: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:50:01.792560: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:50:01.792648: Plan was last updated on 2026-08-18 08:40:00+01:00 and is now 10.0 minutes old
2026-08-18 08:50:01.792817: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:50:01.792851: Best export window [ ]
2026-08-18 08:50:01.793544: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:50:01.796178: Load divergence over 8.0 hours mean 416.97W, min 310.8W, max 693.0W, std dev 69.42W, divergence 8.32%
2026-08-18 08:50:01.811451: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:50:01.811537: LoadML is_calculating False
2026-08-18 08:50:01.811591: Creating pool of 12 processes to match your CPU count
2026-08-18 08:50:01.923114: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.01p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.24kWh, PV 0.0kWh
2026-08-18 08:50:02.036699: Battery has 15.17 hours left - now at 12.0kWh
2026-08-18 08:50:02.082043: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.49kWh, PV 0.0kWh
2026-08-18 08:50:02.169291: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.05p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.49kWh, PV 0.0kWh
2026-08-18 08:50:02.257615: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 330.59p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.24kWh, PV 0.0kWh
2026-08-18 08:50:02.257705: Saving plan best values to HA entities
2026-08-18 08:50:02.401651: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:50:02.406893: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 08:50:02.411749: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.12kWh, house 0.0kWh, export 0.0kWh, metric 330.59p, metric10 340.05p
2026-08-18 08:50:02.488301: Marginal costs baseline metric (no standing charge): 283.9545
2026-08-18 08:50:02.770327: Marginal energy costs matrix computed: min=20.51 max=32.1
2026-08-18 08:50:02.842243: Rate array import [{'start': 530, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 530, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:50:02.842989: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:50:02.843035: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:50:02.843058: - The battery is currently at 75% and is in eco mode for the next 14 hours.
2026-08-18 08:50:02.843077: - For the next 48 hours there will be no solar generation.
2026-08-18 08:50:02.843095: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 08:50:02.843113: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 08:50:02.843131:
2026-08-18 08:50:02.899334: Plan calculation took 1.11 seconds
2026-08-18 08:50:02.902267: No high rate period found
2026-08-18 08:50:02.944419: Import threshold used for optimisation was 8.0p
2026-08-18 08:50:02.989711: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:50:02.994887: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 75%, target 100%
2026-08-18 08:50:02.994992: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:50:02.995082: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:50:02.995290: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:50:02.995370: No export window planned
2026-08-18 08:50:02.995478: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:50:02.995507: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:50:02.995614: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:50:02.995754: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:50:02.995805: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:50:02.995860: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:50:02.996016: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996061: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996089: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996111: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996131: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996155: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996179: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996258: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996279: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996298: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996322: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996361: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:02.996382: Inverter 0 count register writes 0
2026-08-18 08:50:03.010073: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 08:50:03.010239: Recompute is saving previous plan...
2026-08-18 08:50:03.010999: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 08:50:03.011055: Best export window [ ]
2026-08-18 08:50:03.011683: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:50:03.014340: Load divergence over 8.0 hours mean 416.97W, min 310.8W, max 693.0W, std dev 69.42W, divergence 8.32%
2026-08-18 08:50:03.029371: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:50:03.029471: LoadML is_calculating False
2026-08-18 08:50:03.029529: Creating pool of 12 processes to match your CPU count
2026-08-18 08:50:03.104600: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 08:50:03.105452: Optimise levels pass started at 2026-08-18 08:50:03
2026-08-18 08:50:03.105502: Optimise all windows, total charge 24 export 1
2026-08-18 08:50:03.616095: >> Region optimisation pass width 960 gives best_metric 316.74p, best_cost 322.77p, best_cycle 38.85kWh, best_import 23.97kWh
2026-08-18 08:50:03.756415: >> Region optimisation pass width 480 gives best_metric 316.74p, best_cost 322.77p, best_cycle 38.85kWh, best_import 23.97kWh
2026-08-18 08:50:03.978851: >> Region optimisation pass width 240 gives best_metric 316.74p, best_cost 322.77p, best_cycle 38.85kWh, best_import 23.97kWh
2026-08-18 08:50:04.500891: >> Region optimisation pass width 120 gives best_metric 316.74p, best_cost 322.77p, best_cycle 38.85kWh, best_import 23.97kWh
2026-08-18 08:50:04.501327: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 08:50:04.501406: Optimise levels pass ended at 2026-08-18 08:50:04, duration 1.4 seconds tried 57 combinations
2026-08-18 08:50:04.501512: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 316.74p, best_keep 0kWh, best_cycle 38.85kWh, best_carbon 0kg, best_import 23.97kWh
2026-08-18 08:50:04.520412: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 08:50:07.123654: Tweak plan optimisation started metric 266.36p, cost 277.56p
2026-08-18 08:50:07.475960: Tweak optimisation finished metric 266.36p, cost 277.56p, metric_keep 0kWh, cycle 35.47kWh, carbon 0kg, import 18.32kWh, changed 8 window(s)
2026-08-18 08:50:07.495943: Swap charge optimisation started metric 266.36p, cost 277.56p, min_improvement_swap 0.1p
2026-08-18 08:50:08.292792: Swap charge optimisation finished metric 266.36p, cost 277.56p
2026-08-18 08:50:08.432474: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 264.84p -> 264.26p, plan now metric 267.25p, cost 273.42p, cycle 35.47kWh, import 17.81kWh
2026-08-18 08:50:08.443768: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:50:08.444168: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:50:08.444403: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:50:08.444573: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 08:50:08.483227: Previous plan best metric is 266.49 (cost 277.72) and new plan best metric is 266.36 (cost 277.56)
2026-08-18 08:50:08.483437: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 08:50:08.483604: Plan valid is now true after recompute was False
2026-08-18 08:50:08.512806: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 607.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.05kWh, PV 0.0kWh
2026-08-18 08:50:08.616708: Battery has 15.17 hours left - now at 12.0kWh
2026-08-18 08:50:08.659424: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 631.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.28kWh, PV 0.0kWh
2026-08-18 08:50:08.734306: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 332.85p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.28kWh, PV 0.0kWh
2026-08-18 08:50:08.810163: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 322.36p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.05kWh, PV 0.0kWh
2026-08-18 08:50:08.810258: Saving plan best values to HA entities
2026-08-18 08:50:08.952194: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:50:08.957322: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 08:50:08.962568: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.09kWh, house 0.0kWh, export 0.0kWh, metric 322.36p, metric10 332.85p
2026-08-18 08:50:09.030502: Marginal costs baseline metric (no standing charge): 275.7214
2026-08-18 08:50:09.326765: Marginal energy costs matrix computed: min=20.51 max=32.1
2026-08-18 08:50:09.404307: Rate array import [{'start': 530, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 530, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:50:09.404936: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 08:50:09.404973: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:50:09.404992: - The battery is currently at 75% and is in eco mode for the next 14 hours.
2026-08-18 08:50:09.405007: - For the next 48 hours there will be no solar generation.
2026-08-18 08:50:09.405021: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 08:50:09.405036: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 08:50:09.405050:
2026-08-18 08:50:09.464651: Plan calculation took 6.45 seconds
2026-08-18 08:50:09.465002: Inverter 0: Type SK Sunsynk
2026-08-18 08:50:09.465057: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:50:09.465251: Reserve min: 7%, battery_min: 7%
2026-08-18 08:50:09.465313: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:50:09.465593: Inverter 0 SoC: 11.89kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 299W, current battery voltage 51.2V, grid power -54W, load power 357W, PV Power 0W
2026-08-18 08:50:09.465781: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:50:09.465867: Inverter 0 scheduled charge enable is False
2026-08-18 08:50:09.465913: Inverter 0 charge windows currently []
2026-08-18 08:50:09.465960: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:50:09.466090: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:50:09.466138: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:50:09.466171: Inverter 0 scheduled discharge enable is False
2026-08-18 08:50:09.466284: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:50:09.466316: Inverter 0 discharge windows currently []
2026-08-18 08:50:09.466335: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:50:09.466350: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:50:09.466364: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:50:09.513282: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 74%, target 100%
2026-08-18 08:50:09.513428: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:50:09.513515: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:50:09.513679: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:50:09.513751: No export window planned
2026-08-18 08:50:09.513838: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:50:09.513867: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:50:09.513989: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:50:09.514117: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:50:09.514160: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:50:09.514225: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:50:09.514302: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514329: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514359: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514380: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514399: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514473: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514519: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514547: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514568: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514592: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514641: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514687: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514711: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:50:09.514729: Inverter 0 count register writes 0
2026-08-18 08:50:09.532839: Total inverter register writes now 867
2026-08-18 08:50:09.559009: Info: Completed run status Demand
2026-08-18 08:50:09.564173: Info: record_status Demand
2026-08-18 08:50:09.569476: Saved current settings to /config/predbat_config.json
2026-08-18 08:50:09.569691: Compare, best tariff: current metric 129.87p
2026-08-18 08:50:48.676917: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:50:48.677146: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:50:48.677201: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:50:48.677354: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:50:48.677418: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:50:48.677439: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:50:48.677461: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:52:48.892866: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:52:48.893207: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:52:48.893252: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:52:48.893415: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:52:48.893461: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:52:48.893495: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:52:48.893517: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:54:49.107258: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:54:49.107505: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:54:49.107540: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:54:49.107723: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:54:49.107786: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:54:49.107808: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:54:49.107826: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:55:00.189308: --------------- PredBat - update at 2026-08-18 08:55:00+01:00 with clock skew 0 minutes, minutes now 535
2026-08-18 08:55:00.190065: Saved current settings to /config/predbat_config.json
2026-08-18 08:55:00.190223: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 90.0 minutes
2026-08-18 08:55:00.190305: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 08:55:00.190372: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 08:55:00.208489: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 08:55:00.208601: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 08:55:00.208760: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 08:55:00.209259: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 08:55:00.209376: Predbat mode is set to Control charge & discharge
2026-08-18 08:55:00.399145: Found 21602 load_today datapoints going back 28 days
2026-08-18 08:55:00.399285: Using load_power data to fill gaps in load_today data
2026-08-18 08:55:01.150956: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 08:55:01.151128: Zero load period starting at 2026-08-17T10:54:00+0100 (1321 minutes) for 189 minutes with base value 208.45
2026-08-18 08:55:01.152161: Processing 721 30-minute periods for power integration
2026-08-18 08:55:01.330498: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 08:55:01.330624: Car charging hold False, threshold 6.0kWh
2026-08-18 08:55:01.330671: Current data so far today: load 4.1kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 08:55:01.342329: Car 0 using Octopus Intelligent is unplugged
2026-08-18 08:55:01.342409: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 08:55:01.343084: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 08:55:01.343160: Standing charge is set to 46.63p
2026-08-18 08:55:01.433309: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:55:01.433548: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:55:01.433742: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 08:55:01.434852: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 08:55:01.434971: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 08:55:01.440217: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 08:55:01.440563: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 08:55:01.484148: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 08:55:01.484258: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 08:55:01.485497: High export rate found rates in range 99p to -99p
2026-08-18 08:55:01.516699: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 08:55:01.517052: Car 0 on Octopus Intelligent, no active plan
2026-08-18 08:55:01.528816: Battery level now 12.0kWh, -1hr ago 12.18kWh, at midnight 6.84kWh, battery value change in the last hour -1.26p, change today 35.46p, rate_forward 6.87p
2026-08-18 08:55:01.529189: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 08:55:01.575233: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 08:55:01.575362: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 08:55:01.664123: Using weighted-bucket historical load forecast over 14 days
2026-08-18 08:55:01.699139: Today's load divergence 92.36%, in-day adjustment 92.7%, damping 0.95x, yesterday 92.68% today 92.74% blend 62.85%
2026-08-18 08:55:01.699582: Today's predicted so far 5.23kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 5.23kWh forecast extra.
2026-08-18 08:55:01.700542: Today's actual load so far 4.08kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 08:55:01.736932: Inverter 0: Type SK Sunsynk
2026-08-18 08:55:01.737020: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 08:55:01.737262: Reserve min: 7%, battery_min: 7%
2026-08-18 08:55:01.737370: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 08:55:01.737678: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 296W, current battery voltage 51.2V, grid power -55W, load power 355W, PV Power 0W
2026-08-18 08:55:01.737895: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:55:01.738021: Inverter 0 scheduled charge enable is False
2026-08-18 08:55:01.738069: Inverter 0 charge windows currently []
2026-08-18 08:55:01.738103: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 08:55:01.738246: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:55:01.738287: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:55:01.738328: Inverter 0 scheduled discharge enable is False
2026-08-18 08:55:01.738515: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:55:01.738556: Inverter 0 discharge windows currently []
2026-08-18 08:55:01.738580: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:55:01.738616: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:55:01.738659: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:55:01.797816: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 08:55:01.798080: Plan was last updated on 2026-08-18 08:50:00+01:00 and is now 5.0 minutes old
2026-08-18 08:55:01.798294: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 08:55:01.798336: Best export window [ ]
2026-08-18 08:55:01.799174: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 08:55:01.802265: Load divergence over 8.0 hours mean 418.42W, min 313.8W, max 660.0W, std dev 64.18W, divergence 7.67%
2026-08-18 08:55:01.821835: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 08:55:01.821945: LoadML is_calculating False
2026-08-18 08:55:01.822004: Creating pool of 12 processes to match your CPU count
2026-08-18 08:55:01.934986: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.69p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.13kWh, PV 0.0kWh
2026-08-18 08:55:02.049775: Battery has 14.92 hours left - now at 11.84kWh
2026-08-18 08:55:02.094990: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.37kWh, PV 0.0kWh
2026-08-18 08:55:02.165783: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 339.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.37kWh, PV 0.0kWh
2026-08-18 08:55:02.236562: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 327.41p, metric_keep 0kWh, min_soc 1.55kWh @ 08-18 23:25:00, load 30.13kWh, PV 0.0kWh
2026-08-18 08:55:02.236644: Saving plan best values to HA entities
2026-08-18 08:55:02.378135: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 08:55:02.383188: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 08:55:02.388305: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.73kWh, house 0.0kWh, export 0.0kWh, metric 327.41p, metric10 339.52p
2026-08-18 08:55:02.460021: Marginal costs baseline metric (no standing charge): 280.7792
2026-08-18 08:55:02.734087: Marginal energy costs matrix computed: min=23.92 max=32.52
2026-08-18 08:55:02.815167: Rate array import [{'start': 535, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 535, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 08:55:02.815928: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 08:55:02.815976: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 08:55:02.815999: - The battery is currently at 74% and is in eco mode for the next 14 hours.
2026-08-18 08:55:02.816017: - For the next 48 hours there will be no solar generation.
2026-08-18 08:55:02.816034: - You will reach a minimum of 10% battery in 14 hours.
2026-08-18 08:55:02.816051: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 08:55:02.816073:
2026-08-18 08:55:02.874256: Plan calculation took 1.08 seconds
2026-08-18 08:55:02.877892: No high rate period found
2026-08-18 08:55:02.921953: Import threshold used for optimisation was 8.0p
2026-08-18 08:55:02.964638: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 08:55:02.970230: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 74%, target 100%
2026-08-18 08:55:02.970420: Inverter 0 disabled charge window while waiting for schedule (now 08-18 08:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 08:55:02.970565: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:55:02.970853: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:55:02.970994: No export window planned
2026-08-18 08:55:02.971187: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 08:55:02.971229: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 08:55:02.971395: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 08:55:02.971605: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 08:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 08:55:02.971679: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 08:55:02.971780: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 08:55:02.971983: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972038: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972070: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972096: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972121: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972146: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972236: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972271: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972327: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972351: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972381: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972405: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 08:55:02.972425: Inverter 0 count register writes 0
2026-08-18 08:55:02.986702: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 08:55:02.991180: Total inverter register writes now 867
2026-08-18 08:55:03.021754: Info: Completed run status Demand
2026-08-18 08:55:03.028161: Info: record_status Demand
2026-08-18 08:55:03.034314: Saved current settings to /config/predbat_config.json
2026-08-18 08:55:03.034623: Compare, best tariff: current metric 129.87p
2026-08-18 08:55:27.191600: Storage: Cleaned up expired cache file octopus_free_url_cache (module=octopus_free)
2026-08-18 08:55:34.138853: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:55:34.139196: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:55:34.139250: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:55:34.139419: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:55:34.139462: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:55:34.139483: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:55:34.139501: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:56:01.756221: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 08:56:01.914931: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 08:57:34.344096: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:57:34.344332: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:57:34.344387: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:57:34.344612: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:57:34.344669: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:57:34.344713: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:57:34.344759: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 08:59:28.059027: Info: HAHistory: Pruning history data started.
2026-08-18 08:59:28.061754: Info: HAHistory: Pruning history data completed.
2026-08-18 08:59:34.555730: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 08:59:34.556022: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 08:59:34.556073: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 08:59:34.556207: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 08:59:34.556244: Note: Inverter does not support discharge freeze - disabled
2026-08-18 08:59:34.556266: Note: Inverter does not support charge freeze - disabled
2026-08-18 08:59:34.556284: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:00:00.662857: --------------- PredBat - update at 2026-08-18 09:00:00+01:00 with clock skew 0 minutes, minutes now 540
2026-08-18 09:00:00.663547: Saved current settings to /config/predbat_config.json
2026-08-18 09:00:00.663646: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 95.0 minutes
2026-08-18 09:00:00.663708: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:00:00.663760: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:00:00.682324: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:00:00.682430: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:00:00.682566: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:00:00.683003: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:00:00.683117: Predbat mode is set to Control charge & discharge
2026-08-18 09:00:00.901449: Found 21602 load_today datapoints going back 27 days
2026-08-18 09:00:00.901589: Using load_power data to fill gaps in load_today data
2026-08-18 09:00:01.756635: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:00:01.756833: Zero load period starting at 2026-08-17T10:54:00+0100 (1326 minutes) for 189 minutes with base value 208.425
2026-08-18 09:00:01.757999: Processing 721 30-minute periods for power integration
2026-08-18 09:00:01.955139: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:00:01.955261: Car charging hold False, threshold 6.0kWh
2026-08-18 09:00:01.955307: Current data so far today: load 4.22kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:00:01.969803: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:00:01.969923: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:00:01.970639: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:00:01.970708: Standing charge is set to 46.63p
2026-08-18 09:00:02.076413: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:00:02.076722: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:00:02.076978: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:00:02.078381: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:00:02.078559: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:00:02.084110: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:00:02.084511: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:00:02.129248: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:00:02.129359: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:00:02.130705: High export rate found rates in range 99p to -99p
2026-08-18 09:00:02.160285: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:00:02.160405: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:00:02.172631: Battery level now 11.84kWh, -1hr ago 12.16kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 34.36p, rate_forward 6.87p
2026-08-18 09:00:02.173019: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.38kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:00:02.241371: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:00:02.241516: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:00:02.328070: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:00:02.364767: Today's load divergence 92.61%, in-day adjustment 92.79%, damping 0.95x, yesterday 92.68% today 92.98% blend 62.5%
2026-08-18 09:00:02.364906: Today's predicted so far 5.33kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 5.33kWh forecast extra.
2026-08-18 09:00:02.364953: Today's actual load so far 4.22kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 09:00:02.404930: Inverter 0: Type SK Sunsynk
2026-08-18 09:00:02.405025: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:00:02.405206: Reserve min: 7%, battery_min: 7%
2026-08-18 09:00:02.405281: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:00:02.405565: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 296W, current battery voltage 51.2V, grid power -54W, load power 354W, PV Power 0W
2026-08-18 09:00:02.405719: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:00:02.405807: Inverter 0 scheduled charge enable is False
2026-08-18 09:00:02.405841: Inverter 0 charge windows currently []
2026-08-18 09:00:02.405869: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:00:02.405999: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:00:02.406035: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:00:02.406071: Inverter 0 scheduled discharge enable is False
2026-08-18 09:00:02.406194: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:00:02.406230: Inverter 0 discharge windows currently []
2026-08-18 09:00:02.406253: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:00:02.406271: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:00:02.406294: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:00:02.466594: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:00:02.466745: Plan was last updated on 2026-08-18 08:50:00+01:00 and is now 10.0 minutes old
2026-08-18 09:00:02.466999: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:00:02.467045: Best export window [ ]
2026-08-18 09:00:02.467968: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:00:02.471541: Load divergence over 8.0 hours mean 421.82W, min 345.6W, max 651.6W, std dev 55.26W, divergence 6.55%
2026-08-18 09:00:02.490936: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:00:02.491054: LoadML is_calculating False
2026-08-18 09:00:02.491117: Creating pool of 12 processes to match your CPU count
2026-08-18 09:00:02.607841: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.89p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.31kWh, PV 0.0kWh
2026-08-18 09:00:02.753759: Battery has 14.92 hours left - now at 11.84kWh
2026-08-18 09:00:02.795436: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.96p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.56kWh, PV 0.0kWh
2026-08-18 09:00:02.892146: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.56kWh, PV 0.0kWh
2026-08-18 09:00:02.975677: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 331.31p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-18 09:00:02.975779: Saving plan best values to HA entities
2026-08-18 09:00:03.122103: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:00:03.127243: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:00:03.134489: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.21kWh, house 0.0kWh, export 0.0kWh, metric 331.31p, metric10 341.81p
2026-08-18 09:00:03.209543: Marginal costs baseline metric (no standing charge): 284.6802
2026-08-18 09:00:03.439726: Marginal energy costs matrix computed: min=23.16 max=32.43
2026-08-18 09:00:03.517870: Rate array import [{'start': 540, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 540, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:00:03.518471: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 09:00:03.518507: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:00:03.518525: - The battery is currently at 74% and is in eco mode for the next 14 hours.
2026-08-18 09:00:03.518540: - For the next 48 hours there will be no solar generation.
2026-08-18 09:00:03.518554: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 09:00:03.518567: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:00:03.518585:
2026-08-18 09:00:03.580629: Plan calculation took 1.11 seconds
2026-08-18 09:00:03.584146: No high rate period found
2026-08-18 09:00:03.642856: Import threshold used for optimisation was 8.0p
2026-08-18 09:00:03.690929: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:00:03.700331: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 74%, target 100%
2026-08-18 09:00:03.700457: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:00:03.700542: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:00:03.700749: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:00:03.700833: No export window planned
2026-08-18 09:00:03.700972: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:00:03.701002: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:00:03.701110: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:00:03.701306: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:00:03.701379: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:00:03.701454: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:00:03.701571: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.701626: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.701684: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.701757: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.701799: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.701844: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.701903: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.701986: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.702020: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.702043: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.702068: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.702088: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.702107: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.702131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:03.702148: Inverter 0 count register writes 0
2026-08-18 09:00:03.717911: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 09:00:03.718106: Recompute is saving previous plan...
2026-08-18 09:00:03.718899: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 09:00:03.718942: Best export window [ ]
2026-08-18 09:00:03.719614: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:00:03.722227: Load divergence over 8.0 hours mean 421.82W, min 345.6W, max 651.6W, std dev 55.26W, divergence 6.55%
2026-08-18 09:00:03.736364: Calculating data from yesterday for savings calculation
2026-08-18 09:00:03.746549: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 09:00:03.800851: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 09:00:03.818936: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 09:00:03.842895: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 09:00:03.883896: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 09:00:03.957855: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 09:00:03.958012: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 09:00:03.969499: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:00:03.969611: LoadML is_calculating False
2026-08-18 09:00:03.969677: Creating pool of 12 processes to match your CPU count
2026-08-18 09:00:04.055479: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 09:00:04.056485: Optimise levels pass started at 2026-08-18 09:00:04
2026-08-18 09:00:04.056550: Optimise all windows, total charge 24 export 1
2026-08-18 09:00:04.683252: >> Region optimisation pass width 960 gives best_metric 318.29p, best_cost 323.99p, best_cycle 39.48kWh, best_import 24.13kWh
2026-08-18 09:00:04.821829: >> Region optimisation pass width 480 gives best_metric 318.29p, best_cost 323.99p, best_cycle 39.48kWh, best_import 24.13kWh
2026-08-18 09:00:05.069221: >> Region optimisation pass width 240 gives best_metric 318.29p, best_cost 323.99p, best_cycle 39.48kWh, best_import 24.13kWh
2026-08-18 09:00:05.586893: >> Region optimisation pass width 120 gives best_metric 318.29p, best_cost 323.99p, best_cycle 39.48kWh, best_import 24.13kWh
2026-08-18 09:00:05.587100: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 09:00:05.587171: Optimise levels pass ended at 2026-08-18 09:00:05, duration 1.5 seconds tried 57 combinations
2026-08-18 09:00:05.587231: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 318.29p, best_keep 0kWh, best_cycle 39.48kWh, best_carbon 0kg, best_import 24.13kWh
2026-08-18 09:00:05.606680: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 09:00:08.510460: Tweak plan optimisation started metric 267.44p, cost 278.52p
2026-08-18 09:00:08.914163: Tweak optimisation finished metric 267.44p, cost 278.52p, metric_keep 0kWh, cycle 35.55kWh, carbon 0kg, import 18.44kWh, changed 8 window(s)
2026-08-18 09:00:08.934405: Swap charge optimisation started metric 267.44p, cost 278.52p, min_improvement_swap 0.1p
2026-08-18 09:00:09.697385: Swap charge optimisation finished metric 267.44p, cost 278.52p
2026-08-18 09:00:09.847834: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 265.83p -> 265.67p, plan now metric 267.88p, cost 276.48p, cycle 35.81kWh, import 18.19kWh
2026-08-18 09:00:09.859380: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:00:09.859745: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:00:09.860011: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:00:09.860187: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:00:09.901757: Previous plan best metric is 267.5 (cost 278.59) and new plan best metric is 267.44 (cost 278.52)
2026-08-18 09:00:09.902250: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 09:00:09.902456: Plan valid is now true after recompute was False
2026-08-18 09:00:09.934264: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 608.43p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.13kWh, PV 0.0kWh
2026-08-18 09:00:10.062033: Battery has 14.92 hours left - now at 11.84kWh
2026-08-18 09:00:10.104025: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.44p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.36kWh, PV 0.0kWh
2026-08-18 09:00:10.179918: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.73p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.36kWh, PV 0.0kWh
2026-08-18 09:00:10.256242: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 323.19p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.13kWh, PV 0.0kWh
2026-08-18 09:00:10.256817: Saving plan best values to HA entities
2026-08-18 09:00:10.404197: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:00:10.410150: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:00:10.417151: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.2kWh, house 0.0kWh, export 0.0kWh, metric 323.19p, metric10 334.73p
2026-08-18 09:00:10.510388: Marginal costs baseline metric (no standing charge): 276.556
2026-08-18 09:00:10.754282: Marginal energy costs matrix computed: min=23.16 max=32.43
2026-08-18 09:00:10.867611: Rate array import [{'start': 540, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 540, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:00:10.868749: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 09:00:10.868800: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:00:10.868820: - The battery is currently at 74% and is in eco mode for the next 14 hours.
2026-08-18 09:00:10.868836: - For the next 48 hours there will be no solar generation.
2026-08-18 09:00:10.868850: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 09:00:10.868865: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:00:10.868900:
2026-08-18 09:00:10.929548: Plan calculation took 7.21 seconds
2026-08-18 09:00:10.929962: Inverter 0: Type SK Sunsynk
2026-08-18 09:00:10.930027: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:00:10.930342: Reserve min: 7%, battery_min: 7%
2026-08-18 09:00:10.930472: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:00:10.930996: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 390W, current battery voltage 51.2V, grid power -55W, load power 448W, PV Power 0W
2026-08-18 09:00:10.931303: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:00:10.931450: Inverter 0 scheduled charge enable is False
2026-08-18 09:00:10.931503: Inverter 0 charge windows currently []
2026-08-18 09:00:10.931551: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:00:10.931728: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:00:10.931784: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:00:10.931847: Inverter 0 scheduled discharge enable is False
2026-08-18 09:00:10.932105: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:00:10.932165: Inverter 0 discharge windows currently []
2026-08-18 09:00:10.932202: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:00:10.932235: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:00:10.932273: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:00:10.989956: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 74%, target 100%
2026-08-18 09:00:10.990098: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:00:10.990164: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:00:10.990340: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:00:10.990421: No export window planned
2026-08-18 09:00:10.990528: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:00:10.990564: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:00:10.990700: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:00:10.990857: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:00:10.990924: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:00:10.990984: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:00:10.991079: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991119: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991182: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991217: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991243: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991273: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991299: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991357: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991427: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991458: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991488: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991514: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991538: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:00:10.991558: Inverter 0 count register writes 0
2026-08-18 09:00:11.019593: Total inverter register writes now 867
2026-08-18 09:00:11.051265: Info: Completed run status Demand
2026-08-18 09:00:11.056848: Info: record_status Demand
2026-08-18 09:00:11.062734: Saved current settings to /config/predbat_config.json
2026-08-18 09:00:11.063018: Compare, best tariff: current metric 129.87p
2026-08-18 09:00:49.170133: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:00:49.170405: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:00:49.170476: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:00:49.170712: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:00:49.170774: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:00:49.170809: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:00:49.170839: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:02:49.391487: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:02:49.391723: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:02:49.391757: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:02:49.391990: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:02:49.392046: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:02:49.392070: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:02:49.392088: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:02:52.325150: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 09:02:53.373173: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:02:53.373347: Zero load period starting at 2026-08-17T10:54:00+0100 (1326 minutes) for 189 minutes with base value 386.925
2026-08-18 09:02:53.374187: Processing 1297 30-minute periods for power integration
2026-08-18 09:02:53.456375: ML Component: Car charging hold False, car energy reported load False
2026-08-18 09:02:53.536485: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:02:53.620868: ML Temperature data points: 48421
2026-08-18 09:02:53.831156: ML Component: Fetched 7776 load data points, 27.0 days of history
2026-08-18 09:02:53.866139: ML Component: Data fetch completed, load data age 59.0 days, 17219 data points
2026-08-18 09:02:53.866277: ML Component: No training needed, model age is 1.46 hours
2026-08-18 09:02:53.866337: ML Component: Generating predictions load data age 59.0 days, 17219 data points
2026-08-18 09:02:53.983738: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0337 max_dow {0: 0.08580555561814043, 1: 0.09143333321428962, 2: 0.10736562459506094, 3: 0.10235625034738333, 4: 0.1370843753574416, 5: 0.09880833375371165, 6: 0.10414166664199698}
2026-08-18 09:02:54.440638: ML Component: Generated 576 predictions (total 28.21 kWh over 48h)
2026-08-18 09:02:54.472990: ML Component: Prediction cycle completed
2026-08-18 09:02:54.577234: ML Component: Saved 17219 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 09:05:00.129611: --------------- PredBat - update at 2026-08-18 09:05:00+01:00 with clock skew 0 minutes, minutes now 545
2026-08-18 09:05:00.130348: Saved current settings to /config/predbat_config.json
2026-08-18 09:05:00.130475: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 100.0 minutes
2026-08-18 09:05:00.130571: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:05:00.130643: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:05:00.148000: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:05:00.148184: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:05:00.148417: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:05:00.148961: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:05:00.149079: Predbat mode is set to Control charge & discharge
2026-08-18 09:05:00.311744: Found 21602 load_today datapoints going back 27 days
2026-08-18 09:05:00.311887: Using load_power data to fill gaps in load_today data
2026-08-18 09:05:01.043787: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:05:01.044026: Zero load period starting at 2026-08-17T10:54:00+0100 (1331 minutes) for 189 minutes with base value 208.4
2026-08-18 09:05:01.044884: Processing 721 30-minute periods for power integration
2026-08-18 09:05:01.200770: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:05:01.200891: Car charging hold False, threshold 6.0kWh
2026-08-18 09:05:01.200932: Current data so far today: load 4.25kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:05:01.212911: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:05:01.212996: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:05:01.213625: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:05:01.213684: Standing charge is set to 46.63p
2026-08-18 09:05:01.298779: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:05:01.299023: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:05:01.299179: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:05:01.300112: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:05:01.300209: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:05:01.304869: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:05:01.305144: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:05:01.343769: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:05:01.344485: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:05:01.345625: High export rate found rates in range 99p to -99p
2026-08-18 09:05:01.369307: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:05:01.369408: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:05:01.380100: Battery level now 11.84kWh, -1hr ago 12.16kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 34.36p, rate_forward 6.87p
2026-08-18 09:05:01.380418: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:05:01.426108: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:05:01.426218: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:05:01.493591: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:05:01.519004: Today's load divergence 92.3%, in-day adjustment 92.68%, damping 0.95x, yesterday 92.68% today 92.68% blend 62.15%
2026-08-18 09:05:01.519097: Today's predicted so far 5.4kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 5.4kWh forecast extra.
2026-08-18 09:05:01.519126: Today's actual load so far 4.25kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 09:05:01.549794: Inverter 0: Type SK Sunsynk
2026-08-18 09:05:01.549881: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:05:01.550064: Reserve min: 7%, battery_min: 7%
2026-08-18 09:05:01.550128: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:05:01.550347: Inverter 0 SoC: 11.84kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 639W, current battery voltage 51.2V, grid power -61W, load power 646W, PV Power 0W
2026-08-18 09:05:01.550478: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:05:01.550544: Inverter 0 scheduled charge enable is False
2026-08-18 09:05:01.550567: Inverter 0 charge windows currently []
2026-08-18 09:05:01.550587: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:05:01.550673: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:05:01.550705: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:05:01.550740: Inverter 0 scheduled discharge enable is False
2026-08-18 09:05:01.550848: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:05:01.550895: Inverter 0 discharge windows currently []
2026-08-18 09:05:01.550914: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:05:01.550930: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:05:01.550959: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:05:01.605732: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:05:01.605848: Plan was last updated on 2026-08-18 09:00:00+01:00 and is now 5.0 minutes old
2026-08-18 09:05:01.606125: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:05:01.606181: Best export window [ ]
2026-08-18 09:05:01.607126: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:05:01.610478: Load divergence over 8.0 hours mean 424.58W, min 345.0W, max 675.0W, std dev 60.77W, divergence 7.16%
2026-08-18 09:05:01.626919: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:05:01.627023: LoadML is_calculating False
2026-08-18 09:05:01.627082: Creating pool of 12 processes to match your CPU count
2026-08-18 09:05:01.733493: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 608.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.22kWh, PV 0.0kWh
2026-08-18 09:05:01.853230: Battery has 14.92 hours left - now at 11.84kWh
2026-08-18 09:05:01.895149: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.45kWh, PV 0.0kWh
2026-08-18 09:05:01.995552: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.29p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.45kWh, PV 0.0kWh
2026-08-18 09:05:02.077975: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 326.98p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.22kWh, PV 0.0kWh
2026-08-18 09:05:02.078053: Saving plan best values to HA entities
2026-08-18 09:05:02.237678: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:05:02.242770: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:05:02.247753: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.67kWh, house 0.0kWh, export 0.0kWh, metric 326.98p, metric10 337.29p
2026-08-18 09:05:02.317168: Marginal costs baseline metric (no standing charge): 280.3445
2026-08-18 09:05:02.565245: Marginal energy costs matrix computed: min=22.1 max=32.29
2026-08-18 09:05:02.649757: Rate array import [{'start': 545, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 545, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:05:02.650559: - Your estimated bill for today is £1.54 and tomorrow is £1.92
2026-08-18 09:05:02.650622: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:05:02.650659: - The battery is currently at 74% and is in eco mode for the next 14 hours.
2026-08-18 09:05:02.650697: - For the next 48 hours there will be no solar generation.
2026-08-18 09:05:02.650717: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 09:05:02.650735: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:05:02.650752:
2026-08-18 09:05:02.713350: Plan calculation took 1.11 seconds
2026-08-18 09:05:02.716680: No high rate period found
2026-08-18 09:05:02.764544: Import threshold used for optimisation was 8.0p
2026-08-18 09:05:02.811529: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:05:02.817712: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 74%, target 100%
2026-08-18 09:05:02.817880: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:05:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:05:02.818008: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:05:02.818252: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:05:02.818349: No export window planned
2026-08-18 09:05:02.818469: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:05:02.818504: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:05:02.818633: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:05:02.818801: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:05:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:05:02.818877: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:05:02.818948: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:05:02.819045: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819145: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819170: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819194: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819223: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819282: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819317: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819342: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819366: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819396: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819445: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819472: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:05:02.819493: Inverter 0 count register writes 0
2026-08-18 09:05:02.834366: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 09:05:02.839597: Total inverter register writes now 867
2026-08-18 09:05:02.874040: Info: Completed run status Demand
2026-08-18 09:05:02.880183: Info: record_status Demand
2026-08-18 09:05:02.886587: Saved current settings to /config/predbat_config.json
2026-08-18 09:05:02.886906: Compare, best tariff: current metric 129.87p
2026-08-18 09:05:33.989907: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:05:33.990122: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:05:33.990168: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:05:33.990325: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:05:33.990376: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:05:33.990418: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:05:33.990455: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:07:34.198527: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:07:34.198758: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:07:34.198915: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:07:34.199079: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:07:34.199119: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:07:34.199140: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:07:34.199158: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:09:34.416528: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:09:34.416795: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:09:34.416840: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:09:34.417007: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:09:34.417069: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:09:34.417090: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:09:34.417113: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:10:00.521309: --------------- PredBat - update at 2026-08-18 09:10:00+01:00 with clock skew 0 minutes, minutes now 550
2026-08-18 09:10:00.522044: Saved current settings to /config/predbat_config.json
2026-08-18 09:10:00.522182: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 105.0 minutes
2026-08-18 09:10:00.522259: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:10:00.522388: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:10:00.547633: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:10:00.547777: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:10:00.547998: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:10:00.548534: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:10:00.548649: Predbat mode is set to Control charge & discharge
2026-08-18 09:10:00.740745: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:10:00.740880: Using load_power data to fill gaps in load_today data
2026-08-18 09:10:01.546675: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:10:01.546849: Zero load period starting at 2026-08-17T10:54:00+0100 (1336 minutes) for 189 minutes with base value 208.375
2026-08-18 09:10:01.547930: Processing 721 30-minute periods for power integration
2026-08-18 09:10:01.732119: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:10:01.732237: Car charging hold False, threshold 6.0kWh
2026-08-18 09:10:01.732309: Current data so far today: load 4.35kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:10:01.746988: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:10:01.747081: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:10:01.747820: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:10:01.747890: Standing charge is set to 46.63p
2026-08-18 09:10:01.838244: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:10:01.838466: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:10:01.838611: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:10:01.839457: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:10:01.839543: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:10:01.844083: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:10:01.844487: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:10:01.881289: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:10:01.881387: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:10:01.882503: High export rate found rates in range 99p to -99p
2026-08-18 09:10:01.904899: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:10:01.905010: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:10:01.915169: Battery level now 11.84kWh, -1hr ago 12.16kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 34.36p, rate_forward 6.87p
2026-08-18 09:10:01.915470: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.42kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:10:01.964018: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:10:01.964149: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:10:02.048113: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:10:02.081536: Today's load divergence 92.75%, in-day adjustment 92.85%, damping 0.95x, yesterday 92.68% today 93.12% blend 61.81%
2026-08-18 09:10:02.081629: Today's predicted so far 5.41kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 5.41kWh forecast extra.
2026-08-18 09:10:02.081713: Today's actual load so far 4.32kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 09:10:02.119352: Inverter 0: Type SK Sunsynk
2026-08-18 09:10:02.119443: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:10:02.119637: Reserve min: 7%, battery_min: 7%
2026-08-18 09:10:02.119739: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:10:02.120059: Inverter 0 SoC: 11.83kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 473W, current battery voltage 51.2V, grid power -55W, load power 532W, PV Power 0W
2026-08-18 09:10:02.120222: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:10:02.120307: Inverter 0 scheduled charge enable is False
2026-08-18 09:10:02.120341: Inverter 0 charge windows currently []
2026-08-18 09:10:02.120368: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:10:02.120474: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:10:02.120508: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:10:02.120545: Inverter 0 scheduled discharge enable is False
2026-08-18 09:10:02.120688: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:10:02.120728: Inverter 0 discharge windows currently []
2026-08-18 09:10:02.120750: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:10:02.120768: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:10:02.120785: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:10:02.171690: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:10:02.171780: Plan was last updated on 2026-08-18 09:00:00+01:00 and is now 10.0 minutes old
2026-08-18 09:10:02.172023: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:10:02.172065: Best export window [ ]
2026-08-18 09:10:02.172750: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:10:02.175275: Load divergence over 8.0 hours mean 424.56W, min 345.6W, max 712.8W, std dev 64.68W, divergence 7.62%
2026-08-18 09:10:02.190756: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:10:02.190855: LoadML is_calculating False
2026-08-18 09:10:02.190908: Creating pool of 12 processes to match your CPU count
2026-08-18 09:10:02.303709: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.38kWh, PV 0.0kWh
2026-08-18 09:10:02.426366: Battery has 14.83 hours left - now at 11.83kWh
2026-08-18 09:10:02.470675: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.75p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.62kWh, PV 0.0kWh
2026-08-18 09:10:02.556372: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.46p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.62kWh, PV 0.0kWh
2026-08-18 09:10:02.634668: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 330.96p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.38kWh, PV 0.0kWh
2026-08-18 09:10:02.634746: Saving plan best values to HA entities
2026-08-18 09:10:02.788524: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 09:10:02.793764: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 09:10:02.798453: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.17kWh, house 0.0kWh, export 0.0kWh, metric 330.96p, metric10 340.46p
2026-08-18 09:10:02.875678: Marginal costs baseline metric (no standing charge): 284.3222
2026-08-18 09:10:03.133727: Marginal energy costs matrix computed: min=21.48 max=32.22
2026-08-18 09:10:03.203115: Rate array import [{'start': 550, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 550, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:10:03.204257: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 09:10:03.204301: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:10:03.204320: - The battery is currently at 74% and is in eco mode for the next 14 hours.
2026-08-18 09:10:03.204335: - For the next 48 hours there will be no solar generation.
2026-08-18 09:10:03.204349: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 09:10:03.204363: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:10:03.204385:
2026-08-18 09:10:03.257326: Plan calculation took 1.09 seconds
2026-08-18 09:10:03.261482: No high rate period found
2026-08-18 09:10:03.312091: Import threshold used for optimisation was 8.0p
2026-08-18 09:10:03.359113: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:10:03.364738: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 74%, target 100%
2026-08-18 09:10:03.364870: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:10:03.364981: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:10:03.365218: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:10:03.365315: No export window planned
2026-08-18 09:10:03.365597: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:10:03.365687: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:10:03.365946: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:10:03.366221: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:10:03.366308: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:10:03.366423: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:10:03.366563: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366617: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366694: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366729: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366756: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366780: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366817: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366886: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366917: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366969: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.366992: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.367016: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.367048: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:03.367070: Inverter 0 count register writes 0
2026-08-18 09:10:03.383988: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 09:10:03.384156: Recompute is saving previous plan...
2026-08-18 09:10:03.385046: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 09:10:03.385097: Best export window [ ]
2026-08-18 09:10:03.385846: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:10:03.388953: Load divergence over 8.0 hours mean 424.56W, min 345.6W, max 712.8W, std dev 64.68W, divergence 7.62%
2026-08-18 09:10:03.404820: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:10:03.404924: LoadML is_calculating False
2026-08-18 09:10:03.404981: Creating pool of 12 processes to match your CPU count
2026-08-18 09:10:03.487517: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 09:10:03.488253: Optimise levels pass started at 2026-08-18 09:10:03
2026-08-18 09:10:03.488302: Optimise all windows, total charge 24 export 1
2026-08-18 09:10:04.110794: >> Region optimisation pass width 960 gives best_metric 318.55p, best_cost 325.25p, best_cycle 39.17kWh, best_import 24.28kWh
2026-08-18 09:10:04.259936: >> Region optimisation pass width 480 gives best_metric 318.55p, best_cost 325.25p, best_cycle 39.17kWh, best_import 24.28kWh
2026-08-18 09:10:04.501435: >> Region optimisation pass width 240 gives best_metric 318.55p, best_cost 325.25p, best_cycle 39.17kWh, best_import 24.28kWh
2026-08-18 09:10:05.047182: >> Region optimisation pass width 120 gives best_metric 318.55p, best_cost 325.25p, best_cycle 39.17kWh, best_import 24.28kWh
2026-08-18 09:10:05.047445: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 09:10:05.047529: Optimise levels pass ended at 2026-08-18 09:10:05, duration 1.6 seconds tried 45 combinations
2026-08-18 09:10:05.047603: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 318.55p, best_keep 0kWh, best_cycle 39.17kWh, best_carbon 0kg, best_import 24.28kWh
2026-08-18 09:10:05.076462: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 09:10:07.949780: Tweak plan optimisation started metric 266.72p, cost 277.93p
2026-08-18 09:10:08.308272: Tweak optimisation finished metric 266.72p, cost 277.93p, metric_keep 0kWh, cycle 35.39kWh, carbon 0kg, import 18.37kWh, changed 8 window(s)
2026-08-18 09:10:08.327976: Swap charge optimisation started metric 266.72p, cost 277.93p, min_improvement_swap 0.1p
2026-08-18 09:10:08.997230: Swap charge optimisation finished metric 266.72p, cost 277.93p
2026-08-18 09:10:09.104937: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 265.21p -> 264.63p, plan now metric 267.63p, cost 273.77p, cycle 35.4kWh, import 17.85kWh
2026-08-18 09:10:09.113528: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:10:09.113809: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:10:09.114022: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:10:09.114165: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:10:09.143379: Previous plan best metric is 266.85 (cost 278.08) and new plan best metric is 266.72 (cost 277.93)
2026-08-18 09:10:09.143554: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 09:10:09.143685: Plan valid is now true after recompute was False
2026-08-18 09:10:09.167362: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 607.8p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.18kWh, PV 0.0kWh
2026-08-18 09:10:09.562073: Battery has 14.83 hours left - now at 11.83kWh
2026-08-18 09:10:09.600888: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 632.09p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.41kWh, PV 0.0kWh
2026-08-18 09:10:09.676587: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 333.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.41kWh, PV 0.0kWh
2026-08-18 09:10:09.748011: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 322.7p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.18kWh, PV 0.0kWh
2026-08-18 09:10:09.748088: Saving plan best values to HA entities
2026-08-18 09:10:09.891228: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 09:10:09.895767: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 09:10:09.900675: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.14kWh, house 0.0kWh, export 0.0kWh, metric 322.7p, metric10 333.24p
2026-08-18 09:10:09.963732: Marginal costs baseline metric (no standing charge): 276.0684
2026-08-18 09:10:10.247341: Marginal energy costs matrix computed: min=21.48 max=32.22
2026-08-18 09:10:10.318684: Rate array import [{'start': 550, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 550, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:10:10.319495: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 09:10:10.319551: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:10:10.319593: - The battery is currently at 74% and is in eco mode for the next 14 hours.
2026-08-18 09:10:10.319628: - For the next 48 hours there will be no solar generation.
2026-08-18 09:10:10.319687: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 09:10:10.319725: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:10:10.319768:
2026-08-18 09:10:10.377401: Plan calculation took 6.99 seconds
2026-08-18 09:10:10.377769: Inverter 0: Type SK Sunsynk
2026-08-18 09:10:10.377826: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:10:10.378104: Reserve min: 7%, battery_min: 7%
2026-08-18 09:10:10.378210: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:10:10.378666: Inverter 0 SoC: 11.83kW 74%, current charge rate 5000W, current discharge rate 5250W, current battery power 473W, current battery voltage 51.2V, grid power -55W, load power 532W, PV Power 0W
2026-08-18 09:10:10.378966: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:10:10.379099: Inverter 0 scheduled charge enable is False
2026-08-18 09:10:10.379152: Inverter 0 charge windows currently []
2026-08-18 09:10:10.379207: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:10:10.379371: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:10:10.379425: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:10:10.379495: Inverter 0 scheduled discharge enable is False
2026-08-18 09:10:10.379702: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:10:10.379747: Inverter 0 discharge windows currently []
2026-08-18 09:10:10.379782: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:10:10.379815: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:10:10.379835: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:10:10.433065: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 74%, target 100%
2026-08-18 09:10:10.433187: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:10:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:10:10.433245: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:10:10.433394: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:10:10.433461: No export window planned
2026-08-18 09:10:10.433550: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:10:10.433581: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:10:10.433704: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:10:10.433837: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:10:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:10:10.433880: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:10:10.433932: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:10:10.434003: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434036: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434088: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434108: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434128: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434152: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434197: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434220: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434241: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434265: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434307: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434328: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434358: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:10:10.434374: Inverter 0 count register writes 0
2026-08-18 09:10:10.452832: Total inverter register writes now 867
2026-08-18 09:10:10.492566: Info: Completed run status Demand
2026-08-18 09:10:10.501346: Info: record_status Demand
2026-08-18 09:10:10.509688: Saved current settings to /config/predbat_config.json
2026-08-18 09:10:10.510049: Compare, best tariff: current metric 129.87p
2026-08-18 09:10:48.649746: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:10:48.649971: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:10:48.650005: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:10:48.650187: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:10:48.650245: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:10:48.650279: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:10:48.650316: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:12:48.878372: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:12:48.878727: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:12:48.878800: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:12:48.879006: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:12:48.879052: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:12:48.879080: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:12:48.879122: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:14:49.114412: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:14:49.114660: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:14:49.114702: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:14:49.114844: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:14:49.114904: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:14:49.114925: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:14:49.114943: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:15:00.200845: --------------- PredBat - update at 2026-08-18 09:15:00+01:00 with clock skew 0 minutes, minutes now 555
2026-08-18 09:15:00.201505: Saved current settings to /config/predbat_config.json
2026-08-18 09:15:00.201636: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 110.0 minutes
2026-08-18 09:15:00.201712: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:15:00.201788: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:15:00.219332: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:15:00.219452: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:15:00.219636: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:15:00.220208: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:15:00.220331: Predbat mode is set to Control charge & discharge
2026-08-18 09:15:00.391692: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:15:00.391830: Using load_power data to fill gaps in load_today data
2026-08-18 09:15:01.118461: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:15:01.118663: Zero load period starting at 2026-08-17T10:54:00+0100 (1341 minutes) for 189 minutes with base value 208.35
2026-08-18 09:15:01.119727: Processing 721 30-minute periods for power integration
2026-08-18 09:15:01.317561: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:15:01.317770: Car charging hold False, threshold 6.0kWh
2026-08-18 09:15:01.318274: Current data so far today: load 4.4kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:15:01.331288: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:15:01.331814: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:15:01.332739: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:15:01.332835: Standing charge is set to 46.63p
2026-08-18 09:15:01.421409: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:15:01.421685: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:15:01.421945: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:15:01.422843: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:15:01.422974: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:15:01.427242: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:15:01.427697: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:15:01.462373: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:15:01.462489: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:15:01.463639: High export rate found rates in range 99p to -99p
2026-08-18 09:15:01.486517: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:15:01.486640: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:15:01.496262: Battery level now 11.83kWh, -1hr ago 12.16kWh, at midnight 6.84kWh, battery value change in the last hour -2.25p, change today 34.31p, rate_forward 6.87p
2026-08-18 09:15:01.496634: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.45kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:15:01.540619: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:15:01.540744: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:15:01.606450: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:15:01.631380: Today's load divergence 92.9%, in-day adjustment 92.9%, damping 0.95x, yesterday 92.68% today 93.26% blend 61.46%
2026-08-18 09:15:01.631473: Today's predicted so far 5.43kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 5.43kWh forecast extra.
2026-08-18 09:15:01.631516: Today's actual load so far 4.36kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 09:15:01.661960: Inverter 0: Type SK Sunsynk
2026-08-18 09:15:01.662029: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:15:01.662189: Reserve min: 7%, battery_min: 7%
2026-08-18 09:15:01.662253: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:15:01.662499: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 472W, current battery voltage 51.2V, grid power -53W, load power 529W, PV Power 0W
2026-08-18 09:15:01.662668: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:15:01.662752: Inverter 0 scheduled charge enable is False
2026-08-18 09:15:01.662796: Inverter 0 charge windows currently []
2026-08-18 09:15:01.662821: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:15:01.662933: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:15:01.662966: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:15:01.662997: Inverter 0 scheduled discharge enable is False
2026-08-18 09:15:01.663121: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:15:01.663155: Inverter 0 discharge windows currently []
2026-08-18 09:15:01.663173: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:15:01.663188: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:15:01.663204: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:15:01.715523: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:15:01.715624: Plan was last updated on 2026-08-18 09:10:00+01:00 and is now 5.0 minutes old
2026-08-18 09:15:01.715825: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:15:01.715866: Best export window [ ]
2026-08-18 09:15:01.716644: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:15:01.719210: Load divergence over 8.0 hours mean 424.71W, min 307.2W, max 753.0W, std dev 79.22W, divergence 9.33%
2026-08-18 09:15:01.734448: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:15:01.734558: LoadML is_calculating False
2026-08-18 09:15:01.734610: Creating pool of 12 processes to match your CPU count
2026-08-18 09:15:01.833076: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.29kWh, PV 0.0kWh
2026-08-18 09:15:01.959790: Battery has 14.58 hours left - now at 11.68kWh
2026-08-18 09:15:01.996248: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.53kWh, PV 0.0kWh
2026-08-18 09:15:02.062434: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 339.19p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.53kWh, PV 0.0kWh
2026-08-18 09:15:02.134100: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 327.62p, metric_keep 0kWh, min_soc 1.54kWh @ 08-18 23:25:00, load 30.29kWh, PV 0.0kWh
2026-08-18 09:15:02.134176: Saving plan best values to HA entities
2026-08-18 09:15:02.277494: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:15:02.282431: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:15:02.287116: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.75kWh, house 0kWh, export 0.0kWh, metric 327.62p, metric10 339.19p
2026-08-18 09:15:02.348581: Marginal costs baseline metric (no standing charge): 280.9895
2026-08-18 09:15:02.567933: Marginal energy costs matrix computed: min=24.05 max=32.54
2026-08-18 09:15:02.635462: Rate array import [{'start': 555, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 555, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:15:02.636110: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 09:15:02.636148: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:15:02.636167: - The battery is currently at 73% and is in eco mode for the next 14 hours.
2026-08-18 09:15:02.636181: - For the next 48 hours there will be no solar generation.
2026-08-18 09:15:02.636195: - You will reach a minimum of 10% battery in 14 hours.
2026-08-18 09:15:02.636208: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:15:02.636229:
2026-08-18 09:15:02.688424: Plan calculation took 0.97 seconds
2026-08-18 09:15:02.691748: No high rate period found
2026-08-18 09:15:02.737136: Import threshold used for optimisation was 8.0p
2026-08-18 09:15:02.779285: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:15:02.783815: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 73%, target 100%
2026-08-18 09:15:02.783943: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:15:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:15:02.784040: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:15:02.784236: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:15:02.784316: No export window planned
2026-08-18 09:15:02.784420: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:15:02.784448: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:15:02.784574: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:15:02.784718: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:15:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:15:02.784769: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:15:02.784820: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:15:02.784893: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.784943: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.784970: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.784990: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785010: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785029: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785050: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785102: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785131: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785152: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785171: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785192: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785211: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785230: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:15:02.785250: Inverter 0 count register writes 0
2026-08-18 09:15:02.799248: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 09:15:02.804498: Total inverter register writes now 867
2026-08-18 09:15:02.833890: Info: Completed run status Demand
2026-08-18 09:15:02.839268: Info: record_status Demand
2026-08-18 09:15:02.845645: Saved current settings to /config/predbat_config.json
2026-08-18 09:15:02.845914: Compare, best tariff: current metric 129.87p
2026-08-18 09:15:33.939080: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:15:33.939306: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:15:33.939354: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:15:33.939494: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:15:33.939557: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:15:33.939585: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:15:33.939611: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:17:34.154851: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:17:34.155078: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:17:34.155147: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:17:34.155292: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:17:34.155330: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:17:34.155351: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:17:34.155369: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:19:34.376369: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:19:34.376736: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:19:34.376819: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:19:34.376981: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:19:34.377023: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:19:34.377044: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:19:34.377062: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:20:00.491593: --------------- PredBat - update at 2026-08-18 09:20:00+01:00 with clock skew 0 minutes, minutes now 560
2026-08-18 09:20:00.492281: Saved current settings to /config/predbat_config.json
2026-08-18 09:20:00.492392: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 115.0 minutes
2026-08-18 09:20:00.492489: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:20:00.492634: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:20:00.512023: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:20:00.512172: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:20:00.512418: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:20:00.513117: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:20:00.513276: Predbat mode is set to Control charge & discharge
2026-08-18 09:20:00.735740: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:20:00.735863: Using load_power data to fill gaps in load_today data
2026-08-18 09:20:01.721995: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:20:01.722235: Zero load period starting at 2026-08-17T10:54:00+0100 (1346 minutes) for 189 minutes with base value 208.325
2026-08-18 09:20:01.723760: Processing 721 30-minute periods for power integration
2026-08-18 09:20:01.942689: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:20:01.942849: Car charging hold False, threshold 6.0kWh
2026-08-18 09:20:01.942925: Current data so far today: load 4.45kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:20:01.962981: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:20:01.963093: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:20:01.964155: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:20:01.964244: Standing charge is set to 46.63p
2026-08-18 09:20:02.072316: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:20:02.072625: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:20:02.072889: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:20:02.073886: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:20:02.073980: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:20:02.078242: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:20:02.078572: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:20:02.116514: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:20:02.116613: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:20:02.117975: High export rate found rates in range 99p to -99p
2026-08-18 09:20:02.148933: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:20:02.149074: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:20:02.161720: Battery level now 11.68kWh, -1hr ago 12.16kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 33.26p, rate_forward 6.87p
2026-08-18 09:20:02.162247: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:20:02.224305: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:20:02.224497: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:20:02.324308: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:20:02.368682: Today's load divergence 93.1%, in-day adjustment 92.98%, damping 0.95x, yesterday 92.68% today 93.45% blend 61.11%
2026-08-18 09:20:02.368790: Today's predicted so far 5.44kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 5.44kWh forecast extra.
2026-08-18 09:20:02.368844: Today's actual load so far 4.4kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 09:20:02.425815: Inverter 0: Type SK Sunsynk
2026-08-18 09:20:02.425897: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:20:02.426045: Reserve min: 7%, battery_min: 7%
2026-08-18 09:20:02.426101: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:20:02.426314: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 453W, current battery voltage 51.2V, grid power -56W, load power 510W, PV Power 0W
2026-08-18 09:20:02.426440: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:20:02.426527: Inverter 0 scheduled charge enable is False
2026-08-18 09:20:02.426551: Inverter 0 charge windows currently []
2026-08-18 09:20:02.426572: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:20:02.426709: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:20:02.426758: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:20:02.426814: Inverter 0 scheduled discharge enable is False
2026-08-18 09:20:02.426956: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:20:02.426993: Inverter 0 discharge windows currently []
2026-08-18 09:20:02.427018: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:20:02.427048: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:20:02.427069: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:20:02.502797: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:20:02.502906: Plan was last updated on 2026-08-18 09:10:00+01:00 and is now 10.0 minutes old
2026-08-18 09:20:02.503109: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:20:02.503149: Best export window [ ]
2026-08-18 09:20:02.504091: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:20:02.507367: Load divergence over 8.0 hours mean 423.16W, min 316.8W, max 693.0W, std dev 68.95W, divergence 8.15%
2026-08-18 09:20:02.530239: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:20:02.530357: LoadML is_calculating False
2026-08-18 09:20:02.530422: Creating pool of 12 processes to match your CPU count
2026-08-18 09:20:02.659386: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.41kWh, PV 0.0kWh
2026-08-18 09:20:02.817090: Battery has 14.5 hours left - now at 11.68kWh
2026-08-18 09:20:02.865158: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 634.88p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.64kWh, PV 0.0kWh
2026-08-18 09:20:02.950014: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 341.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.64kWh, PV 0.0kWh
2026-08-18 09:20:03.046157: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 331.55p, metric_keep 0kWh, min_soc 1.57kWh @ 08-18 23:25:00, load 30.41kWh, PV 0.0kWh
2026-08-18 09:20:03.046244: Saving plan best values to HA entities
2026-08-18 09:20:03.213856: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:20:03.219431: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:20:03.224526: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.24kWh, house 0.0kWh, export 0.0kWh, metric 331.55p, metric10 341.59p
2026-08-18 09:20:03.311144: Marginal costs baseline metric (no standing charge): 284.9138
2026-08-18 09:20:03.651426: Marginal energy costs matrix computed: min=23.29 max=32.44
2026-08-18 09:20:03.748925: Rate array import [{'start': 560, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 560, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:20:03.749943: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 09:20:03.750017: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:20:03.750053: - The battery is currently at 73% and is in eco mode for the next 14 hours.
2026-08-18 09:20:03.750078: - For the next 48 hours there will be no solar generation.
2026-08-18 09:20:03.750105: - You will reach a minimum of 10% battery in 14 hours.
2026-08-18 09:20:03.750123: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:20:03.750146:
2026-08-18 09:20:03.830284: Plan calculation took 1.33 seconds
2026-08-18 09:20:03.834203: No high rate period found
2026-08-18 09:20:03.893306: Import threshold used for optimisation was 8.0p
2026-08-18 09:20:03.956268: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:20:03.961947: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 73%, target 100%
2026-08-18 09:20:03.962074: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:20:03.962183: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:20:03.962535: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:20:03.962678: No export window planned
2026-08-18 09:20:03.962893: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:20:03.962947: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:20:03.963138: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:20:03.963390: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:20:03.963495: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:20:03.963612: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:20:03.963766: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.963829: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.963891: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.963988: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964043: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964105: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964170: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964297: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964370: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964425: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964492: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964523: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964546: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964570: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:03.964595: Inverter 0 count register writes 0
2026-08-18 09:20:03.983566: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 09:20:03.983734: Recompute is saving previous plan...
2026-08-18 09:20:03.984718: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 09:20:03.984791: Best export window [ ]
2026-08-18 09:20:03.985737: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:20:03.990172: Load divergence over 8.0 hours mean 423.16W, min 316.8W, max 693.0W, std dev 68.95W, divergence 8.15%
2026-08-18 09:20:04.011002: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:20:04.011120: LoadML is_calculating False
2026-08-18 09:20:04.011183: Creating pool of 12 processes to match your CPU count
2026-08-18 09:20:04.099694: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 09:20:04.100564: Optimise levels pass started at 2026-08-18 09:20:04
2026-08-18 09:20:04.100631: Optimise all windows, total charge 24 export 1
2026-08-18 09:20:04.739386: >> Region optimisation pass width 960 gives best_metric 320.01p, best_cost 325.95p, best_cycle 39.27kWh, best_import 24.37kWh
2026-08-18 09:20:04.879289: >> Region optimisation pass width 480 gives best_metric 320.01p, best_cost 325.95p, best_cycle 39.27kWh, best_import 24.37kWh
2026-08-18 09:20:05.158133: >> Region optimisation pass width 240 gives best_metric 320.01p, best_cost 325.95p, best_cycle 39.27kWh, best_import 24.37kWh
2026-08-18 09:20:05.724093: >> Region optimisation pass width 120 gives best_metric 320.01p, best_cost 325.95p, best_cycle 39.27kWh, best_import 24.37kWh
2026-08-18 09:20:05.724315: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 09:20:05.724414: Optimise levels pass ended at 2026-08-18 09:20:05, duration 1.6 seconds tried 45 combinations
2026-08-18 09:20:05.724531: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 320.01p, best_keep 0kWh, best_cycle 39.27kWh, best_carbon 0kg, best_import 24.37kWh
2026-08-18 09:20:05.748889: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 09:20:08.935812: Tweak plan optimisation started metric 267.47p, cost 278.6p
2026-08-18 09:20:09.335810: Tweak optimisation finished metric 267.47p, cost 278.6p, metric_keep 0kWh, cycle 35.4kWh, carbon 0kg, import 18.45kWh, changed 8 window(s)
2026-08-18 09:20:09.357343: Swap charge optimisation started metric 267.47p, cost 278.6p, min_improvement_swap 0.1p
2026-08-18 09:20:10.123836: Swap charge optimisation finished metric 267.47p, cost 278.6p
2026-08-18 09:20:10.259271: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 265.87p -> 265.29p, plan now metric 268.36p, cost 274.45p, cycle 35.4kWh, import 17.93kWh
2026-08-18 09:20:10.267823: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:20:10.268402: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:20:10.268635: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:20:10.268797: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:20:10.304122: Previous plan best metric is 267.53 (cost 278.68) and new plan best metric is 267.47 (cost 278.6)
2026-08-18 09:20:10.304305: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 09:20:10.304435: Plan valid is now true after recompute was False
2026-08-18 09:20:10.331715: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 608.34p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.21kWh, PV 0.0kWh
2026-08-18 09:20:10.446782: Battery has 14.5 hours left - now at 11.68kWh
2026-08-18 09:20:10.495288: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 633.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.44kWh, PV 0.0kWh
2026-08-18 09:20:10.602657: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 334.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.44kWh, PV 0.0kWh
2026-08-18 09:20:10.795177: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 323.31p, metric_keep 0kWh, min_soc 1.57kWh @ 08-18 23:25:00, load 30.21kWh, PV 0.0kWh
2026-08-18 09:20:10.795266: Saving plan best values to HA entities
2026-08-18 09:20:10.957205: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:20:10.962424: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:20:10.967984: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.21kWh, house 0.0kWh, export 0.0kWh, metric 323.31p, metric10 334.39p
2026-08-18 09:20:11.049347: Marginal costs baseline metric (no standing charge): 276.6808
2026-08-18 09:20:11.306652: Marginal energy costs matrix computed: min=23.29 max=32.44
2026-08-18 09:20:11.372865: Rate array import [{'start': 560, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 560, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:20:11.373502: - Your estimated bill for today is £1.55 and tomorrow is £1.93
2026-08-18 09:20:11.373538: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:20:11.373557: - The battery is currently at 73% and is in eco mode for the next 14 hours.
2026-08-18 09:20:11.373572: - For the next 48 hours there will be no solar generation.
2026-08-18 09:20:11.373588: - You will reach a minimum of 10% battery in 14 hours.
2026-08-18 09:20:11.373614: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:20:11.373653:
2026-08-18 09:20:11.427273: Plan calculation took 7.44 seconds
2026-08-18 09:20:11.427591: Inverter 0: Type SK Sunsynk
2026-08-18 09:20:11.427639: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:20:11.427858: Reserve min: 7%, battery_min: 7%
2026-08-18 09:20:11.427985: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:20:11.428358: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 453W, current battery voltage 51.2V, grid power -56W, load power 510W, PV Power 0W
2026-08-18 09:20:11.428600: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:20:11.428704: Inverter 0 scheduled charge enable is False
2026-08-18 09:20:11.428738: Inverter 0 charge windows currently []
2026-08-18 09:20:11.428768: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:20:11.428882: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:20:11.428922: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:20:11.428959: Inverter 0 scheduled discharge enable is False
2026-08-18 09:20:11.429089: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:20:11.429127: Inverter 0 discharge windows currently []
2026-08-18 09:20:11.429149: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:20:11.429171: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:20:11.429188: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:20:11.483705: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 73%, target 100%
2026-08-18 09:20:11.483847: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:20:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:20:11.483947: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:20:11.484139: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:20:11.484220: No export window planned
2026-08-18 09:20:11.484326: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:20:11.484362: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:20:11.484517: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:20:11.484772: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:20:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:20:11.484846: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:20:11.484930: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:20:11.485028: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485062: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485092: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485118: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485149: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485174: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485199: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485262: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485291: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485316: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485347: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485371: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485395: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485424: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:20:11.485445: Inverter 0 count register writes 0
2026-08-18 09:20:11.508215: Total inverter register writes now 867
2026-08-18 09:20:11.552205: Info: Completed run status Demand
2026-08-18 09:20:11.560950: Info: record_status Demand
2026-08-18 09:20:11.570673: Saved current settings to /config/predbat_config.json
2026-08-18 09:20:11.571001: Compare, best tariff: current metric 129.87p
2026-08-18 09:20:48.700055: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:20:48.700395: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:20:48.700466: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:20:48.700654: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:20:48.700710: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:20:48.700743: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:20:48.700763: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:22:48.947281: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:22:48.947521: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:22:48.947564: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:22:48.947698: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:22:48.947735: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:22:48.947757: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:22:48.947777: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:24:49.166635: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:24:49.166891: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:24:49.166933: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:24:49.167068: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:24:49.167106: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:24:49.167128: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:24:49.167146: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:25:00.275946: --------------- PredBat - update at 2026-08-18 09:25:00+01:00 with clock skew 0 minutes, minutes now 565
2026-08-18 09:25:00.276795: Saved current settings to /config/predbat_config.json
2026-08-18 09:25:00.276917: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 120.0 minutes
2026-08-18 09:25:00.277008: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:25:00.277125: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:25:00.296007: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:25:00.296125: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:25:00.296284: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:25:00.296804: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:25:00.296922: Predbat mode is set to Control charge & discharge
2026-08-18 09:25:00.493786: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:25:00.493942: Using load_power data to fill gaps in load_today data
2026-08-18 09:25:01.335093: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:25:01.335786: Zero load period starting at 2026-08-17T10:54:00+0100 (1351 minutes) for 189 minutes with base value 208.3
2026-08-18 09:25:01.336895: Processing 721 30-minute periods for power integration
2026-08-18 09:25:01.529152: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:25:01.529273: Car charging hold False, threshold 6.0kWh
2026-08-18 09:25:01.529317: Current data so far today: load 4.5kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:25:01.543493: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:25:01.543586: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:25:01.544564: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:25:01.544646: Standing charge is set to 46.63p
2026-08-18 09:25:01.668820: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:25:01.669151: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:25:01.669486: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:25:01.670881: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:25:01.670993: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:25:01.678569: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:25:01.679038: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:25:01.720182: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:25:01.720284: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:25:01.721481: High export rate found rates in range 99p to -99p
2026-08-18 09:25:01.744835: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:25:01.744939: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:25:01.756635: Battery level now 11.68kWh, -1hr ago 12.0kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 33.26p, rate_forward 6.87p
2026-08-18 09:25:01.756992: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:25:01.809629: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:25:01.809790: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:25:01.891107: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:25:01.921960: Today's load divergence 93.42%, in-day adjustment 93.1%, damping 0.95x, yesterday 92.68% today 93.75% blend 60.76%
2026-08-18 09:25:01.922047: Today's predicted so far 5.45kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 5.45kWh forecast extra.
2026-08-18 09:25:01.922079: Today's actual load so far 4.46kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 09:25:01.955775: Inverter 0: Type SK Sunsynk
2026-08-18 09:25:01.955857: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:25:01.956083: Reserve min: 7%, battery_min: 7%
2026-08-18 09:25:01.956150: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:25:01.956415: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 447W, current battery voltage 51.2V, grid power -56W, load power 507W, PV Power 0W
2026-08-18 09:25:01.956570: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:25:01.956654: Inverter 0 scheduled charge enable is False
2026-08-18 09:25:01.956682: Inverter 0 charge windows currently []
2026-08-18 09:25:01.956707: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:25:01.956810: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:25:01.956845: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:25:01.956880: Inverter 0 scheduled discharge enable is False
2026-08-18 09:25:01.956999: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:25:01.957034: Inverter 0 discharge windows currently []
2026-08-18 09:25:01.957056: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:25:01.957076: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:25:01.957093: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:25:02.020603: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:25:02.020741: Plan was last updated on 2026-08-18 09:20:00+01:00 and is now 5.0 minutes old
2026-08-18 09:25:02.020972: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:25:02.021013: Best export window [ ]
2026-08-18 09:25:02.021919: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:25:02.025103: Load divergence over 8.0 hours mean 421.79W, min 324.0W, max 660.0W, std dev 63.63W, divergence 7.54%
2026-08-18 09:25:02.043369: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:25:02.043474: LoadML is_calculating False
2026-08-18 09:25:02.043530: Creating pool of 12 processes to match your CPU count
2026-08-18 09:25:02.160502: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.47p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:50:00, load 30.35kWh, PV 0.0kWh
2026-08-18 09:25:02.281750: Battery has 14.42 hours left - now at 11.68kWh
2026-08-18 09:25:02.327754: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 634.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.59kWh, PV 0.0kWh
2026-08-18 09:25:02.405915: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 338.28p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.59kWh, PV 0.0kWh
2026-08-18 09:25:02.482535: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 327.23p, metric_keep 0kWh, min_soc 1.56kWh @ 08-19 23:25:00, load 30.35kWh, PV 0.0kWh
2026-08-18 09:25:02.482624: Saving plan best values to HA entities
2026-08-18 09:25:02.632498: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:25:02.637740: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:25:02.643592: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.7kWh, house 0.0kWh, export 0.0kWh, metric 327.23p, metric10 338.28p
2026-08-18 09:25:02.720262: Marginal costs baseline metric (no standing charge): 280.6009
2026-08-18 09:25:02.995626: Marginal energy costs matrix computed: min=23.11 max=32.42
2026-08-18 09:25:03.080668: Rate array import [{'start': 565, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 565, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:25:03.081594: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 09:25:03.081646: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:25:03.081670: - The battery is currently at 73% and is in eco mode for the next 14 hours.
2026-08-18 09:25:03.081693: - For the next 48 hours there will be no solar generation.
2026-08-18 09:25:03.081734: - You will reach a minimum of 10% battery in 38 hours.
2026-08-18 09:25:03.081770: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:25:03.081807:
2026-08-18 09:25:03.156264: Plan calculation took 1.14 seconds
2026-08-18 09:25:03.160393: No high rate period found
2026-08-18 09:25:03.239080: Import threshold used for optimisation was 8.0p
2026-08-18 09:25:03.293666: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:25:03.299368: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 73%, target 100%
2026-08-18 09:25:03.299522: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:25:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:25:03.299663: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:25:03.300060: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:25:03.300198: No export window planned
2026-08-18 09:25:03.300376: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:25:03.300430: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:25:03.300723: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:25:03.301021: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:25:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:25:03.301148: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:25:03.301315: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:25:03.301521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.301601: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.301674: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.301754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.301824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.301886: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.301963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302148: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302249: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302337: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302392: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302464: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302506: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302552: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:25:03.302602: Inverter 0 count register writes 0
2026-08-18 09:25:03.322937: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 09:25:03.329625: Total inverter register writes now 867
2026-08-18 09:25:03.366424: Info: Completed run status Demand
2026-08-18 09:25:03.373831: Info: record_status Demand
2026-08-18 09:25:03.381752: Saved current settings to /config/predbat_config.json
2026-08-18 09:25:03.382109: Compare, best tariff: current metric 129.87p
2026-08-18 09:25:34.491833: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:25:34.492085: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:25:34.492136: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:25:34.492282: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:25:34.492323: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:25:34.492345: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:25:34.492367: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:27:48.731718: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:27:48.731998: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:27:48.732049: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:27:48.732230: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:27:48.732272: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:27:48.732295: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:27:48.732316: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:29:48.953678: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:29:48.953909: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:29:48.953943: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:29:48.954072: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:29:48.954110: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:29:48.954132: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:29:48.954150: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:30:00.036480: --------------- PredBat - update at 2026-08-18 09:30:00+01:00 with clock skew 0 minutes, minutes now 570
2026-08-18 09:30:00.038751: Saved current settings to /config/predbat_config.json
2026-08-18 09:30:00.597888: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:30:00.598168: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:30:00.637600: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:30:00.637742: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:30:00.637972: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:30:00.638573: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:30:00.638724: Predbat mode is set to Control charge & discharge
2026-08-18 09:30:00.865944: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:30:00.866074: Using load_power data to fill gaps in load_today data
2026-08-18 09:30:01.869924: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:30:01.870102: Zero load period starting at 2026-08-17T10:54:00+0100 (1356 minutes) for 189 minutes with base value 208.25
2026-08-18 09:30:01.871159: Processing 721 30-minute periods for power integration
2026-08-18 09:30:02.082415: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:30:02.082543: Car charging hold False, threshold 6.0kWh
2026-08-18 09:30:02.082590: Current data so far today: load 4.4kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:30:02.097695: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:30:02.097797: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:30:02.098584: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:30:02.098657: Standing charge is set to 46.63p
2026-08-18 09:30:02.209520: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:30:02.209893: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:30:02.210176: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:30:02.211322: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:30:02.211508: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:30:02.217278: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:30:02.217763: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:30:02.262502: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:30:02.262636: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:30:02.263993: High export rate found rates in range 99p to -99p
2026-08-18 09:30:02.294316: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:30:02.294467: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:30:02.307064: Battery level now 11.68kWh, -1hr ago 12.0kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 33.26p, rate_forward 6.87p
2026-08-18 09:30:02.307440: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.35kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:30:02.378732: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:30:02.378899: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:30:02.467350: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:30:02.502329: Today's load divergence 92.23%, in-day adjustment 92.65%, damping 0.95x, yesterday 92.68% today 92.62% blend 60.42%
2026-08-18 09:30:02.502433: Today's predicted so far 5.56kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 5.56kWh forecast extra.
2026-08-18 09:30:02.502466: Today's actual load so far 4.4kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 09:30:02.541095: Inverter 0: Type SK Sunsynk
2026-08-18 09:30:02.541184: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:30:02.541382: Reserve min: 7%, battery_min: 7%
2026-08-18 09:30:02.541461: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:30:02.541714: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 472W, current battery voltage 51.2V, grid power -56W, load power 533W, PV Power 0W
2026-08-18 09:30:02.541866: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:30:02.541973: Inverter 0 scheduled charge enable is False
2026-08-18 09:30:02.542002: Inverter 0 charge windows currently []
2026-08-18 09:30:02.542027: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:30:02.542141: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:30:02.542176: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:30:02.542212: Inverter 0 scheduled discharge enable is False
2026-08-18 09:30:02.542337: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:30:02.542386: Inverter 0 discharge windows currently []
2026-08-18 09:30:02.542414: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:30:02.542450: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:30:02.542470: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:30:02.606635: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:30:02.606736: Plan was last updated on 2026-08-18 09:20:00+01:00 and is now 10.0 minutes old
2026-08-18 09:30:02.607027: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:30:02.607078: Best export window [ ]
2026-08-18 09:30:02.608023: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:30:02.611326: Load divergence over 8.0 hours mean 421.91W, min 345.6W, max 651.6W, std dev 55.19W, divergence 6.54%
2026-08-18 09:30:02.630313: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:30:02.630436: LoadML is_calculating False
2026-08-18 09:30:02.630506: Creating pool of 12 processes to match your CPU count
2026-08-18 09:30:02.761604: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 609.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.25kWh, PV 0.0kWh
2026-08-18 09:30:02.896617: Battery has 14.5 hours left - now at 11.68kWh
2026-08-18 09:30:02.955716: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 633.45p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.48kWh, PV 0.0kWh
2026-08-18 09:30:03.049632: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 340.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.48kWh, PV 0.0kWh
2026-08-18 09:30:03.143718: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 330.54p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.25kWh, PV 0.0kWh
2026-08-18 09:30:03.143889: Saving plan best values to HA entities
2026-08-18 09:30:03.330926: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:30:03.337043: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 09:30:03.342906: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.12kWh, house 0.0kWh, export 0.0kWh, metric 330.54p, metric10 340.2p
2026-08-18 09:30:03.422115: Marginal costs baseline metric (no standing charge): 283.9093
2026-08-18 09:30:03.724350: Marginal energy costs matrix computed: min=20.85 max=32.14
2026-08-18 09:30:03.817749: Rate array import [{'start': 570, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 570, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:30:03.818721: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 09:30:03.818839: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:30:03.818871: - The battery is currently at 73% and is in eco mode for the next 14 hours.
2026-08-18 09:30:03.818906: - For the next 48 hours there will be no solar generation.
2026-08-18 09:30:03.818946: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:30:03.818982: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:30:03.819018:
2026-08-18 09:30:03.886937: Plan calculation took 1.28 seconds
2026-08-18 09:30:03.890983: No high rate period found
2026-08-18 09:30:03.944649: Import threshold used for optimisation was 8.0p
2026-08-18 09:30:04.007258: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:30:04.015707: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 73%, target 100%
2026-08-18 09:30:04.015894: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:30:04.016101: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:30:04.016467: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:30:04.016580: No export window planned
2026-08-18 09:30:04.016803: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:30:04.016867: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:30:04.017089: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:30:04.017389: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:30:04.017489: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:30:04.017600: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:30:04.017765: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.017848: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.017904: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.017962: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018032: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018124: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018185: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018495: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018595: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018637: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018693: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018749: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018801: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018870: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:04.018921: Inverter 0 count register writes 0
2026-08-18 09:30:04.037537: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 09:30:04.037708: Recompute is saving previous plan...
2026-08-18 09:30:04.038747: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 09:30:04.038808: Best export window [ ]
2026-08-18 09:30:04.039688: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:30:04.043174: Load divergence over 8.0 hours mean 421.91W, min 345.6W, max 651.6W, std dev 55.19W, divergence 6.54%
2026-08-18 09:30:04.064144: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:30:04.064264: LoadML is_calculating False
2026-08-18 09:30:04.064340: Creating pool of 12 processes to match your CPU count
2026-08-18 09:30:04.161614: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 09:30:04.162760: Optimise levels pass started at 2026-08-18 09:30:04
2026-08-18 09:30:04.162838: Optimise all windows, total charge 24 export 1
2026-08-18 09:30:04.857149: >> Region optimisation pass width 960 gives best_metric 319.7p, best_cost 325.29p, best_cycle 39.65kWh, best_import 24.29kWh
2026-08-18 09:30:05.017598: >> Region optimisation pass width 480 gives best_metric 319.7p, best_cost 325.29p, best_cycle 39.65kWh, best_import 24.29kWh
2026-08-18 09:30:05.285419: >> Region optimisation pass width 240 gives best_metric 319.7p, best_cost 325.29p, best_cycle 39.65kWh, best_import 24.29kWh
2026-08-18 09:30:05.865550: >> Region optimisation pass width 120 gives best_metric 319.7p, best_cost 325.29p, best_cycle 39.65kWh, best_import 24.29kWh
2026-08-18 09:30:05.865790: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 09:30:05.865866: Optimise levels pass ended at 2026-08-18 09:30:05, duration 1.7 seconds tried 45 combinations
2026-08-18 09:30:05.865925: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 319.7p, best_keep 0kWh, best_cycle 39.65kWh, best_carbon 0kg, best_import 24.29kWh
2026-08-18 09:30:05.887541: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 09:30:09.009453: Tweak plan optimisation started metric 266.48p, cost 277.67p
2026-08-18 09:30:09.424714: Tweak optimisation finished metric 266.48p, cost 277.67p, metric_keep 0kWh, cycle 35.19kWh, carbon 0kg, import 18.34kWh, changed 8 window(s)
2026-08-18 09:30:09.446082: Swap charge optimisation started metric 266.48p, cost 277.67p, min_improvement_swap 0.1p
2026-08-18 09:30:10.234246: Swap charge optimisation finished metric 266.48p, cost 277.67p
2026-08-18 09:30:10.369797: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 264.98p -> 264.82p, plan now metric 266.92p, cost 275.63p, cycle 35.46kWh, import 18.08kWh
2026-08-18 09:30:10.379959: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:30:10.380281: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:30:10.380521: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:30:10.380693: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:30:10.417790: Previous plan best metric is 266.61 (cost 277.82) and new plan best metric is 266.48 (cost 277.67)
2026-08-18 09:30:10.417979: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 09:30:10.418152: Plan valid is now true after recompute was False
2026-08-18 09:30:10.446458: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 607.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.06kWh, PV 0.0kWh
2026-08-18 09:30:10.600670: Battery has 14.5 hours left - now at 11.68kWh
2026-08-18 09:30:10.779305: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 631.92p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.29kWh, PV 0.0kWh
2026-08-18 09:30:10.872521: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 333.12p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.29kWh, PV 0.0kWh
2026-08-18 09:30:10.949122: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 322.42p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.06kWh, PV 0.0kWh
2026-08-18 09:30:10.949205: Saving plan best values to HA entities
2026-08-18 09:30:11.117043: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:30:11.122633: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 09:30:11.128124: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.1kWh, house 0.0kWh, export 0.0kWh, metric 322.42p, metric10 333.12p
2026-08-18 09:30:11.202955: Marginal costs baseline metric (no standing charge): 275.7851
2026-08-18 09:30:11.493825: Marginal energy costs matrix computed: min=20.85 max=32.14
2026-08-18 09:30:11.568942: Rate array import [{'start': 570, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 570, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:30:11.569687: - Your estimated bill for today is £1.55 and tomorrow is £1.92
2026-08-18 09:30:11.569731: - Import rates are very expensive (33.8p) for the next 14 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:30:11.569754: - The battery is currently at 73% and is in eco mode for the next 14 hours.
2026-08-18 09:30:11.569772: - For the next 48 hours there will be no solar generation.
2026-08-18 09:30:11.569794: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:30:11.569811: - Your next charge slot will be in 14 hours where import rates will be cheap (8.0p).
2026-08-18 09:30:11.569829:
2026-08-18 09:30:11.635244: Plan calculation took 7.60 seconds
2026-08-18 09:30:11.635615: Inverter 0: Type SK Sunsynk
2026-08-18 09:30:11.635685: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:30:11.636081: Reserve min: 7%, battery_min: 7%
2026-08-18 09:30:11.636226: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:30:11.636789: Inverter 0 SoC: 11.68kW 73%, current charge rate 5000W, current discharge rate 5250W, current battery power 472W, current battery voltage 51.2V, grid power -56W, load power 533W, PV Power 0W
2026-08-18 09:30:11.637165: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:30:11.637324: Inverter 0 scheduled charge enable is False
2026-08-18 09:30:11.637398: Inverter 0 charge windows currently []
2026-08-18 09:30:11.637448: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:30:11.637651: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:30:11.637722: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:30:11.637786: Inverter 0 scheduled discharge enable is False
2026-08-18 09:30:11.637988: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:30:11.638057: Inverter 0 discharge windows currently []
2026-08-18 09:30:11.638084: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:30:11.638107: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:30:11.638124: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:30:11.693941: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 73%, target 100%
2026-08-18 09:30:11.694079: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:30:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:30:11.694179: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:30:11.694430: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:30:11.694525: No export window planned
2026-08-18 09:30:11.694700: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:30:11.694744: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:30:11.694947: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:30:11.695149: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:30:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:30:11.695208: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:30:11.695290: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:30:11.695434: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695487: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695529: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695583: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695630: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695679: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695738: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695830: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695893: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.695970: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.696018: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.696045: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.696070: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.696118: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:30:11.696158: Inverter 0 count register writes 0
2026-08-18 09:30:11.717626: Total inverter register writes now 867
2026-08-18 09:30:11.752685: Info: Completed run status Demand
2026-08-18 09:30:11.759169: Info: record_status Demand
2026-08-18 09:30:11.766575: Saved current settings to /config/predbat_config.json
2026-08-18 09:30:11.766898: Compare, best tariff: current metric 129.87p
2026-08-18 09:30:48.887846: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:30:48.888205: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:30:48.888254: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:30:48.888448: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:30:48.888493: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:30:48.888517: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:30:48.888559: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:32:49.104431: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:32:49.104657: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:32:49.104698: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:32:49.104830: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:32:49.104868: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:32:49.104889: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:32:49.104907: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:32:56.162989: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 09:32:57.126631: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:32:57.126798: Zero load period starting at 2026-08-17T10:54:00+0100 (1356 minutes) for 189 minutes with base value 399.65
2026-08-18 09:32:57.127708: Processing 1345 30-minute periods for power integration
2026-08-18 09:32:57.223472: ML Component: Car charging hold False, car energy reported load False
2026-08-18 09:32:57.324400: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:32:57.421255: ML Temperature data points: 49831
2026-08-18 09:32:57.688502: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 09:32:57.731419: ML Component: Data fetch completed, load data age 59.0 days, 17225 data points
2026-08-18 09:32:57.731533: ML Component: No training needed, model age is 1.96 hours
2026-08-18 09:32:57.731591: ML Component: Generating predictions load data age 59.0 days, 17225 data points
2026-08-18 09:32:57.870265: ML Predictor: Starting autoregressive prediction loop for 576 steps (48.0 hours), prev_energy value 0.0234 max_dow {0: 0.08580555561814043, 1: 0.09143333321428962, 2: 0.10736562459506094, 3: 0.10235625034738333, 4: 0.1370843753574416, 5: 0.09880833375371165, 6: 0.10414166664199698}
2026-08-18 09:32:58.317763: ML Component: Generated 576 predictions (total 25.79 kWh over 48h)
2026-08-18 09:32:58.356830: ML Component: Prediction cycle completed
2026-08-18 09:32:58.475604: ML Component: Saved 17225 steps (59 days) of history to /config/predbat_ml_history.npz
2026-08-18 09:34:49.330650: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:34:49.330973: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:34:49.331043: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:34:49.331287: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:34:49.331369: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:34:49.331415: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:34:49.331460: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:35:00.456776: --------------- PredBat - update at 2026-08-18 09:35:00+01:00 with clock skew 0 minutes, minutes now 575
2026-08-18 09:35:00.457581: Saved current settings to /config/predbat_config.json
2026-08-18 09:35:00.457745: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 5.0 minutes
2026-08-18 09:35:00.457896: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:35:00.457986: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:35:00.475742: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:35:00.475858: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:35:00.476053: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:35:00.476556: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:35:00.476673: Predbat mode is set to Control charge & discharge
2026-08-18 09:35:00.655018: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:35:00.655175: Using load_power data to fill gaps in load_today data
2026-08-18 09:35:01.502185: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:35:01.502366: Zero load period starting at 2026-08-17T10:54:00+0100 (1361 minutes) for 189 minutes with base value 208.2
2026-08-18 09:35:01.503462: Processing 721 30-minute periods for power integration
2026-08-18 09:35:01.690149: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:35:01.690287: Car charging hold False, threshold 6.0kWh
2026-08-18 09:35:01.690372: Current data so far today: load 4.4kWh, import 10.1kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:35:01.705881: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:35:01.706016: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:35:01.707202: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:35:01.707312: Standing charge is set to 46.63p
2026-08-18 09:35:01.813247: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:35:01.813518: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:35:01.813756: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:35:01.814819: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:35:01.814923: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:35:01.820661: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:35:01.820987: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:35:01.866353: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:35:01.866469: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:35:01.867701: High export rate found rates in range 99p to -99p
2026-08-18 09:35:01.897340: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:35:01.897723: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:35:01.910735: Battery level now 11.68kWh, -1hr ago 12.0kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 33.26p, rate_forward 6.87p
2026-08-18 09:35:01.911086: Last hour: net energy 0.0kWh, import 0.0kWh, export 0.0kWh, car 0kWh, load 0.3kWh, net cost 0.0p, import 0.0p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:35:01.962206: Today's energy total net 10.1kWh, import 10.1kWh, export 0.0kWh, cost 130.97p, import 84.34p, export 0.0p, carbon 0.0kg
2026-08-18 09:35:01.962352: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:35:02.046544: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:35:02.077718: Today's load divergence 91.71%, in-day adjustment 92.46%, damping 0.95x, yesterday 92.68% today 92.12% blend 60.07%
2026-08-18 09:35:02.077810: Today's predicted so far 5.65kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 5.65kWh forecast extra.
2026-08-18 09:35:02.077843: Today's actual load so far 4.42kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 09:35:02.117137: Inverter 0: Type SK Sunsynk
2026-08-18 09:35:02.117223: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:35:02.117422: Reserve min: 7%, battery_min: 7%
2026-08-18 09:35:02.117527: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:35:02.117855: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 491W, current battery voltage 51.2V, grid power -54W, load power 550W, PV Power 0W
2026-08-18 09:35:02.118076: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:35:02.118209: Inverter 0 scheduled charge enable is False
2026-08-18 09:35:02.118260: Inverter 0 charge windows currently []
2026-08-18 09:35:02.118310: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:35:02.118488: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:35:02.118538: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:35:02.118607: Inverter 0 scheduled discharge enable is False
2026-08-18 09:35:02.118792: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:35:02.118843: Inverter 0 discharge windows currently []
2026-08-18 09:35:02.118884: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:35:02.118925: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:35:02.118961: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:35:02.177523: Dynamic load last period 0.00kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:35:02.177623: Plan was last updated on 2026-08-18 09:30:00+01:00 and is now 5.0 minutes old
2026-08-18 09:35:02.177858: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:35:02.177905: Best export window [ ]
2026-08-18 09:35:02.178650: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:35:02.181860: Load divergence over 8.0 hours mean 421.97W, min 345.0W, max 675.0W, std dev 62.77W, divergence 7.44%
2026-08-18 09:35:02.200777: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:35:02.200890: LoadML is_calculating False
2026-08-18 09:35:02.200949: Creating pool of 12 processes to match your CPU count
2026-08-18 09:35:02.311422: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 609.15p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.1kWh, PV 0.0kWh
2026-08-18 09:35:02.439016: Battery has 14.42 hours left - now at 11.52kWh
2026-08-18 09:35:02.491895: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 633.51p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.33kWh, PV 0.0kWh
2026-08-18 09:35:02.569705: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 337.59p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:25:00, load 31.33kWh, PV 0.0kWh
2026-08-18 09:35:02.651956: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 327.29p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.1kWh, PV 0.0kWh
2026-08-18 09:35:02.652041: Saving plan best values to HA entities
2026-08-18 09:35:02.809049: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:35:02.814899: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:35:02.820673: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.71kWh, house 0.0kWh, export 0.0kWh, metric 327.29p, metric10 337.59p
2026-08-18 09:35:02.897570: Marginal costs baseline metric (no standing charge): 280.6594
2026-08-18 09:35:03.149767: Marginal energy costs matrix computed: min=22.96 max=32.4
2026-08-18 09:35:03.239858: Rate array import [{'start': 575, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 575, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:35:03.240643: - Your estimated bill for today is £1.54 and tomorrow is £1.92
2026-08-18 09:35:03.240691: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:35:03.240714: - The battery is currently at 72% and is in eco mode for the next 13 hours.
2026-08-18 09:35:03.240732: - For the next 48 hours there will be no solar generation.
2026-08-18 09:35:03.240749: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:35:03.240771: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 09:35:03.240792:
2026-08-18 09:35:03.298120: Plan calculation took 1.12 seconds
2026-08-18 09:35:03.300908: No high rate period found
2026-08-18 09:35:03.344109: Import threshold used for optimisation was 8.0p
2026-08-18 09:35:03.397250: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:35:03.403561: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 72%, target 100%
2026-08-18 09:35:03.403690: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:35:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:35:03.403847: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:35:03.404165: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:35:03.404293: No export window planned
2026-08-18 09:35:03.404497: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:35:03.404541: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:35:03.404723: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:35:03.405005: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:35:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:35:03.405378: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:35:03.405464: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:35:03.405623: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.405804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406094: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406143: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406173: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406204: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406234: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406315: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406373: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406402: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406439: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406487: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406525: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406589: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:35:03.406641: Inverter 0 count register writes 0
2026-08-18 09:35:03.424243: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 09:35:03.430066: Total inverter register writes now 867
2026-08-18 09:35:03.461307: Info: Completed run status Demand
2026-08-18 09:35:03.469856: Info: record_status Demand
2026-08-18 09:35:03.476610: Saved current settings to /config/predbat_config.json
2026-08-18 09:35:03.476935: Compare, best tariff: current metric 129.87p
2026-08-18 09:35:34.576731: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:35:34.576925: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:35:34.576969: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:35:34.577081: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:35:34.577110: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:35:34.577126: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:35:34.577148: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:35:58.708650: ML Component: Fetching 28 days of load history from ['sensor.sunsynk_day_load_energy']
2026-08-18 09:35:59.825872: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:35:59.826066: Zero load period starting at 2026-08-17T10:54:00+0100 (1361 minutes) for 189 minutes with base value 399.6
2026-08-18 09:35:59.827578: Processing 1345 30-minute periods for power integration
2026-08-18 09:35:59.954203: ML Component: Car charging hold False, car energy reported load False
2026-08-18 09:36:00.065021: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:36:00.150696: ML Temperature data points: 49826
2026-08-18 09:36:00.394505: ML Component: Fetched 8064 load data points, 28.0 days of history
2026-08-18 09:36:00.430730: ML Component: Data fetch completed, load data age 59.0 days, 17226 data points
2026-08-18 09:36:00.430816: ML Component: Starting fine-tune training (2h interval), model age is 2.0384012258333333 hours
2026-08-18 09:36:00.430838: ML Component: Doing training...
2026-08-18 09:36:00.443012: ML Predictor: Curriculum training - capped to last 4 intermediate passes (starting at window=56.0 days)
2026-08-18 09:36:00.443104: ML Predictor: Curriculum training - 5 passes, window 56.0→59.0 days + final full pass (59.8 days)
2026-08-18 09:36:00.493008: ML Predictor: Curriculum pass 1/5: window=56.0 days (1344 hours of data)
2026-08-18 09:36:00.493133: ML Predictor: Starting initial training with 30 epochs
2026-08-18 09:36:01.049427: ML Predictor: Creating dataset with 1344 hours of training data, 48 hours validation
2026-08-18 09:36:06.206735: ML Predictor: Created 15840 training samples, 576 validation samples
2026-08-18 09:36:06.332271: ML Predictor: Normalization stats [fit] target(mean=0.0597 std=0.0482) load(mean=0.0595 std=0.0482) pv(mean=0.0000 std=0.0100) temp(mean=19.7274 std=4.5889) import_rate(mean=16.7491 std=8.3548) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1926 std=0.5271)
2026-08-18 09:36:23.166605: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0258 val_mae=0.0077 kWh val_bias=+0.0023 kWh (+2.6%) combined=0.0058 kWh ema_combined=0.0058 kWh
2026-08-18 09:36:36.338433: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0257 val_mae=0.0074 kWh val_bias=-0.0039 kWh (-4.3%) combined=0.0061 kWh ema_combined=0.0059 kWh
2026-08-18 09:36:49.148701: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0203 val_mae=0.0066 kWh val_bias=-0.0004 kWh (-0.5%) combined=0.0040 kWh ema_combined=0.0053 kWh
2026-08-18 09:37:04.122852: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0170 val_mae=0.0056 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0029 kWh ema_combined=0.0046 kWh
2026-08-18 09:37:17.116596: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0137 val_mae=0.0060 kWh val_bias=-0.0018 kWh (-2.0%) combined=0.0041 kWh ema_combined=0.0045 kWh
2026-08-18 09:37:29.798920: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0125 val_mae=0.0049 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0028 kWh ema_combined=0.0040 kWh
2026-08-18 09:37:42.645835: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0118 val_mae=0.0048 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0029 kWh ema_combined=0.0037 kWh
2026-08-18 09:37:48.711933: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:37:48.712318: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:37:48.712393: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:37:48.712770: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:37:48.712841: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:37:48.713061: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:37:48.713224: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:37:55.981384: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0120 val_mae=0.0053 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0029 kWh ema_combined=0.0034 kWh
2026-08-18 09:38:11.762893: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0124 val_mae=0.0045 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0023 kWh ema_combined=0.0031 kWh
2026-08-18 09:38:23.987570: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0122 val_mae=0.0048 kWh val_bias=+0.0008 kWh (+0.9%) combined=0.0039 kWh ema_combined=0.0033 kWh
2026-08-18 09:38:38.325024: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0099 val_mae=0.0055 kWh val_bias=-0.0022 kWh (-2.5%) combined=0.0037 kWh ema_combined=0.0035 kWh
2026-08-18 09:38:49.872223: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0097 val_mae=0.0043 kWh val_bias=+0.0008 kWh (+0.8%) combined=0.0025 kWh ema_combined=0.0032 kWh
2026-08-18 09:39:03.572500: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0089 val_mae=0.0038 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0019 kWh ema_combined=0.0028 kWh
2026-08-18 09:39:17.187467: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0080 val_mae=0.0043 kWh val_bias=-0.0009 kWh (-1.0%) combined=0.0022 kWh ema_combined=0.0026 kWh
2026-08-18 09:39:30.647514: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0081 val_mae=0.0039 kWh val_bias=-0.0004 kWh (-0.4%) combined=0.0020 kWh ema_combined=0.0024 kWh
2026-08-18 09:39:47.196789: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0084 val_mae=0.0039 kWh val_bias=-0.0018 kWh (-2.0%) combined=0.0032 kWh ema_combined=0.0027 kWh
2026-08-18 09:39:49.166131: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:39:49.166480: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:39:49.166554: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:39:49.166795: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:39:49.166858: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:39:49.166991: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:39:49.167156: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:40:00.368672: --------------- PredBat - update at 2026-08-18 09:40:00+01:00 with clock skew 0 minutes, minutes now 580
2026-08-18 09:40:00.369643: Saved current settings to /config/predbat_config.json
2026-08-18 09:40:00.369796: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 10.0 minutes
2026-08-18 09:40:00.369886: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:40:00.370026: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:40:00.392595: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:40:00.392758: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:40:00.393067: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:40:00.393716: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:40:00.393869: Predbat mode is set to Control charge & discharge
2026-08-18 09:40:00.697750: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:40:00.697944: Using load_power data to fill gaps in load_today data
2026-08-18 09:40:02.073727: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:40:02.074048: Zero load period starting at 2026-08-17T10:54:00+0100 (1366 minutes) for 189 minutes with base value 208.175
2026-08-18 09:40:02.075873: Processing 721 30-minute periods for power integration
2026-08-18 09:40:02.417559: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:40:02.417767: Car charging hold False, threshold 6.0kWh
2026-08-18 09:40:02.417847: Current data so far today: load 4.53kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:40:02.435025: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:40:02.436136: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:40:02.437514: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:40:02.438024: Standing charge is set to 46.63p
2026-08-18 09:40:02.771725: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:40:02.772074: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:40:02.772321: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:40:02.773856: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:40:02.773990: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:40:02.782027: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:40:02.797208: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:40:02.920171: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:40:02.920309: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:40:02.922173: High export rate found rates in range 99p to -99p
2026-08-18 09:40:02.989441: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:40:02.989667: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:40:03.006115: Battery level now 11.52kWh, -1hr ago 12.0kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 32.16p, rate_forward 6.87p
2026-08-18 09:40:03.006688: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 1.69p, import 1.69p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:40:03.083615: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 09:40:03.083789: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:40:03.300580: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:40:03.332726: Today's load divergence 92.36%, in-day adjustment 92.7%, damping 0.95x, yesterday 92.68% today 92.74% blend 59.72%
2026-08-18 09:40:03.332826: Today's predicted so far 5.65kWh with 0.0kWh car/iBoost excluded, 7.44kWh import ignored, and 5.65kWh forecast extra.
2026-08-18 09:40:03.332858: Today's actual load so far 4.51kWh with 0.0kWh car/iBoost excluded, and 7.44kWh import ignored.
2026-08-18 09:40:03.391079: Inverter 0: Type SK Sunsynk
2026-08-18 09:40:03.391282: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:40:03.391574: Reserve min: 7%, battery_min: 7%
2026-08-18 09:40:03.391693: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:40:03.392069: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 562W, current battery voltage 51.2V, grid power -57W, load power 621W, PV Power 0W
2026-08-18 09:40:03.392309: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:40:03.392472: Inverter 0 scheduled charge enable is False
2026-08-18 09:40:03.392548: Inverter 0 charge windows currently []
2026-08-18 09:40:03.392694: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:40:03.392929: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:40:03.392977: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:40:03.393050: Inverter 0 scheduled discharge enable is False
2026-08-18 09:40:03.393273: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:40:03.393318: Inverter 0 discharge windows currently []
2026-08-18 09:40:03.393464: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:40:03.393503: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:40:03.393550: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:40:03.507245: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:40:03.507387: Plan was last updated on 2026-08-18 09:30:00+01:00 and is now 10.0 minutes old
2026-08-18 09:40:03.508511: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:40:03.508586: Best export window [ ]
2026-08-18 09:40:03.510555: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:40:03.517210: Load divergence over 8.0 hours mean 423.44W, min 345.0W, max 712.8W, std dev 65.76W, divergence 7.76%
2026-08-18 09:40:03.555994: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:40:03.556241: LoadML is_calculating True
2026-08-18 09:40:03.556377: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 09:40:03.617514: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 613.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.31kWh, PV 0.0kWh
2026-08-18 09:40:03.841389: Battery has 14.25 hours left - now at 11.52kWh
2026-08-18 09:40:03.890976: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.54kWh, PV 0.0kWh
2026-08-18 09:40:04.025704: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 344.13p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.54kWh, PV 0.0kWh
2026-08-18 09:40:04.238845: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 334.66p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.31kWh, PV 0.0kWh
2026-08-18 09:40:04.239019: Saving plan best values to HA entities
2026-08-18 09:40:04.341537: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0074 val_mae=0.0037 kWh val_bias=-0.0013 kWh (-1.5%) combined=0.0027 kWh ema_combined=0.0027 kWh
2026-08-18 09:40:04.554784: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:40:04.560461: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:40:04.566225: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.21kWh, house 0.0kWh, export 0.0kWh, metric 334.66p, metric10 344.13p
2026-08-18 09:40:04.711239: Marginal costs baseline metric (no standing charge): 288.0295
2026-08-18 09:40:05.176199: Marginal energy costs matrix computed: min=22.65 max=32.36
2026-08-18 09:40:05.324669: Rate array import [{'start': 580, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 580, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:40:05.325917: - Your estimated bill for today is £1.58 and tomorrow is £1.92
2026-08-18 09:40:05.325979: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:40:05.326021: - The battery is currently at 72% and is in eco mode for the next 13 hours.
2026-08-18 09:40:05.326064: - For the next 48 hours there will be no solar generation.
2026-08-18 09:40:05.326101: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:40:05.326134: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 09:40:05.326170:
2026-08-18 09:40:05.407960: Plan calculation took 1.90 seconds
2026-08-18 09:40:05.410672: No high rate period found
2026-08-18 09:40:05.496791: Import threshold used for optimisation was 8.0p
2026-08-18 09:40:05.563704: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:40:05.581088: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 72%, target 100%
2026-08-18 09:40:05.581262: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:40:05.581338: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:40:05.581571: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:40:05.581650: No export window planned
2026-08-18 09:40:05.581838: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:40:05.581882: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:40:05.582091: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:40:05.582299: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:40:05.582472: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:40:05.582611: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:40:05.582822: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.582945: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583091: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583205: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583315: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583388: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583495: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583678: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583806: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583856: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.583960: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.584071: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.584219: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.584329: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:05.584473: Inverter 0 count register writes 0
2026-08-18 09:40:05.616524: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 09:40:05.616848: Recompute is saving previous plan...
2026-08-18 09:40:05.618120: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 09:40:05.618279: Best export window [ ]
2026-08-18 09:40:05.619260: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:40:05.623227: Load divergence over 8.0 hours mean 423.44W, min 345.0W, max 712.8W, std dev 65.76W, divergence 7.76%
2026-08-18 09:40:05.660924: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:40:05.670409: LoadML is_calculating True
2026-08-18 09:40:05.670526: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 09:40:05.682485: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 09:40:05.690073: Optimise levels pass started at 2026-08-18 09:40:05
2026-08-18 09:40:05.690142: Optimise all windows, total charge 24 export 1
2026-08-18 09:40:09.884143: >> Region optimisation pass width 960 gives best_metric 324.95p, best_cost 331.13p, best_cycle 39.48kWh, best_import 24.6kWh
2026-08-18 09:40:10.060302: >> Region optimisation pass width 480 gives best_metric 324.95p, best_cost 331.13p, best_cycle 39.48kWh, best_import 24.6kWh
2026-08-18 09:40:10.401609: >> Region optimisation pass width 240 gives best_metric 324.95p, best_cost 331.13p, best_cycle 39.48kWh, best_import 24.6kWh
2026-08-18 09:40:11.627008: >> Region optimisation pass width 120 gives best_metric 324.95p, best_cost 331.13p, best_cycle 39.48kWh, best_import 24.6kWh
2026-08-18 09:40:11.627239: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 09:40:11.627309: Optimise levels pass ended at 2026-08-18 09:40:11, duration 5.9 seconds tried 44 combinations
2026-08-18 09:40:11.627381: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 324.95p, best_keep 0kWh, best_cycle 39.48kWh, best_carbon 0kg, best_import 24.6kWh
2026-08-18 09:40:11.658359: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 09:40:22.517999: Tweak plan optimisation started metric 270.48p, cost 281.71p
2026-08-18 09:40:25.229848: Tweak optimisation finished metric 270.48p, cost 281.71p, metric_keep 0kWh, cycle 35.19kWh, carbon 0kg, import 18.42kWh, changed 8 window(s)
2026-08-18 09:40:25.253281: Swap charge optimisation started metric 270.48p, cost 281.71p, min_improvement_swap 0.1p
2026-08-18 09:40:26.437100: Swap charge optimisation finished metric 270.48p, cost 281.71p
2026-08-18 09:40:26.732776: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 268.99p -> 268.41p, plan now metric 271.39p, cost 277.55p, cycle 35.19kWh, import 17.9kWh
2026-08-18 09:40:26.745648: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:40:26.746087: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:40:26.746390: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:40:26.746701: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:40:26.786715: Previous plan best metric is 270.55 (cost 281.79) and new plan best metric is 270.48 (cost 281.71)
2026-08-18 09:40:26.786954: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 09:40:26.787069: Plan valid is now true after recompute was False
2026-08-18 09:40:26.817696: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 611.52p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.11kWh, PV 0.0kWh
2026-08-18 09:40:26.981575: Battery has 14.25 hours left - now at 11.52kWh
2026-08-18 09:40:27.078891: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 635.71p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.33kWh, PV 0.0kWh
2026-08-18 09:40:27.210303: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 336.91p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.33kWh, PV 0.0kWh
2026-08-18 09:40:27.321897: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 326.41p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.11kWh, PV 0.0kWh
2026-08-18 09:40:27.322120: Saving plan best values to HA entities
2026-08-18 09:40:27.658958: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:40:27.666370: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:40:27.682437: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.18kWh, house 0.0kWh, export 0.0kWh, metric 326.41p, metric10 336.91p
2026-08-18 09:40:27.838581: Marginal costs baseline metric (no standing charge): 279.7756
2026-08-18 09:40:28.105140: Marginal energy costs matrix computed: min=22.65 max=32.36
2026-08-18 09:40:28.192969: Rate array import [{'start': 580, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 580, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:40:28.193925: - Your estimated bill for today is £1.58 and tomorrow is £1.92
2026-08-18 09:40:28.194027: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:40:28.194235: - The battery is currently at 72% and is in eco mode for the next 13 hours.
2026-08-18 09:40:28.194293: - For the next 48 hours there will be no solar generation.
2026-08-18 09:40:28.194358: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:40:28.194437: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 09:40:28.194522:
2026-08-18 09:40:28.270047: Plan calculation took 22.65 seconds
2026-08-18 09:40:28.270243: Inverter 0: Type SK Sunsynk
2026-08-18 09:40:28.270275: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:40:28.270459: Reserve min: 7%, battery_min: 7%
2026-08-18 09:40:28.270532: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:40:28.274469: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 562W, current battery voltage 51.2V, grid power -57W, load power 621W, PV Power 0W
2026-08-18 09:40:28.274728: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:40:28.274826: Inverter 0 scheduled charge enable is False
2026-08-18 09:40:28.274912: Inverter 0 charge windows currently []
2026-08-18 09:40:28.274946: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:40:28.275062: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:40:28.275119: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:40:28.275164: Inverter 0 scheduled discharge enable is False
2026-08-18 09:40:28.275306: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:40:28.275345: Inverter 0 discharge windows currently []
2026-08-18 09:40:28.275370: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:40:28.275390: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:40:28.275486: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:40:28.393271: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 72%, target 100%
2026-08-18 09:40:28.393455: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:40:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:40:28.393534: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:40:28.393841: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:40:28.393975: No export window planned
2026-08-18 09:40:28.394140: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:40:28.394188: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:40:28.394483: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:40:28.394779: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:40:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:40:28.394866: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:40:28.395042: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:40:28.395180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.395267: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.395352: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.395466: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.395561: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.395698: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.395804: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.395976: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.396123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.396231: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.396344: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.396468: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.396597: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.396700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:40:28.396840: Inverter 0 count register writes 0
2026-08-18 09:40:28.451653: Total inverter register writes now 867
2026-08-18 09:40:28.537812: Info: Completed run status Demand
2026-08-18 09:40:28.548495: Info: record_status Demand
2026-08-18 09:40:28.557173: Saved current settings to /config/predbat_config.json
2026-08-18 09:40:28.557452: Compare, best tariff: current metric 129.87p
2026-08-18 09:40:34.919385: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0071 val_mae=0.0033 kWh val_bias=-0.0012 kWh (-1.4%) combined=0.0023 kWh ema_combined=0.0025 kWh
2026-08-18 09:40:48.925719: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0065 val_mae=0.0035 kWh val_bias=-0.0010 kWh (-1.1%) combined=0.0019 kWh ema_combined=0.0023 kWh
2026-08-18 09:41:01.939785: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0069 val_mae=0.0031 kWh val_bias=-0.0003 kWh (-0.4%) combined=0.0017 kWh ema_combined=0.0021 kWh
2026-08-18 09:41:03.684382: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:41:03.684939: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:41:03.685099: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:41:03.685382: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:41:03.685539: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:41:03.685645: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:41:03.685885: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:41:17.310530: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0070 val_mae=0.0030 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-18 09:41:29.611718: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0064 val_mae=0.0031 kWh val_bias=-0.0005 kWh (-0.5%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-18 09:41:43.023883: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0065 val_mae=0.0031 kWh val_bias=-0.0007 kWh (-0.7%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 09:41:55.710003: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0063 val_mae=0.0030 kWh val_bias=-0.0006 kWh (-0.7%) combined=0.0017 kWh ema_combined=0.0019 kWh
2026-08-18 09:42:08.213077: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0060 val_mae=0.0030 kWh val_bias=+0.0001 kWh (+0.2%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 09:42:23.097951: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0060 val_mae=0.0030 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0015 kWh ema_combined=0.0017 kWh
2026-08-18 09:42:36.265074: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0062 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-18 09:42:49.926975: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0059 val_mae=0.0030 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-18 09:43:03.468486: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0061 val_mae=0.0031 kWh val_bias=-0.0008 kWh (-0.9%) combined=0.0018 kWh ema_combined=0.0017 kWh
2026-08-18 09:43:04.070364: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:43:04.070608: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:43:04.070651: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:43:04.070785: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:43:04.070824: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:43:04.070846: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:43:04.070866: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:43:18.857800: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.2%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 09:43:18.866335: ML Predictor: Restored best weights from epoch with val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.2%)
2026-08-18 09:43:18.866496: ML Predictor: Training complete, final val_mae=0.0026 kWh val_bias=-0.0002 kWh (-0.2%)
2026-08-18 09:43:19.804285: ML Predictor: AR rollout over holdout: ar_mae=0.0028 kWh ar_bias=-0.0001 kWh (-0.1%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-18 09:43:19.817697: ML Predictor: Curriculum pass 1/5 complete, val_mae=0.0026 kWh
2026-08-18 09:43:19.897566: ML Predictor: Curriculum pass 2/5: window=57.0 days (1368 hours of data)
2026-08-18 09:43:19.897841: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 09:43:20.418769: ML Predictor: Creating dataset with 1368 hours of training data, 48 hours validation
2026-08-18 09:43:24.737302: ML Predictor: Created 16128 training samples, 576 validation samples
2026-08-18 09:43:24.792917: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0484) load(mean=0.0595 std=0.0483) pv(mean=0.0000 std=0.0100) temp(mean=19.7293 std=4.5874) import_rate(mean=16.7335 std=8.3554) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1930 std=0.5272)
2026-08-18 09:43:24.881728: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 09:43:24.897280: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 09:43:24.922971: ML Predictor: Baseline (pre-finetune) val_mae=0.0041 kWh val_bias=-0.0001 kWh
2026-08-18 09:43:38.047027: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0103 val_mae=0.0047 kWh val_bias=+0.0019 kWh (+2.4%) combined=0.0040 kWh ema_combined=0.0040 kWh
2026-08-18 09:43:51.054018: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0122 val_mae=0.0042 kWh val_bias=+0.0011 kWh (+1.4%) combined=0.0036 kWh ema_combined=0.0038 kWh
2026-08-18 09:44:03.899491: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0126 val_mae=0.0040 kWh val_bias=-0.0018 kWh (-2.3%) combined=0.0035 kWh ema_combined=0.0037 kWh
2026-08-18 09:44:19.307340: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0097 val_mae=0.0049 kWh val_bias=-0.0024 kWh (-3.0%) combined=0.0039 kWh ema_combined=0.0038 kWh
2026-08-18 09:44:32.583890: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0110 val_mae=0.0039 kWh val_bias=-0.0011 kWh (-1.4%) combined=0.0027 kWh ema_combined=0.0035 kWh
2026-08-18 09:44:44.887117: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0119 val_mae=0.0039 kWh val_bias=+0.0005 kWh (+0.6%) combined=0.0020 kWh ema_combined=0.0030 kWh
2026-08-18 09:44:58.015234: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0090 val_mae=0.0038 kWh val_bias=-0.0006 kWh (-0.8%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-18 09:45:00.810057: --------------- PredBat - update at 2026-08-18 09:45:00+01:00 with clock skew 0 minutes, minutes now 585
2026-08-18 09:45:00.811246: Saved current settings to /config/predbat_config.json
2026-08-18 09:45:00.811439: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 15.0 minutes
2026-08-18 09:45:00.811603: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:45:00.811769: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:45:00.849173: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:45:00.849438: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:45:00.849777: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:45:00.850448: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:45:00.850731: Predbat mode is set to Control charge & discharge
2026-08-18 09:45:01.143444: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:45:01.143992: Using load_power data to fill gaps in load_today data
2026-08-18 09:45:02.392193: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:45:02.392404: Zero load period starting at 2026-08-17T10:54:00+0100 (1371 minutes) for 189 minutes with base value 208.15
2026-08-18 09:45:02.393387: Processing 721 30-minute periods for power integration
2026-08-18 09:45:02.588713: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:45:02.588822: Car charging hold False, threshold 6.0kWh
2026-08-18 09:45:02.588864: Current data so far today: load 4.55kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:45:02.601153: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:45:02.601280: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:45:02.601902: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:45:02.601968: Standing charge is set to 46.63p
2026-08-18 09:45:02.797929: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:45:02.798293: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:45:02.798572: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:45:02.799638: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:45:02.799814: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:45:02.804588: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:45:02.805184: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:45:02.874021: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:45:02.884094: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:45:02.886136: High export rate found rates in range 99p to -99p
2026-08-18 09:45:02.930171: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:45:02.948292: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:45:02.960302: Battery level now 11.52kWh, -1hr ago 12.0kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 32.16p, rate_forward 6.87p
2026-08-18 09:45:02.960760: Last hour: net energy 0.05kWh, import 0.05kWh, export 0.0kWh, car 0kWh, load 0.4kWh, net cost 1.54p, import 1.54p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:45:03.056856: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 09:45:03.057149: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:45:03.199535: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:45:03.237608: Today's load divergence 92.41%, in-day adjustment 92.72%, damping 0.95x, yesterday 92.68% today 92.79% blend 59.38%
2026-08-18 09:45:03.237823: Today's predicted so far 5.66kWh with 0.0kWh car/iBoost excluded, 7.46kWh import ignored, and 5.66kWh forecast extra.
2026-08-18 09:45:03.237947: Today's actual load so far 4.52kWh with 0.0kWh car/iBoost excluded, and 7.46kWh import ignored.
2026-08-18 09:45:03.296450: Inverter 0: Type SK Sunsynk
2026-08-18 09:45:03.296544: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:45:03.296771: Reserve min: 7%, battery_min: 7%
2026-08-18 09:45:03.296861: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:45:03.297201: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 515W, current battery voltage 51.2V, grid power -55W, load power 572W, PV Power 0W
2026-08-18 09:45:03.297377: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:45:03.297482: Inverter 0 scheduled charge enable is False
2026-08-18 09:45:03.297525: Inverter 0 charge windows currently []
2026-08-18 09:45:03.297643: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:45:03.297868: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:45:03.297918: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:45:03.298045: Inverter 0 scheduled discharge enable is False
2026-08-18 09:45:03.298251: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:45:03.298302: Inverter 0 discharge windows currently []
2026-08-18 09:45:03.298383: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:45:03.298446: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:45:03.298516: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:45:03.404198: Dynamic load last period 0.30kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:45:03.404321: Plan was last updated on 2026-08-18 09:40:00+01:00 and is now 5.0 minutes old
2026-08-18 09:45:03.404695: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:45:03.404756: Best export window [ ]
2026-08-18 09:45:03.406939: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:45:03.411636: Load divergence over 8.0 hours mean 424.99W, min 307.2W, max 753.0W, std dev 78.99W, divergence 9.29%
2026-08-18 09:45:03.463951: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:45:03.464080: LoadML is_calculating True
2026-08-18 09:45:03.464112: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 09:45:03.571822: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 612.11p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.2kWh, PV 0.0kWh
2026-08-18 09:45:03.795947: Battery has 14.17 hours left - now at 11.52kWh
2026-08-18 09:45:03.857713: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.32p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.42kWh, PV 0.0kWh
2026-08-18 09:45:04.039706: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 340.24p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.42kWh, PV 0.0kWh
2026-08-18 09:45:04.240098: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 330.25p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.2kWh, PV 0.0kWh
2026-08-18 09:45:04.240255: Saving plan best values to HA entities
2026-08-18 09:45:04.547751: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:45:04.559266: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:45:04.581482: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.66kWh, house 0.0kWh, export 0.0kWh, metric 330.25p, metric10 340.24p
2026-08-18 09:45:04.680619: Marginal costs baseline metric (no standing charge): 283.6119
2026-08-18 09:45:05.130276: Marginal energy costs matrix computed: min=21.52 max=32.22
2026-08-18 09:45:05.246079: Rate array import [{'start': 585, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 585, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:45:05.246861: - Your estimated bill for today is £1.58 and tomorrow is £1.92
2026-08-18 09:45:05.246913: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:45:05.246936: - The battery is currently at 72% and is in eco mode for the next 13 hours.
2026-08-18 09:45:05.246955: - For the next 48 hours there will be no solar generation.
2026-08-18 09:45:05.246973: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:45:05.247001: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 09:45:05.247019:
2026-08-18 09:45:05.312706: Plan calculation took 1.91 seconds
2026-08-18 09:45:05.317555: No high rate period found
2026-08-18 09:45:05.411032: Import threshold used for optimisation was 8.0p
2026-08-18 09:45:05.517493: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:45:05.524315: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 72%, target 100%
2026-08-18 09:45:05.524485: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:45:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:45:05.524647: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:45:05.524948: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:45:05.525119: No export window planned
2026-08-18 09:45:05.525302: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:45:05.525422: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:45:05.525629: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:45:05.525919: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:45:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:45:05.526036: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:45:05.526168: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:45:05.526308: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.526429: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.526521: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.526586: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.526649: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.526761: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.526877: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527026: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527123: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527227: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527306: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527406: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527484: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527587: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:45:05.527674: Inverter 0 count register writes 0
2026-08-18 09:45:05.546145: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 09:45:05.552479: Total inverter register writes now 867
2026-08-18 09:45:05.594242: Info: Completed run status Demand
2026-08-18 09:45:05.602873: Info: record_status Demand
2026-08-18 09:45:05.611941: Saved current settings to /config/predbat_config.json
2026-08-18 09:45:05.612176: Compare, best tariff: current metric 129.87p
2026-08-18 09:45:15.829294: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0084 val_mae=0.0034 kWh val_bias=+0.0007 kWh (+0.9%) combined=0.0020 kWh ema_combined=0.0026 kWh
2026-08-18 09:45:30.507172: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0096 val_mae=0.0037 kWh val_bias=-0.0021 kWh (-2.7%) combined=0.0036 kWh ema_combined=0.0029 kWh
2026-08-18 09:45:44.170433: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0091 val_mae=0.0030 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0025 kWh
2026-08-18 09:45:44.170708: ML Predictor: Early stopping at epoch 10
2026-08-18 09:45:44.172120: ML Predictor: Restored best weights from epoch with val_mae=0.0041 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 09:45:44.172372: ML Predictor: Training complete, final val_mae=0.0041 kWh val_bias=-0.0001 kWh (-0.1%)
2026-08-18 09:45:45.105722: ML Predictor: AR rollout over holdout: ar_mae=0.0046 kWh ar_bias=-0.0001 kWh (-0.2%) [drift vs teacher-forced: +0.0005 kWh]
2026-08-18 09:45:45.112990: ML Predictor: Curriculum pass 2/5 complete, val_mae=0.0041 kWh
2026-08-18 09:45:45.190034: ML Predictor: Curriculum pass 3/5: window=58.0 days (1392 hours of data)
2026-08-18 09:45:45.190257: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 09:45:45.777520: ML Predictor: Creating dataset with 1392 hours of training data, 48 hours validation
2026-08-18 09:45:48.809207: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:45:48.814716: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:45:48.825071: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:45:48.830478: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:45:48.835700: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:45:48.835760: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:45:48.840945: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:45:50.438956: ML Predictor: Created 16416 training samples, 576 validation samples
2026-08-18 09:45:50.488789: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0484) load(mean=0.0595 std=0.0483) pv(mean=0.0000 std=0.0100) temp(mean=19.7256 std=4.5850) import_rate(mean=16.7043 std=8.3562) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1936 std=0.5274)
2026-08-18 09:45:50.572309: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 09:45:50.585734: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 09:45:50.609607: ML Predictor: Baseline (pre-finetune) val_mae=0.0053 kWh val_bias=+0.0003 kWh
2026-08-18 09:46:04.396447: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0112 val_mae=0.0048 kWh val_bias=+0.0012 kWh (+2.1%) combined=0.0039 kWh ema_combined=0.0039 kWh
2026-08-18 09:46:17.965523: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0112 val_mae=0.0049 kWh val_bias=+0.0006 kWh (+1.2%) combined=0.0027 kWh ema_combined=0.0035 kWh
2026-08-18 09:46:33.400835: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0128 val_mae=0.0042 kWh val_bias=-0.0012 kWh (-2.2%) combined=0.0029 kWh ema_combined=0.0033 kWh
2026-08-18 09:46:46.329442: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0132 val_mae=0.0043 kWh val_bias=-0.0002 kWh (-0.3%) combined=0.0023 kWh ema_combined=0.0030 kWh
2026-08-18 09:46:59.515491: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0129 val_mae=0.0037 kWh val_bias=-0.0012 kWh (-2.1%) combined=0.0024 kWh ema_combined=0.0028 kWh
2026-08-18 09:47:13.424564: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0100 val_mae=0.0036 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0025 kWh
2026-08-18 09:47:24.941210: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0118 val_mae=0.0037 kWh val_bias=-0.0009 kWh (-1.6%) combined=0.0023 kWh ema_combined=0.0024 kWh
2026-08-18 09:47:39.181732: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0102 val_mae=0.0037 kWh val_bias=-0.0016 kWh (-2.8%) combined=0.0034 kWh ema_combined=0.0027 kWh
2026-08-18 09:47:49.143623: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:47:49.143885: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:47:49.143973: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:47:49.144121: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:47:49.144171: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:47:49.144287: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:47:49.144326: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:47:53.259212: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0106 val_mae=0.0035 kWh val_bias=+0.0004 kWh (+0.7%) combined=0.0025 kWh ema_combined=0.0027 kWh
2026-08-18 09:48:07.308971: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0099 val_mae=0.0038 kWh val_bias=-0.0013 kWh (-2.4%) combined=0.0025 kWh ema_combined=0.0026 kWh
2026-08-18 09:48:20.282615: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0104 val_mae=0.0033 kWh val_bias=+0.0002 kWh (+0.3%) combined=0.0019 kWh ema_combined=0.0024 kWh
2026-08-18 09:48:34.351346: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0088 val_mae=0.0030 kWh val_bias=+0.0008 kWh (+1.3%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-18 09:48:47.539275: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0079 val_mae=0.0028 kWh val_bias=-0.0007 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0022 kWh
2026-08-18 09:49:01.743360: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0078 val_mae=0.0028 kWh val_bias=-0.0011 kWh (-1.9%) combined=0.0022 kWh ema_combined=0.0022 kWh
2026-08-18 09:49:15.151604: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0074 val_mae=0.0027 kWh val_bias=+0.0006 kWh (+1.0%) combined=0.0020 kWh ema_combined=0.0021 kWh
2026-08-18 09:49:28.382734: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0071 val_mae=0.0026 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0016 kWh ema_combined=0.0020 kWh
2026-08-18 09:49:44.732066: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0072 val_mae=0.0027 kWh val_bias=+0.0007 kWh (+1.3%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 09:49:49.558922: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:49:49.559203: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:49:49.559274: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:49:49.559500: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:49:49.559574: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:49:49.559635: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:49:49.559757: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:49:59.910826: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0072 val_mae=0.0030 kWh val_bias=+0.0012 kWh (+2.2%) combined=0.0023 kWh ema_combined=0.0021 kWh
2026-08-18 09:50:00.747478: --------------- PredBat - update at 2026-08-18 09:50:00+01:00 with clock skew 0 minutes, minutes now 590
2026-08-18 09:50:00.748378: Saved current settings to /config/predbat_config.json
2026-08-18 09:50:00.748510: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 20.0 minutes
2026-08-18 09:50:00.748590: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:50:00.748670: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:50:00.797505: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:50:00.797651: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:50:00.797885: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:50:00.798478: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:50:00.798622: Predbat mode is set to Control charge & discharge
2026-08-18 09:50:01.325713: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:50:01.325875: Using load_power data to fill gaps in load_today data
2026-08-18 09:50:02.714179: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:50:02.714348: Zero load period starting at 2026-08-17T10:54:00+0100 (1376 minutes) for 189 minutes with base value 208.125
2026-08-18 09:50:02.715267: Processing 721 30-minute periods for power integration
2026-08-18 09:50:02.928036: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:50:02.928167: Car charging hold False, threshold 6.0kWh
2026-08-18 09:50:02.928212: Current data so far today: load 4.65kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:50:02.948229: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:50:02.948345: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:50:02.949210: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:50:02.949282: Standing charge is set to 46.63p
2026-08-18 09:50:03.161432: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:50:03.161827: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:50:03.162174: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:50:03.164710: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:50:03.164931: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:50:03.172850: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:50:03.188402: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:50:03.261468: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:50:03.261566: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:50:03.262907: High export rate found rates in range 99p to -99p
2026-08-18 09:50:03.292483: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:50:03.292587: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:50:03.308914: Battery level now 11.52kWh, -1hr ago 12.0kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 32.16p, rate_forward 6.87p
2026-08-18 09:50:03.309426: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.47kWh, net cost 1.38p, import 1.38p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:50:03.389582: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 09:50:03.389735: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:50:03.517612: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:50:03.563755: Today's load divergence 92.75%, in-day adjustment 92.86%, damping 0.95x, yesterday 92.68% today 93.11% blend 59.03%
2026-08-18 09:50:03.569319: Today's predicted so far 5.7kWh with 0.0kWh car/iBoost excluded, 7.47kWh import ignored, and 5.7kWh forecast extra.
2026-08-18 09:50:03.569406: Today's actual load so far 4.61kWh with 0.0kWh car/iBoost excluded, and 7.47kWh import ignored.
2026-08-18 09:50:03.672510: Inverter 0: Type SK Sunsynk
2026-08-18 09:50:03.672703: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:50:03.673049: Reserve min: 7%, battery_min: 7%
2026-08-18 09:50:03.673232: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:50:03.674058: Inverter 0 SoC: 11.52kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 502W, current battery voltage 51.2V, grid power -56W, load power 567W, PV Power 0W
2026-08-18 09:50:03.674934: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:50:03.675302: Inverter 0 scheduled charge enable is False
2026-08-18 09:50:03.675438: Inverter 0 charge windows currently []
2026-08-18 09:50:03.675563: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:50:03.676105: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:50:03.676352: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:50:03.676585: Inverter 0 scheduled discharge enable is False
2026-08-18 09:50:03.677154: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:50:03.691990: Inverter 0 discharge windows currently []
2026-08-18 09:50:03.692213: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:50:03.692429: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:50:03.692598: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:50:03.811595: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:50:03.811829: Plan was last updated on 2026-08-18 09:40:00+01:00 and is now 10.0 minutes old
2026-08-18 09:50:03.812203: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:50:03.812261: Best export window [ ]
2026-08-18 09:50:03.813904: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:50:03.819932: Load divergence over 8.0 hours mean 425.01W, min 316.8W, max 693.0W, std dev 68.09W, divergence 8.01%
2026-08-18 09:50:03.861164: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:50:03.861464: LoadML is_calculating True
2026-08-18 09:50:03.861606: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 09:50:03.927270: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 612.38p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.34kWh, PV 0.0kWh
2026-08-18 09:50:04.221523: Battery has 14.17 hours left - now at 11.52kWh
2026-08-18 09:50:04.300709: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 636.61p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.57kWh, PV 0.0kWh
2026-08-18 09:50:04.430771: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 343.2p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.57kWh, PV 0.0kWh
2026-08-18 09:50:04.597220: predict best end_record 08-19 23:40:00, final soc 2.36kWh, metric 334.02p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.34kWh, PV 0.0kWh
2026-08-18 09:50:04.597525: Saving plan best values to HA entities
2026-08-18 09:50:04.868627: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:50:04.882083: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:50:04.899214: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.13kWh, house 0kWh, export 0.0kWh, metric 334.02p, metric10 343.2p
2026-08-18 09:50:05.008293: Marginal costs baseline metric (no standing charge): 287.382
2026-08-18 09:50:05.376404: Marginal energy costs matrix computed: min=20.38 max=32.08
2026-08-18 09:50:05.493154: Rate array import [{'start': 590, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 590, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:50:05.494328: - Your estimated bill for today is £1.59 and tomorrow is £1.92
2026-08-18 09:50:05.494577: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:50:05.519976: - The battery is currently at 72% and is in eco mode for the next 13 hours.
2026-08-18 09:50:05.520073: - For the next 48 hours there will be no solar generation.
2026-08-18 09:50:05.520098: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:50:05.520117: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 09:50:05.520135:
2026-08-18 09:50:05.605049: Plan calculation took 1.79 seconds
2026-08-18 09:50:05.609200: No high rate period found
2026-08-18 09:50:05.720418: Import threshold used for optimisation was 8.0p
2026-08-18 09:50:05.840703: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:50:05.848446: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 72%, target 100%
2026-08-18 09:50:05.848764: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:50:05.848982: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:50:05.849376: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:50:05.849602: No export window planned
2026-08-18 09:50:05.849915: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:50:05.850087: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:50:05.850462: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:50:05.850871: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:50:05.851078: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:50:05.851291: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:50:05.851482: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.851635: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.851721: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.851931: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852023: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852099: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852196: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852313: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852356: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852414: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852562: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852745: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.852942: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.853042: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:05.853174: Inverter 0 count register writes 0
2026-08-18 09:50:05.884559: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 09:50:05.884918: Recompute is saving previous plan...
2026-08-18 09:50:05.886613: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 09:50:05.886699: Best export window [ ]
2026-08-18 09:50:05.890258: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:50:05.895454: Load divergence over 8.0 hours mean 425.01W, min 316.8W, max 693.0W, std dev 68.09W, divergence 8.01%
2026-08-18 09:50:05.923706: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:50:05.923866: LoadML is_calculating True
2026-08-18 09:50:05.925071: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 09:50:05.937229: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 09:50:05.937683: Optimise levels pass started at 2026-08-18 09:50:05
2026-08-18 09:50:05.937799: Optimise all windows, total charge 24 export 1
2026-08-18 09:50:09.845384: >> Region optimisation pass width 960 gives best_metric 325.45p, best_cost 330.37p, best_cycle 39.41kWh, best_import 24.5kWh
2026-08-18 09:50:10.125127: >> Region optimisation pass width 480 gives best_metric 325.45p, best_cost 330.37p, best_cycle 39.41kWh, best_import 24.5kWh
2026-08-18 09:50:10.641122: >> Region optimisation pass width 240 gives best_metric 325.45p, best_cost 330.37p, best_cycle 39.41kWh, best_import 24.5kWh
2026-08-18 09:50:11.971822: >> Region optimisation pass width 120 gives best_metric 325.45p, best_cost 330.37p, best_cycle 39.41kWh, best_import 24.5kWh
2026-08-18 09:50:11.972199: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 09:50:11.972377: Optimise levels pass ended at 2026-08-18 09:50:11, duration 6.0 seconds tried 44 combinations
2026-08-18 09:50:11.972638: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 325.45p, best_keep 0kWh, best_cycle 39.41kWh, best_carbon 0kg, best_import 24.5kWh
2026-08-18 09:50:12.001670: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 14.25, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 09:50:23.335976: Tweak plan optimisation started metric 269.68p, cost 280.92p
2026-08-18 09:50:25.365394: Tweak optimisation finished metric 269.68p, cost 280.92p, metric_keep 0kWh, cycle 35.0kWh, carbon 0kg, import 18.32kWh, changed 8 window(s)
2026-08-18 09:50:25.390096: Swap charge optimisation started metric 269.68p, cost 280.92p, min_improvement_swap 0.1p
2026-08-18 09:50:26.582390: Swap charge optimisation finished metric 269.68p, cost 280.92p
2026-08-18 09:50:26.795491: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 268.2p -> 267.62p, plan now metric 270.58p, cost 276.78p, cycle 35.0kWh, import 17.8kWh
2026-08-18 09:50:26.810768: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 89%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 89%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:50:26.811220: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:50:26.811500: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:50:26.811728: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 89%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 09:50:26.868214: Previous plan best metric is 269.87 (cost 281.14) and new plan best metric is 269.68 (cost 280.92)
2026-08-18 09:50:26.868402: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 09:50:26.868520: Plan valid is now true after recompute was False
2026-08-18 09:50:26.950296: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 610.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.15kWh, PV 0.0kWh
2026-08-18 09:50:27.144386: Battery has 14.17 hours left - now at 11.52kWh
2026-08-18 09:50:27.208201: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 634.97p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.36kWh, PV 0.0kWh
2026-08-18 09:50:27.316063: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 336.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.36kWh, PV 0.0kWh
2026-08-18 09:50:27.428021: predict best end_record 08-19 23:30:00, final soc 1.58kWh, metric 325.78p, metric_keep 0kWh, min_soc 1.58kWh @ 08-19 23:25:00, load 30.15kWh, PV 0.0kWh
2026-08-18 09:50:27.428133: Saving plan best values to HA entities
2026-08-18 09:50:27.774538: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 09:50:27.781572: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0.0
2026-08-18 09:50:27.788417: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.1kWh, house 0kWh, export 0.0kWh, metric 325.78p, metric10 336.0p
2026-08-18 09:50:27.883809: Marginal costs baseline metric (no standing charge): 279.1489
2026-08-18 09:50:28.375077: Marginal energy costs matrix computed: min=20.38 max=32.08
2026-08-18 09:50:28.480226: Rate array import [{'start': 590, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 590, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:50:28.481276: - Your estimated bill for today is £1.59 and tomorrow is £1.92
2026-08-18 09:50:28.481329: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:50:28.481358: - The battery is currently at 72% and is in eco mode for the next 13 hours.
2026-08-18 09:50:28.481392: - For the next 48 hours there will be no solar generation.
2026-08-18 09:50:28.481417: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:50:28.481448: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 09:50:28.481473:
2026-08-18 09:50:28.535951: Plan calculation took 22.65 seconds
2026-08-18 09:50:28.536276: Inverter 0: Type SK Sunsynk
2026-08-18 09:50:28.536332: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:50:28.536668: Reserve min: 7%, battery_min: 7%
2026-08-18 09:50:28.536833: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:50:28.537263: Inverter 0 SoC: 11.45kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 523W, current battery voltage 51.2V, grid power -56W, load power 580W, PV Power 0W
2026-08-18 09:50:28.537526: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:50:28.537700: Inverter 0 scheduled charge enable is False
2026-08-18 09:50:28.537758: Inverter 0 charge windows currently []
2026-08-18 09:50:28.537898: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:50:28.538107: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:50:28.538160: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:50:28.538301: Inverter 0 scheduled discharge enable is False
2026-08-18 09:50:28.538563: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:50:28.538628: Inverter 0 discharge windows currently []
2026-08-18 09:50:28.538725: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:50:28.538813: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:50:28.538913: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:50:28.637886: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 72%, target 100%
2026-08-18 09:50:28.638094: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:50:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:50:28.638217: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:50:28.638489: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:50:28.638607: No export window planned
2026-08-18 09:50:28.638804: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:50:28.638872: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:50:28.639105: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:50:28.639349: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:50:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:50:28.639416: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:50:28.639465: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:50:28.639575: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.639660: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.639723: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.639754: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.639940: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640016: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640180: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640369: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640505: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640613: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640724: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640840: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.640951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.641056: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:50:28.641147: Inverter 0 count register writes 0
2026-08-18 09:50:28.697727: Total inverter register writes now 867
2026-08-18 09:50:28.773724: Info: Completed run status Demand
2026-08-18 09:50:28.784508: Info: record_status Demand
2026-08-18 09:50:28.796163: Saved current settings to /config/predbat_config.json
2026-08-18 09:50:28.796466: Compare, best tariff: current metric 129.87p
2026-08-18 09:50:34.798759: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0066 val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0012 kWh ema_combined=0.0018 kWh
2026-08-18 09:50:50.366981: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0062 val_mae=0.0025 kWh val_bias=+0.0006 kWh (+1.1%) combined=0.0017 kWh ema_combined=0.0018 kWh
2026-08-18 09:51:04.009996: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:51:04.010257: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:51:04.010331: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:51:04.010501: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:51:04.010549: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:51:04.010577: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:51:04.010605: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:51:05.063859: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0057 val_mae=0.0023 kWh val_bias=+0.0001 kWh (+0.1%) combined=0.0013 kWh ema_combined=0.0016 kWh
2026-08-18 09:51:18.508553: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0062 val_mae=0.0023 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0014 kWh ema_combined=0.0016 kWh
2026-08-18 09:51:32.282302: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0056 val_mae=0.0022 kWh val_bias=+0.0004 kWh (+0.8%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-18 09:51:46.985351: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0022 kWh val_bias=+0.0003 kWh (+0.5%) combined=0.0016 kWh ema_combined=0.0016 kWh
2026-08-18 09:52:00.542189: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0055 val_mae=0.0022 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 09:52:12.275122: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0056 val_mae=0.0021 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0014 kWh ema_combined=0.0015 kWh
2026-08-18 09:52:25.676022: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0057 val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0012 kWh ema_combined=0.0014 kWh
2026-08-18 09:52:38.677593: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0054 val_mae=0.0021 kWh val_bias=-0.0001 kWh (-0.2%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 09:52:53.720502: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0020 kWh val_bias=-0.0004 kWh (-0.7%) combined=0.0013 kWh ema_combined=0.0013 kWh
2026-08-18 09:53:04.359390: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:53:04.359957: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:53:04.360102: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:53:04.360393: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:53:04.360527: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:53:04.360646: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:53:04.360773: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:53:07.045299: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0052 val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.5%) combined=0.0011 kWh ema_combined=0.0013 kWh
2026-08-18 09:53:07.052705: ML Predictor: Restored best weights from epoch with val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.5%)
2026-08-18 09:53:07.053337: ML Predictor: Training complete, final val_mae=0.0020 kWh val_bias=-0.0003 kWh (-0.5%)
2026-08-18 09:53:08.154743: ML Predictor: AR rollout over holdout: ar_mae=0.0022 kWh ar_bias=-0.0004 kWh (-0.7%) [drift vs teacher-forced: +0.0002 kWh]
2026-08-18 09:53:08.163732: ML Predictor: Curriculum pass 3/5 complete, val_mae=0.0020 kWh
2026-08-18 09:53:08.252221: ML Predictor: Curriculum pass 4/5: window=59.0 days (1416 hours of data)
2026-08-18 09:53:08.252514: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 09:53:08.892519: ML Predictor: Creating dataset with 1416 hours of training data, 48 hours validation
2026-08-18 09:53:13.323656: ML Predictor: Created 16704 training samples, 576 validation samples
2026-08-18 09:53:13.375967: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0484) load(mean=0.0595 std=0.0482) pv(mean=0.0000 std=0.0100) temp(mean=19.7166 std=4.5826) import_rate(mean=16.6662 std=8.3584) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1941 std=0.5278)
2026-08-18 09:53:13.457401: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 09:53:13.471587: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 09:53:13.495447: ML Predictor: Baseline (pre-finetune) val_mae=0.0042 kWh val_bias=-0.0011 kWh
2026-08-18 09:53:25.396117: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0111 val_mae=0.0051 kWh val_bias=+0.0002 kWh (+0.5%) combined=0.0032 kWh ema_combined=0.0032 kWh
2026-08-18 09:53:38.578069: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0115 val_mae=0.0051 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0034 kWh ema_combined=0.0033 kWh
2026-08-18 09:53:54.584938: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0128 val_mae=0.0047 kWh val_bias=-0.0009 kWh (-2.2%) combined=0.0024 kWh ema_combined=0.0030 kWh
2026-08-18 09:54:09.992995: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0139 val_mae=0.0049 kWh val_bias=+0.0009 kWh (+2.2%) combined=0.0036 kWh ema_combined=0.0032 kWh
2026-08-18 09:54:24.798639: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0144 val_mae=0.0044 kWh val_bias=-0.0009 kWh (-2.0%) combined=0.0023 kWh ema_combined=0.0029 kWh
2026-08-18 09:54:39.608238: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0123 val_mae=0.0040 kWh val_bias=-0.0004 kWh (-0.8%) combined=0.0022 kWh ema_combined=0.0027 kWh
2026-08-18 09:54:56.493365: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0107 val_mae=0.0042 kWh val_bias=+0.0007 kWh (+1.5%) combined=0.0035 kWh ema_combined=0.0029 kWh
2026-08-18 09:55:00.604029: --------------- PredBat - update at 2026-08-18 09:55:00+01:00 with clock skew 0 minutes, minutes now 595
2026-08-18 09:55:00.605843: Saved current settings to /config/predbat_config.json
2026-08-18 09:55:00.605983: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 25.0 minutes
2026-08-18 09:55:00.606059: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 09:55:00.606124: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 09:55:00.640026: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 09:55:00.640185: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 09:55:00.640409: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 09:55:00.640872: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 09:55:00.641106: Predbat mode is set to Control charge & discharge
2026-08-18 09:55:00.961968: Found 21602 load_today datapoints going back 28 days
2026-08-18 09:55:00.974152: Using load_power data to fill gaps in load_today data
2026-08-18 09:55:02.166976: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 09:55:02.167481: Zero load period starting at 2026-08-17T10:54:00+0100 (1381 minutes) for 189 minutes with base value 208.1
2026-08-18 09:55:02.168815: Processing 721 30-minute periods for power integration
2026-08-18 09:55:02.410572: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 09:55:02.411021: Car charging hold False, threshold 6.0kWh
2026-08-18 09:55:02.411220: Current data so far today: load 4.7kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 09:55:02.433525: Car 0 using Octopus Intelligent is unplugged
2026-08-18 09:55:02.433771: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 09:55:02.435016: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 09:55:02.435232: Standing charge is set to 46.63p
2026-08-18 09:55:02.681096: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:55:02.682754: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:55:02.683162: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 09:55:02.684829: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 09:55:02.685093: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 09:55:02.693172: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 09:55:02.693867: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 09:55:02.763640: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 09:55:02.765043: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 09:55:02.766731: High export rate found rates in range 99p to -99p
2026-08-18 09:55:02.833095: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 09:55:02.833425: Car 0 on Octopus Intelligent, no active plan
2026-08-18 09:55:02.866343: Battery level now 11.52kWh, -1hr ago 11.84kWh, at midnight 6.84kWh, battery value change in the last hour -2.2p, change today 32.16p, rate_forward 6.87p
2026-08-18 09:55:02.867010: Last hour: net energy 0.04kWh, import 0.04kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.23p, import 1.23p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 09:55:02.971320: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 09:55:02.971452: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 09:55:03.074885: Using weighted-bucket historical load forecast over 14 days
2026-08-18 09:55:03.117121: Today's load divergence 92.87%, in-day adjustment 92.9%, damping 0.95x, yesterday 92.68% today 93.22% blend 58.68%
2026-08-18 09:55:03.118100: Today's predicted so far 5.73kWh with 0.0kWh car/iBoost excluded, 7.49kWh import ignored, and 5.73kWh forecast extra.
2026-08-18 09:55:03.118271: Today's actual load so far 4.66kWh with 0.0kWh car/iBoost excluded, and 7.49kWh import ignored.
2026-08-18 09:55:03.205721: Inverter 0: Type SK Sunsynk
2026-08-18 09:55:03.205810: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 09:55:03.206022: Reserve min: 7%, battery_min: 7%
2026-08-18 09:55:03.206112: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 09:55:03.206405: Inverter 0 SoC: 11.45kW 72%, current charge rate 5000W, current discharge rate 5250W, current battery power 571W, current battery voltage 51.2V, grid power -55W, load power 629W, PV Power 0W
2026-08-18 09:55:03.206573: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:55:03.206679: Inverter 0 scheduled charge enable is False
2026-08-18 09:55:03.206723: Inverter 0 charge windows currently []
2026-08-18 09:55:03.206762: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 09:55:03.206919: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:55:03.206964: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:55:03.207012: Inverter 0 scheduled discharge enable is False
2026-08-18 09:55:03.207176: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:55:03.207240: Inverter 0 discharge windows currently []
2026-08-18 09:55:03.207272: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:55:03.207347: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:55:03.207383: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:55:03.462882: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 09:55:03.463004: Plan was last updated on 2026-08-18 09:50:00+01:00 and is now 5.0 minutes old
2026-08-18 09:55:03.463215: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 09:55:03.463254: Best export window [ ]
2026-08-18 09:55:03.464301: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 09:55:03.468062: Load divergence over 8.0 hours mean 424.92W, min 324.0W, max 660.0W, std dev 63.71W, divergence 7.5%
2026-08-18 09:55:03.511308: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 09:55:03.511431: LoadML is_calculating True
2026-08-18 09:55:03.511494: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 09:55:03.583247: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 612.23p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:55:00, load 30.26kWh, PV 0.0kWh
2026-08-18 09:55:03.820803: Battery has 14.0 hours left - now at 11.45kWh
2026-08-18 09:55:03.929557: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 636.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.48kWh, PV 0.0kWh
2026-08-18 09:55:04.118071: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 340.39p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.48kWh, PV 0.0kWh
2026-08-18 09:55:04.268459: predict best end_record 08-19 23:35:00, final soc 1.95kWh, metric 329.97p, metric_keep 0kWh, min_soc 1.56kWh @ 08-19 23:25:00, load 30.26kWh, PV 0.0kWh
2026-08-18 09:55:04.269020: Saving plan best values to HA entities
2026-08-18 09:55:04.540949: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0
2026-08-18 09:55:04.547140: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 09:55:04.553445: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.62kWh, house 0.0kWh, export 0.0kWh, metric 329.97p, metric10 340.39p
2026-08-18 09:55:04.708482: Marginal costs baseline metric (no standing charge): 283.3385
2026-08-18 09:55:05.055970: Marginal energy costs matrix computed: min=21.18 max=32.18
2026-08-18 09:55:05.218599: Rate array import [{'start': 595, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2855, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 595, 'end': 2855, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 09:55:05.219410: - Your estimated bill for today is £1.59 and tomorrow is £1.92
2026-08-18 09:55:05.219458: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 09:55:05.219482: - The battery is currently at 72% and is in eco mode for the next 13 hours.
2026-08-18 09:55:05.219501: - For the next 48 hours there will be no solar generation.
2026-08-18 09:55:05.219518: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 09:55:05.219536: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 09:55:05.219553:
2026-08-18 09:55:05.291359: Plan calculation took 1.83 seconds
2026-08-18 09:55:05.296075: No high rate period found
2026-08-18 09:55:05.423852: Import threshold used for optimisation was 8.0p
2026-08-18 09:55:05.528389: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 09:55:05.536769: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 72%, target 100%
2026-08-18 09:55:05.537018: Inverter 0 disabled charge window while waiting for schedule (now 08-18 09:55:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 09:55:05.537200: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:55:05.537513: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:55:05.537699: No export window planned
2026-08-18 09:55:05.537942: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 09:55:05.538077: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 09:55:05.538353: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 09:55:05.538624: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 09:55:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 09:55:05.538775: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 09:55:05.538945: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 09:55:05.539137: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.539277: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.539407: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.539536: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.539666: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.539795: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.539961: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.540150: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.540288: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.540416: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.540544: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.540700: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.540829: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.540978: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 09:55:05.541100: Inverter 0 count register writes 0
2026-08-18 09:55:05.577925: Will not recompute the plan, it is 5.0 minutes old and max age is 10 minutes
2026-08-18 09:55:05.589022: Total inverter register writes now 867
2026-08-18 09:55:05.656768: Info: Completed run status Demand
2026-08-18 09:55:05.663542: Info: record_status Demand
2026-08-18 09:55:05.680859: Saved current settings to /config/predbat_config.json
2026-08-18 09:55:05.681399: Compare, best tariff: current metric 129.87p
2026-08-18 09:55:14.166498: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0109 val_mae=0.0040 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0027 kWh ema_combined=0.0029 kWh
2026-08-18 09:55:25.898595: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0117 val_mae=0.0040 kWh val_bias=-0.0018 kWh (-4.1%) combined=0.0032 kWh ema_combined=0.0030 kWh
2026-08-18 09:55:39.459954: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0104 val_mae=0.0040 kWh val_bias=+0.0005 kWh (+1.1%) combined=0.0033 kWh ema_combined=0.0031 kWh
2026-08-18 09:55:48.831309: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:55:48.831570: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:55:48.831621: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:55:48.831892: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:55:48.831994: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:55:48.832067: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:55:48.832141: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:55:53.127829: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0091 val_mae=0.0037 kWh val_bias=+0.0004 kWh (+0.9%) combined=0.0023 kWh ema_combined=0.0028 kWh
2026-08-18 09:56:06.073540: TemperatureAPI: Using coordinates latitude 53.4, longitude -2.2
2026-08-18 09:56:06.241807: TemperatureAPI: Successfully fetched temperature data from Open-Meteo API
2026-08-18 09:56:10.441861: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0096 val_mae=0.0035 kWh val_bias=-0.0006 kWh (-1.4%) combined=0.0023 kWh ema_combined=0.0027 kWh
2026-08-18 09:56:24.165919: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0086 val_mae=0.0033 kWh val_bias=-0.0011 kWh (-2.5%) combined=0.0022 kWh ema_combined=0.0025 kWh
2026-08-18 09:56:38.050715: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0082 val_mae=0.0033 kWh val_bias=+0.0006 kWh (+1.4%) combined=0.0024 kWh ema_combined=0.0025 kWh
2026-08-18 09:56:51.964789: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0072 val_mae=0.0028 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0015 kWh ema_combined=0.0022 kWh
2026-08-18 09:57:07.789839: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0069 val_mae=0.0028 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0017 kWh ema_combined=0.0020 kWh
2026-08-18 09:57:22.051583: ML Predictor: Epoch 17/30: lr=0.00048 huber_loss=0.0073 val_mae=0.0032 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0019 kWh ema_combined=0.0020 kWh
2026-08-18 09:57:35.281207: ML Predictor: Epoch 18/30: lr=0.00043 huber_loss=0.0077 val_mae=0.0029 kWh val_bias=-0.0003 kWh (-0.6%) combined=0.0015 kWh ema_combined=0.0018 kWh
2026-08-18 09:57:49.048305: ML Predictor: Epoch 19/30: lr=0.00038 huber_loss=0.0061 val_mae=0.0029 kWh val_bias=+0.0002 kWh (+0.4%) combined=0.0018 kWh ema_combined=0.0018 kWh
2026-08-18 09:57:49.200221: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:57:49.200783: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:57:49.201013: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:57:49.201332: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:57:49.201466: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:57:49.201575: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:57:49.201693: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 09:58:05.304667: ML Predictor: Epoch 20/30: lr=0.00034 huber_loss=0.0056 val_mae=0.0027 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0020 kWh ema_combined=0.0019 kWh
2026-08-18 09:58:19.963473: ML Predictor: Epoch 21/30: lr=0.00030 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0017 kWh
2026-08-18 09:58:33.697245: ML Predictor: Epoch 22/30: lr=0.00026 huber_loss=0.0058 val_mae=0.0026 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 09:58:47.925078: ML Predictor: Epoch 23/30: lr=0.00022 huber_loss=0.0055 val_mae=0.0025 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0015 kWh ema_combined=0.0016 kWh
2026-08-18 09:59:02.821843: ML Predictor: Epoch 24/30: lr=0.00019 huber_loss=0.0057 val_mae=0.0025 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0017 kWh ema_combined=0.0016 kWh
2026-08-18 09:59:18.142893: ML Predictor: Epoch 25/30: lr=0.00016 huber_loss=0.0054 val_mae=0.0024 kWh val_bias=-0.0002 kWh (-0.4%) combined=0.0012 kWh ema_combined=0.0015 kWh
2026-08-18 09:59:31.542594: ML Predictor: Epoch 26/30: lr=0.00014 huber_loss=0.0055 val_mae=0.0023 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0013 kWh ema_combined=0.0015 kWh
2026-08-18 09:59:43.818858: Info: HAHistory: Pruning history data started.
2026-08-18 09:59:43.822541: Info: HAHistory: Pruning history data completed.
2026-08-18 09:59:45.785610: ML Predictor: Epoch 27/30: lr=0.00012 huber_loss=0.0051 val_mae=0.0024 kWh val_bias=-0.0000 kWh (-0.0%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 09:59:49.604090: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 09:59:49.604464: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 09:59:49.604517: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 09:59:49.604743: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 09:59:49.604835: Note: Inverter does not support discharge freeze - disabled
2026-08-18 09:59:49.604867: Note: Inverter does not support charge freeze - disabled
2026-08-18 09:59:49.605029: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:00:00.660400: ML Predictor: Epoch 28/30: lr=0.00011 huber_loss=0.0052 val_mae=0.0024 kWh val_bias=-0.0000 kWh (-0.1%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 10:00:00.814093: --------------- PredBat - update at 2026-08-18 10:00:00+01:00 with clock skew 0 minutes, minutes now 600
2026-08-18 10:00:00.815385: Saved current settings to /config/predbat_config.json
2026-08-18 10:00:00.815595: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 30.0 minutes
2026-08-18 10:00:00.815775: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:00:00.815931: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:00:00.846372: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:00:00.846530: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:00:00.846818: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:00:00.847535: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:00:00.847706: Predbat mode is set to Control charge & discharge
2026-08-18 10:00:01.359985: Found 21602 load_today datapoints going back 27 days
2026-08-18 10:00:01.360271: Using load_power data to fill gaps in load_today data
2026-08-18 10:00:02.601668: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:00:02.601843: Zero load period starting at 2026-08-17T10:54:00+0100 (1386 minutes) for 189 minutes with base value 208.075
2026-08-18 10:00:02.602685: Processing 721 30-minute periods for power integration
2026-08-18 10:00:03.002828: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:00:03.005591: Car charging hold False, threshold 6.0kWh
2026-08-18 10:00:03.005998: Current data so far today: load 4.75kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:00:03.027868: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:00:03.028076: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:00:03.029303: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:00:03.030061: Standing charge is set to 46.63p
2026-08-18 10:00:03.259836: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:00:03.260256: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:00:03.260547: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:00:03.262770: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:00:03.262940: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:00:03.279646: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:00:03.280203: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:00:03.409734: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:00:03.409918: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:00:03.411358: High export rate found rates in range 99p to -99p
2026-08-18 10:00:03.438357: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:00:03.438459: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:00:03.454677: Battery level now 11.45kWh, -1hr ago 11.84kWh, at midnight 6.84kWh, battery value change in the last hour -2.69p, change today 31.67p, rate_forward 6.87p
2026-08-18 10:00:03.455321: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 1.07p, import 1.07p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:00:03.528462: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:00:03.528631: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:00:03.669721: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:00:03.715870: Today's load divergence 92.54%, in-day adjustment 92.78%, damping 0.95x, yesterday 92.68% today 92.92% blend 58.33%
2026-08-18 10:00:03.716254: Today's predicted so far 5.85kWh with 0.0kWh car/iBoost excluded, 7.45kWh import ignored, and 5.85kWh forecast extra.
2026-08-18 10:00:03.716355: Today's actual load so far 4.73kWh with 0.0kWh car/iBoost excluded, and 7.45kWh import ignored.
2026-08-18 10:00:03.794513: Inverter 0: Type SK Sunsynk
2026-08-18 10:00:03.794730: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:00:03.795093: Reserve min: 7%, battery_min: 7%
2026-08-18 10:00:03.795454: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:00:03.797059: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 560W, current battery voltage 51.2V, grid power -54W, load power 608W, PV Power 0W
2026-08-18 10:00:03.797369: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:00:03.797571: Inverter 0 scheduled charge enable is False
2026-08-18 10:00:03.797698: Inverter 0 charge windows currently []
2026-08-18 10:00:03.797820: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:00:03.798076: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:00:03.798209: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:00:03.798345: Inverter 0 scheduled discharge enable is False
2026-08-18 10:00:03.798610: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:00:03.798740: Inverter 0 discharge windows currently []
2026-08-18 10:00:03.798852: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:00:03.798961: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:00:03.799089: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:00:03.983286: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:00:03.983412: Plan was last updated on 2026-08-18 09:50:00+01:00 and is now 10.0 minutes old
2026-08-18 10:00:03.983673: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:00:03.983722: Best export window [ ]
2026-08-18 10:00:03.985091: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:00:03.994880: Load divergence over 8.0 hours mean 424.88W, min 345.6W, max 651.6W, std dev 56.52W, divergence 6.65%
2026-08-18 10:00:04.024628: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:00:04.024790: LoadML is_calculating True
2026-08-18 10:00:04.024825: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 10:00:04.068005: predict base end_record 08-19 23:40:00, final soc 1.12kWh, metric 612.81p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.33kWh, PV 0.0kWh
2026-08-18 10:00:04.291417: Battery has 14.0 hours left - now at 11.36kWh
2026-08-18 10:00:04.359032: predict base10 end_record 08-19 23:40:00, final soc 1.12kWh, metric 637.0p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.55kWh, PV 0.0kWh
2026-08-18 10:00:04.613137: predict best10 end_record 08-19 23:40:00, final soc 1.77kWh, metric 343.79p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.55kWh, PV 0.0kWh
2026-08-18 10:00:04.731529: predict best end_record 08-19 23:40:00, final soc 2.35kWh, metric 334.24p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.33kWh, PV 0.0kWh
2026-08-18 10:00:04.731782: Saving plan best values to HA entities
2026-08-18 10:00:05.102493: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:00:05.135739: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:00:05.144130: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 19.16kWh, house 0.0kWh, export 0.0kWh, metric 334.24p, metric10 343.79p
2026-08-18 10:00:05.285699: Marginal costs baseline metric (no standing charge): 287.6045
2026-08-18 10:00:05.657547: Marginal energy costs matrix computed: min=21.68 max=32.24
2026-08-18 10:00:05.748643: Rate array import [{'start': 600, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 2850, 'end': 2860, 'rate': 'cheap', 'range': '(8.0p)'}] export [{'start': 600, 'end': 2860, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:00:05.749417: - Your estimated bill for today is £1.58 and tomorrow is £1.92
2026-08-18 10:00:05.749472: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:00:05.749508: - The battery is currently at 71% and is in eco mode for the next 13 hours.
2026-08-18 10:00:05.749550: - For the next 48 hours there will be no solar generation.
2026-08-18 10:00:05.749586: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 10:00:05.749604: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:00:05.749619:
2026-08-18 10:00:05.804525: Plan calculation took 1.82 seconds
2026-08-18 10:00:05.807879: No high rate period found
2026-08-18 10:00:05.942371: Import threshold used for optimisation was 8.0p
2026-08-18 10:00:06.072980: Low import rate windows [0: 08-18 23:30:00 - 08-19 00:00:00 @ 8.0, 1: 08-19 00:00:00 - 08-19 00:30:00 @ 8.0, 2: 08-19 00:30:00 - 08-19 01:00:00 @ 8.0, 3: 08-19 01:00:00 - 08-19 01:30:00 @ 8.0, 4: 08-19 01:30:00 - 08-19 02:00:00 @ 8.0, 5: 08-19 02:00:00 - 08-19 02:30:00 @ 8.0, 6: 08-19 02:30:00 - 08-19 03:00:00 @ 8.0, 7: 08-19 03:00:00 - 08-19 03:30:00 @ 8.0, 8: 08-19 03:30:00 - 08-19 04:00:00 @ 8.0, 9: 08-19 04:00:00 - 08-19 04:30:00 @ 8.0, 10: 08-19 04:30:00 - 08-19 05:00:00 @ 8.0, 11: 08-19 05:00:00 - 08-19 05:30:00 @ 8.0, 12: 08-19 23:30:00 - 08-20 00:00:00 @ 8.0, 13: 08-20 00:00:00 - 08-20 00:30:00 @ 8.0, 14: 08-20 00:30:00 - 08-20 01:00:00 @ 8.0, 15: 08-20 01:00:00 - 08-20 01:30:00 @ 8.0, 16: 08-20 01:30:00 - 08-20 02:00:00 @ 8.0, 17: 08-20 02:00:00 - 08-20 02:30:00 @ 8.0, 18: 08-20 02:30:00 - 08-20 03:00:00 @ 8.0, 19: 08-20 03:00:00 - 08-20 03:30:00 @ 8.0, 20: 08-20 03:30:00 - 08-20 04:00:00 @ 8.0, 21: 08-20 04:00:00 - 08-20 04:30:00 @ 8.0, 22: 08-20 04:30:00 - 08-20 05:00:00 @ 8.0, 23: 08-20 05:00:00 - 08-20 05:30:00 @ 8.0]
2026-08-18 10:00:06.082535: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 71%, target 100%
2026-08-18 10:00:06.082740: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:00:06.082854: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:00:06.083157: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:00:06.083277: No export window planned
2026-08-18 10:00:06.083467: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:00:06.083550: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:00:06.086056: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:00:06.086254: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:00:06.086309: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:00:06.086442: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:00:06.086595: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.086646: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.086770: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.086824: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.086922: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.086963: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087064: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087281: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087343: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087463: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087531: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087662: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087729: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.087827: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:06.088011: Inverter 0 count register writes 0
2026-08-18 10:00:06.140593: Will recompute the plan as it is now 10.0 minutes old and will exceed the max age of 10 minutes before the next run
2026-08-18 10:00:06.140812: Recompute is saving previous plan...
2026-08-18 10:00:06.141923: Best charge window [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 0%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 0%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 0%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 0%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 0%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 0%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 0%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 0%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 0%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 0%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 0%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 0%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 0%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 0%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 0%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 0%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 0%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 0%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 0%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 0%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 0%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 0%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 0% ]
2026-08-18 10:00:06.142011: Best export window [ ]
2026-08-18 10:00:06.143102: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:00:06.148127: Load divergence over 8.0 hours mean 424.88W, min 345.6W, max 651.6W, std dev 56.52W, divergence 6.65%
2026-08-18 10:00:06.177090: Calculating data from yesterday for savings calculation
2026-08-18 10:00:06.189910: Yesterday basic charge window best: [{'start': 0, 'end': 330, 'average': 8.0}, {'start': 1410, 'end': 1770, 'average': 8.0}] charge limit best: [16.0, 16.0] based on max charge slots 1
2026-08-18 10:00:06.246264: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 10:00:06.264156: predict yesterday10 end_record 08-19 00:00:00, final soc 6.31kWh, metric 172.21p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 10:00:06.291330: predict yesterday end_record 08-19 00:00:00, final soc 6.7kWh, metric 175.55p, metric_keep 0kWh, min_soc 4.37kWh @ 08-18 23:25:00, load 14.45kWh, PV 0.0kWh
2026-08-18 10:00:06.343203: Yesterday: Predbat disabled was £1.76 (adjusted £1.29) vs £1.81 (adjusted £1.36), saving £-0.05 (adjusted £-0.07) with import 16.11kWh, export 0.0kWh, battery_cycle 23.27kWh, start_soc 6.7kWh, final_soc 6.7kWh and battery_value 46.06kWh
2026-08-18 10:00:06.503599: predict yesterday end_record 08-19 00:00:00, final soc 0.0kWh, metric 441.95p, metric_keep 319.47kWh, min_soc 0kWh @ 08-18 00:00:00, load 14.45kWh, PV 0.0kWh
2026-08-18 10:00:06.505388: Yesterday: No Battery/PV system cost predicted was £4.42 (adjusted £4.42) vs £1.81 (adjusted £1.36), saving £2.61 (adjusted £3.06) with import 14.45kWh, export 0kWh and battery_value 0.0kWh
2026-08-18 10:00:06.546211: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:00:06.546439: LoadML is_calculating True
2026-08-18 10:00:06.546564: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 10:00:06.575625: Calculate Best options: mode(Control charge & discharge), calculate_export_oncharge(False), calculate_export_on_pv(True), set_export_freeze_only(False), set_discharge_during_charge(True), combine_charge_slots(False), combine_export_slots(False), combine_rate_threshold(0.0), best_soc_min(0.0 kWh), best_soc_max(0.0 kWh), best_soc_keep(1.0 kWh), inverter_loss(4%), battery_loss(3%), battery_loss_discharge (3%), inverter_hybrid(True), metric_min_improvement(0.0p), metric_min_improvement_export(0.1p), metric_min_improvement_export_freeze(0.1p), metric_battery_cycle(0.0p/kWh), metric_battery_value_scaling(1.0 x)
2026-08-18 10:00:06.584510: Optimise levels pass started at 2026-08-18 10:00:06
2026-08-18 10:00:06.584715: Optimise all windows, total charge 24 export 1
2026-08-18 10:00:11.340673: >> Region optimisation pass width 960 gives best_metric 327.25p, best_cost 332.84p, best_cycle 40.18kWh, best_import 24.81kWh
2026-08-18 10:00:11.662953: >> Region optimisation pass width 480 gives best_metric 327.25p, best_cost 332.84p, best_cycle 40.18kWh, best_import 24.81kWh
2026-08-18 10:00:11.998895: >> Region optimisation pass width 240 gives best_metric 327.25p, best_cost 332.84p, best_cycle 40.18kWh, best_import 24.81kWh
2026-08-18 10:00:13.417387: >> Region optimisation pass width 120 gives best_metric 327.25p, best_cost 332.84p, best_cycle 40.18kWh, best_import 24.81kWh
2026-08-18 10:00:13.417540: Calculated end_record as 08-19 23:30:00 based on best_price 8.0p, next_charge_start 08-18 23:30:00, max_windows 12
2026-08-18 10:00:13.417587: Optimise levels pass ended at 2026-08-18 10:00:13, duration 6.8 seconds tried 43 combinations
2026-08-18 10:00:13.417704: Set best_price_charge_level 8.6p, best_price_export_level 0p, best_price_charge 8.0p, best_cost_export 0p, best_metric 327.25p, best_keep 0kWh, best_cycle 40.18kWh, best_carbon 0kg, best_import 24.81kWh
2026-08-18 10:00:13.432797: Starting detailed optimisation end_record 08-19 23:30:00, best_price_charge 8.0p, best_price_export 0p. lowest_price_charge 8.0p with charge limits [14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 14.5, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0, 16.0]kWh and export limits []kWh
2026-08-18 10:00:23.240330: Tweak plan optimisation started metric 270.16p, cost 281.36p
2026-08-18 10:00:26.154656: Tweak optimisation finished metric 270.16p, cost 281.36p, metric_keep 0kWh, cycle 34.96kWh, carbon 0kg, import 18.38kWh, changed 8 window(s)
2026-08-18 10:00:26.175831: Swap charge optimisation started metric 270.16p, cost 281.36p, min_improvement_swap 0.1p
2026-08-18 10:00:27.439105: Swap charge optimisation finished metric 270.16p, cost 281.36p
2026-08-18 10:00:27.665082: Pruned 1 dead plan slot(s) in 12 trial(s), nominal metric 268.68p -> 268.52p, plan now metric 270.6p, cost 279.33p, cycle 35.22kWh, import 18.12kWh
2026-08-18 10:00:27.678187: Raw charge windows [ 18-08 23:30:00 - 19-08 00:00:00 @ 8.0p 100%, 19-08 00:00:00 - 19-08 00:30:00 @ 8.0p 100%, 19-08 00:30:00 - 19-08 01:00:00 @ 8.0p 100%, 19-08 01:00:00 - 19-08 01:30:00 @ 8.0p 100%, 19-08 01:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 02:30:00 @ 8.0p 84%, 19-08 02:30:00 - 19-08 03:00:00 @ 8.0p 84%, 19-08 03:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 04:00:00 @ 8.0p 91%, 19-08 04:00:00 - 19-08 04:30:00 @ 8.0p 91%, 19-08 04:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 05:00:00 - 19-08 05:30:00 @ 8.0p 0%, 19-08 23:30:00 - 20-08 00:00:00 @ 8.0p 100%, 20-08 00:00:00 - 20-08 00:30:00 @ 8.0p 100%, 20-08 00:30:00 - 20-08 01:00:00 @ 8.0p 100%, 20-08 01:00:00 - 20-08 01:30:00 @ 8.0p 100%, 20-08 01:30:00 - 20-08 02:00:00 @ 8.0p 100%, 20-08 02:00:00 - 20-08 02:30:00 @ 8.0p 100%, 20-08 02:30:00 - 20-08 03:00:00 @ 8.0p 100%, 20-08 03:00:00 - 20-08 03:30:00 @ 8.0p 100%, 20-08 03:30:00 - 20-08 04:00:00 @ 8.0p 100%, 20-08 04:00:00 - 20-08 04:30:00 @ 8.0p 100%, 20-08 04:30:00 - 20-08 05:00:00 @ 8.0p 100%, 20-08 05:00:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:00:27.679558: Unclipped charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:00:27.680331: Unfiltered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:00:27.680828: Filtered charge windows [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 84%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ] reserve 1.12
2026-08-18 10:00:27.777240: Previous plan best metric is 270.29 (cost 281.52) and new plan best metric is 270.16 (cost 281.36)
2026-08-18 10:00:27.779688: New plan metric is not significantly better (metric_min_improvement_plan 2.0) than previous plan, using previous plan
2026-08-18 10:00:27.780014: Plan valid is now true after recompute was False
2026-08-18 10:00:27.826513: predict base end_record 08-19 23:30:00, final soc 1.12kWh, metric 611.35p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:00:00, load 30.15kWh, PV 0.0kWh
2026-08-18 10:00:28.067759: Battery has 14.0 hours left - now at 11.36kWh
2026-08-18 10:00:28.135516: predict base10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 635.48p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:30:00, load 31.36kWh, PV 0.0kWh
2026-08-18 10:00:28.243380: predict best10 end_record 08-19 23:30:00, final soc 1.12kWh, metric 336.7p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.36kWh, PV 0.0kWh
2026-08-18 10:00:28.385722: predict best end_record 08-19 23:30:00, final soc 1.57kWh, metric 326.11p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.15kWh, PV 0.0kWh
2026-08-18 10:00:28.385828: Saving plan best values to HA entities
2026-08-18 10:00:28.661169: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:00:28.667924: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy': 0.25} results off total_energy 0
2026-08-18 10:00:28.674694: Best charging limit SoC's [16.0, 13.0, 14.5, 16.0]kWh, export []kWh gives import battery 18.14kWh, house 0.0kWh, export 0.0kWh, metric 326.11p, metric10 336.7p
2026-08-18 10:00:28.838758: Marginal costs baseline metric (no standing charge): 279.4803
2026-08-18 10:00:29.337713: Marginal energy costs matrix computed: min=21.68 max=32.24
2026-08-18 10:00:29.455964: Rate array import [{'start': 600, 'end': 1410, 'rate': 'very expensive', 'range': '(33.8p)'}, {'start': 1410, 'end': 1770, 'rate': 'cheap', 'range': '(8.0p)'}, {'start': 1770, 'end': 2850, 'rate': 'very expensive', 'range': '(33.8p)'}] export [{'start': 600, 'end': 2850, 'rate': 'fixed', 'range': '(0p)'}]
2026-08-18 10:00:29.457394: - Your estimated bill for today is £1.58 and tomorrow is £1.92
2026-08-18 10:00:29.457582: - Import rates are very expensive (33.8p) for the next 13 hours and then cheap (8.0p) for the next 6 hours.
2026-08-18 10:00:29.457859: - The battery is currently at 71% and is in eco mode for the next 13 hours.
2026-08-18 10:00:29.458037: - For the next 48 hours there will be no solar generation.
2026-08-18 10:00:29.458191: - You will reach a minimum of 10% battery in 37 hours.
2026-08-18 10:00:29.458329: - Your next charge slot will be in 13 hours where import rates will be cheap (8.0p).
2026-08-18 10:00:29.458762:
2026-08-18 10:00:29.542134: Plan calculation took 23.40 seconds
2026-08-18 10:00:29.542594: Inverter 0: Type SK Sunsynk
2026-08-18 10:00:29.542811: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:00:29.543248: Reserve min: 7%, battery_min: 7%
2026-08-18 10:00:29.543513: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:00:29.544066: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 554W, current battery voltage 51.2V, grid power -54W, load power 610W, PV Power 0W
2026-08-18 10:00:29.544445: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:00:29.544730: Inverter 0 scheduled charge enable is False
2026-08-18 10:00:29.545002: Inverter 0 charge windows currently []
2026-08-18 10:00:29.545205: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:00:29.545536: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:00:29.545737: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:00:29.545954: Inverter 0 scheduled discharge enable is False
2026-08-18 10:00:29.546323: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:00:29.546570: Inverter 0 discharge windows currently []
2026-08-18 10:00:29.546692: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:00:29.546994: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:00:29.547109: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:00:29.710099: Inverter 0 Charge window will be: 2026-08-18 23:30:00+01:00 - 2026-08-19 05:00:00+01:00 - current SoC 71%, target 100%
2026-08-18 10:00:29.710221: Inverter 0 disabled charge window while waiting for schedule (now 08-18 10:00:00 target set_window_minutes 30 charge start time 08-18 23:30:00) original inverter start time 08-20 00:00:00
2026-08-18 10:00:29.710360: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:00:29.710555: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:00:29.710648: No export window planned
2026-08-18 10:00:29.710748: Inverter 0 Adjust force export to False, change times from 00:00:00 - 00:00:00 to 00:00:00 - 00:00:00
2026-08-18 10:00:29.710783: Adjust idle time, charge 00:00:00-00:00:00 discharge 00:00:00-00:00:00
2026-08-18 10:00:29.710916: Adjust demand (idle) time computed is 05:00:00-23:59:00
2026-08-18 10:00:29.711078: Inverter 0 not setting charging SoC as we are not within the window (now 08-18 10:00:00 target set_soc_minutes 30 charge start time 08-20 00:00:00)
2026-08-18 10:00:29.711130: Inverter 0 adjust target SoC for export to 0% based on requested all inverter SoC 0%
2026-08-18 10:00:29.711221: Inverter 0 Current Target SoC is 7%, already at target
2026-08-18 10:00:29.711351: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711395: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711457: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711525: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711596: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711637: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711671: Inverter 0 Skipped service charge_stop_service domain charge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711774: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.711951: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.712055: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.712100: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.712127: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.712151: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.712175: Inverter 0 Skipped service charge_stop_service domain discharge service_name select.select_option as it was previously called.
2026-08-18 10:00:29.712201: Inverter 0 count register writes 0
2026-08-18 10:00:29.746660: Total inverter register writes now 867
2026-08-18 10:00:29.794818: Info: Completed run status Demand
2026-08-18 10:00:29.804931: Info: record_status Demand
2026-08-18 10:00:29.813726: Saved current settings to /config/predbat_config.json
2026-08-18 10:00:29.814016: Compare, best tariff: current metric 129.87p
2026-08-18 10:00:40.058764: ML Predictor: Epoch 29/30: lr=0.00010 huber_loss=0.0049 val_mae=0.0023 kWh val_bias=+0.0000 kWh (+0.1%) combined=0.0014 kWh ema_combined=0.0014 kWh
2026-08-18 10:00:53.310599: ML Predictor: Epoch 30/30: lr=0.00010 huber_loss=0.0050 val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.0%) combined=0.0013 kWh ema_combined=0.0014 kWh
2026-08-18 10:00:53.317132: ML Predictor: Restored best weights from epoch with val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.0%)
2026-08-18 10:00:53.317434: ML Predictor: Training complete, final val_mae=0.0024 kWh val_bias=+0.0000 kWh (+0.0%)
2026-08-18 10:00:54.422009: ML Predictor: AR rollout over holdout: ar_mae=0.0051 kWh ar_bias=-0.0014 kWh (-3.3%) [drift vs teacher-forced: +0.0027 kWh]
2026-08-18 10:00:54.427856: ML Predictor: Curriculum pass 4/5 complete, val_mae=0.0024 kWh
2026-08-18 10:00:54.428112: ML Predictor: Curriculum final pass 5/5: full dataset (59.8 days)
2026-08-18 10:00:54.428256: ML Predictor: Starting fine-tune training with 30 epochs
2026-08-18 10:00:55.126666: ML Predictor: Creating dataset with 1435 hours of training data, 48 hours validation
2026-08-18 10:01:00.381684: ML Predictor: Created 16937 training samples, 576 validation samples
2026-08-18 10:01:00.440258: ML Predictor: Normalization stats [ema-update alpha=0.1] target(mean=0.0597 std=0.0484) load(mean=0.0595 std=0.0482) pv(mean=0.0000 std=0.0100) temp(mean=19.7060 std=4.5783) import_rate(mean=16.6436 std=8.3740) export_rate(mean=0.0000 std=1.0000) time(mean=-0.1943 std=0.5282)
2026-08-18 10:01:00.533170: ML Predictor: Applied EMA normalization update (alpha=0.1) to track feature drift
2026-08-18 10:01:00.550341: ML Predictor: Reset Adam optimiser state for fine-tuning
2026-08-18 10:01:00.576825: ML Predictor: Baseline (pre-finetune) val_mae=0.0042 kWh val_bias=+0.0001 kWh
2026-08-18 10:01:04.527312: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:01:04.527608: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:01:04.527668: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:01:04.527870: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:01:04.527949: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:01:04.528109: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:01:04.528240: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:01:13.337690: ML Predictor: Epoch 1/30: lr=0.00100 huber_loss=0.0085 val_mae=0.0034 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 10:01:27.753088: ML Predictor: Epoch 2/30: lr=0.00100 huber_loss=0.0101 val_mae=0.0044 kWh val_bias=-0.0009 kWh (-2.0%) combined=0.0023 kWh ema_combined=0.0020 kWh
2026-08-18 10:01:41.746695: ML Predictor: Epoch 3/30: lr=0.00099 huber_loss=0.0122 val_mae=0.0035 kWh val_bias=-0.0004 kWh (-1.0%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 10:01:54.617623: ML Predictor: Epoch 4/30: lr=0.00098 huber_loss=0.0128 val_mae=0.0038 kWh val_bias=+0.0010 kWh (+2.4%) combined=0.0032 kWh ema_combined=0.0023 kWh
2026-08-18 10:02:09.149604: ML Predictor: Epoch 5/30: lr=0.00096 huber_loss=0.0106 val_mae=0.0035 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0026 kWh ema_combined=0.0024 kWh
2026-08-18 10:02:24.035163: ML Predictor: Epoch 6/30: lr=0.00094 huber_loss=0.0097 val_mae=0.0031 kWh val_bias=-0.0009 kWh (-2.1%) combined=0.0021 kWh ema_combined=0.0023 kWh
2026-08-18 10:02:37.505385: ML Predictor: Epoch 7/30: lr=0.00091 huber_loss=0.0116 val_mae=0.0035 kWh val_bias=-0.0004 kWh (-0.9%) combined=0.0022 kWh ema_combined=0.0023 kWh
2026-08-18 10:02:50.576359: ML Predictor: Epoch 8/30: lr=0.00088 huber_loss=0.0098 val_mae=0.0032 kWh val_bias=-0.0003 kWh (-0.7%) combined=0.0016 kWh ema_combined=0.0021 kWh
2026-08-18 10:03:04.940601: ML Predictor: Epoch 9/30: lr=0.00084 huber_loss=0.0088 val_mae=0.0031 kWh val_bias=-0.0001 kWh (-0.1%) combined=0.0018 kWh ema_combined=0.0020 kWh
2026-08-18 10:03:18.930373: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:03:18.930788: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:03:18.930898: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:03:18.931219: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:03:18.931287: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:03:18.931318: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:03:18.931353: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:03:19.650550: ML Predictor: Epoch 10/30: lr=0.00080 huber_loss=0.0094 val_mae=0.0034 kWh val_bias=+0.0003 kWh (+0.8%) combined=0.0020 kWh ema_combined=0.0020 kWh
2026-08-18 10:03:35.148881: ML Predictor: Epoch 11/30: lr=0.00076 huber_loss=0.0092 val_mae=0.0029 kWh val_bias=-0.0002 kWh (-0.5%) combined=0.0015 kWh ema_combined=0.0019 kWh
2026-08-18 10:03:49.632163: ML Predictor: Epoch 12/30: lr=0.00072 huber_loss=0.0081 val_mae=0.0028 kWh val_bias=+0.0003 kWh (+0.6%) combined=0.0019 kWh ema_combined=0.0019 kWh
2026-08-18 10:04:03.879017: ML Predictor: Epoch 13/30: lr=0.00067 huber_loss=0.0079 val_mae=0.0030 kWh val_bias=+0.0005 kWh (+1.2%) combined=0.0024 kWh ema_combined=0.0020 kWh
2026-08-18 10:04:18.535791: ML Predictor: Epoch 14/30: lr=0.00062 huber_loss=0.0068 val_mae=0.0027 kWh val_bias=-0.0005 kWh (-1.2%) combined=0.0018 kWh ema_combined=0.0019 kWh
2026-08-18 10:04:35.225942: ML Predictor: Epoch 15/30: lr=0.00057 huber_loss=0.0065 val_mae=0.0026 kWh val_bias=-0.0001 kWh (-0.3%) combined=0.0014 kWh ema_combined=0.0018 kWh
2026-08-18 10:04:49.281091: ML Predictor: Epoch 16/30: lr=0.00053 huber_loss=0.0064 val_mae=0.0026 kWh val_bias=+0.0001 kWh (+0.3%) combined=0.0016 kWh ema_combined=0.0017 kWh
2026-08-18 10:05:00.247729: --------------- PredBat - update at 2026-08-18 10:05:00+01:00 with clock skew 0 minutes, minutes now 605
2026-08-18 10:05:00.248707: Saved current settings to /config/predbat_config.json
2026-08-18 10:05:00.248856: Using cached GitHub data for https://api.github.com/repos/springfall2008/batpred/releases age 35.0 minutes
2026-08-18 10:05:00.248947: Predbat /addon/github.py repository springfall2008/batpred version v8.48.1 currently running, latest version is v8.48.6, latest beta is v8.48.6
2026-08-18 10:05:00.249122: Autoupdate: There is an update pending v8.48.6 LoadML memory reduction, Fetch history memory saving, Bug fixes - auto update is off
2026-08-18 10:05:00.279498: Configuration: forecast_hours 48, num_cars 1, debug enable is False, calculate_plan_every 10 minutes
2026-08-18 10:05:00.279689: days_previous_auto enabled - will fall back to a weighted-bucket historical load forecast over up to 14 days if no other load forecast source takes precedence
2026-08-18 10:05:00.280364: Warn: calculate_pv90_plan is Off so forcing pv_metric90_weight from 0.15 to 0.0 - turn on switch.predbat_calculate_pv90_plan (expert mode) to enable the PV90 upside scenario
2026-08-18 10:05:00.281400: Cars 1 charging from battery True planned [False], charging_now [False] smart [True], max_price [0.0]p, plan_time ['16:00:00'], battery size [58.6]kWh, limit [100.0]% ([58.6]kWh), rate [7.4]kW, exclusive [False]
2026-08-18 10:05:00.281573: Predbat mode is set to Control charge & discharge
2026-08-18 10:05:00.606004: Found 21602 load_today datapoints going back 27 days
2026-08-18 10:05:00.606174: Using load_power data to fill gaps in load_today data
2026-08-18 10:05:01.879864: Warn: Found 1 periods of zero load with power data, filling using power integration
2026-08-18 10:05:01.880266: Zero load period starting at 2026-08-17T10:54:00+0100 (1391 minutes) for 189 minutes with base value 208.05
2026-08-18 10:05:01.882091: Processing 721 30-minute periods for power integration
2026-08-18 10:05:02.267967: Warn: You have not set pv_today in apps.yaml, you will have no previous PV data
2026-08-18 10:05:02.268217: Car charging hold False, threshold 6.0kWh
2026-08-18 10:05:02.268351: Current data so far today: load 4.8kWh, import 10.2kWh, export 0.0kWh, PV 0kWh
2026-08-18 10:05:02.286423: Car 0 using Octopus Intelligent is unplugged
2026-08-18 10:05:02.300291: Cars: SoC: [47.466]kWh, Charge limit [100.0]% ([58.6]kWh), plan time ['08:00:00'], battery size [58.6]kWh
2026-08-18 10:05:02.301322: Octopus: Joined Octopus saving session: Mon 17/08 18:00-19:00 at rate 12.625 p/kWh state False
2026-08-18 10:05:02.301488: Standing charge is set to 46.63p
2026-08-18 10:05:02.566619: Octopus: Intelligent slot at 08-17 00:30:00-08-17 01:00:00, assumed price 8.0, amount 3.38, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:05:02.566901: Octopus: Intelligent slot at 08-17 01:30:00-08-17 02:00:00, assumed price 8.0, amount 3.37, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:05:02.567370: Octopus: Intelligent slot at 08-17 02:00:00-08-17 02:30:00, assumed price 8.0, amount 3.5, kWh location AT_HOME, source unknown, octopus_slot_low_rate True
2026-08-18 10:05:02.569024: Octopus: Intelligent slots for day -2: 9 of 12 max
2026-08-18 10:05:02.569254: Octopus: Setting Octopus saving session in range 08-17 18:00:00 - 08-17 19:00:00 export False rate 12.625
2026-08-18 10:05:02.574912: Rate min forward looking: now 8.0p at end of forecast 8.0p
2026-08-18 10:05:02.575391: Import rates: min 8.0p, max 33.75p, average 27.31p
2026-08-18 10:05:02.621486: Export rates: min 0p, max 0p, average 0.0p
2026-08-18 10:05:02.622465: Rate thresholds (for charge/export) are import 33.25p (0.0p), export -0.1p (0.0p)
2026-08-18 10:05:02.626355: High export rate found rates in range 99p to -99p
2026-08-18 10:05:02.676436: Low Import rate found rates in range 8.0p to 8.0p
2026-08-18 10:05:02.677320: Car 0 on Octopus Intelligent, no active plan
2026-08-18 10:05:02.691802: Battery level now 11.36kWh, -1hr ago 11.84kWh, at midnight 6.84kWh, battery value change in the last hour -3.3p, change today 31.07p, rate_forward 6.87p
2026-08-18 10:05:02.692426: Last hour: net energy 0.03kWh, import 0.03kWh, export 0.0kWh, car 0kWh, load 0.5kWh, net cost 0.92p, import 0.92p, export 0.0p, car 0.0p, carbon 0.0kg
2026-08-18 10:05:02.769867: Today's energy total net 10.2kWh, import 10.2kWh, export 0.0kWh, cost 134.35p, import 87.72p, export 0.0p, carbon 0.0kg
2026-08-18 10:05:02.770070: Warn: Unable to parse relative_time from PV forecast sensor: None, using midnight UTC as fallback
2026-08-18 10:05:02.877363: Using weighted-bucket historical load forecast over 14 days
2026-08-18 10:05:02.968227: Today's load divergence 91.99%, in-day adjustment 92.56%, damping 0.95x, yesterday 92.68% today 92.39% blend 57.99%
2026-08-18 10:05:02.968354: Today's predicted so far 5.94kWh with 0.0kWh car/iBoost excluded, 7.42kWh import ignored, and 5.94kWh forecast extra.
2026-08-18 10:05:02.968492: Today's actual load so far 4.75kWh with 0.0kWh car/iBoost excluded, and 7.42kWh import ignored.
2026-08-18 10:05:03.042439: Inverter 0: Type SK Sunsynk
2026-08-18 10:05:03.042557: Note: Inverter 0: Using inverter type SK - not all features are available on all Inverter types
2026-08-18 10:05:03.042811: Reserve min: 7%, battery_min: 7%
2026-08-18 10:05:03.042931: Inverter 0 with soc_max 16.0kWh, nominal_capacity 16.0kWh, battery rate raw 5000.0W, charge rate 5.0kW, charge rate DC 5.0kW, discharge rate 5.0kW, battery_rate_min 0.0W, AC limit 5.0kW, export limit 100.0kW, reserve 7%, current_reserve 7%, temperature 20°C
2026-08-18 10:05:03.043324: Inverter 0 SoC: 11.36kW 71%, current charge rate 5000W, current discharge rate 5250W, current battery power 3262W, current battery voltage 51.2V, grid power -57W, load power 3297W, PV Power 0W
2026-08-18 10:05:03.043529: Inverter 0 write_and_poll_switch: No write needed for scheduled_charge_enable as False == False
2026-08-18 10:05:03.043667: Inverter 0 scheduled charge enable is False
2026-08-18 10:05:03.043735: Inverter 0 charge windows currently []
2026-08-18 10:05:03.043789: Inverter 0 Charge settings: timed charged is disabled, power 5.0kW
2026-08-18 10:05:03.044034: Inverter 0 write_and_poll_switch: No write needed for scheduled_discharge_enable as False == False
2026-08-18 10:05:03.044108: Inverter 0 sensor.predbat_SK_0_scheduled_discharge_enable set to False
2026-08-18 10:05:03.044270: Inverter 0 scheduled discharge enable is False
2026-08-18 10:05:03.044582: Inverter 0 idle time is 08-18 05:00:00-08-18 23:59:00
2026-08-18 10:05:03.044654: Inverter 0 discharge windows currently []
2026-08-18 10:05:03.044753: Note: Inverter does not support discharge freeze - disabled
2026-08-18 10:05:03.044859: Note: Inverter does not support charge freeze - disabled
2026-08-18 10:05:03.044941: Note: Inverter does not support reserve - disabling reserve functions
2026-08-18 10:05:03.128262: Dynamic load last period 0.60kW, status low, threshold_battery 5.0kWh, threshold_car 6.0kWh,
2026-08-18 10:05:03.128537: Plan was last updated on 2026-08-18 10:00:00+01:00 and is now 5.0 minutes old
2026-08-18 10:05:03.128844: Best charge window [ 18-08 23:30:00 - 19-08 02:00:00 @ 8.0p 100%, 19-08 02:00:00 - 19-08 03:30:00 @ 8.0p 81%, 19-08 03:30:00 - 19-08 05:00:00 @ 8.0p 91%, 19-08 23:30:00 - 20-08 05:30:00 @ 8.0p 100% ]
2026-08-18 10:05:03.152053: Best export window [ ]
2026-08-18 10:05:03.153408: PV Forecast 0.0kWh and 10% Forecast 0.0kWh; PV cloud factor None
2026-08-18 10:05:03.158305: Load divergence over 8.0 hours mean 427.5W, min 345.0W, max 675.0W, std dev 65.06W, divergence 7.61%
2026-08-18 10:05:03.215315: Warn: Prediction kernel: enabled but NOT available (failed to load /addon/prediction_kernel_lib_x86_64.so (Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /addon/prediction_kernel_lib_x86_64.so))) - falling back to the Python engine
2026-08-18 10:05:03.215445: LoadML is_calculating True
2026-08-18 10:05:03.215477: Not using thread pool as LoadML is calculating to avoid lockups
2026-08-18 10:05:03.309492: predict base end_record 08-19 23:35:00, final soc 1.12kWh, metric 611.53p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 00:10:00, load 30.23kWh, PV 0.0kWh
2026-08-18 10:05:03.534471: Battery has 14.08 hours left - now at 11.36kWh
2026-08-18 10:05:03.614667: predict base10 end_record 08-19 23:35:00, final soc 1.12kWh, metric 635.68p, metric_keep 0kWh, min_soc 1.12kWh @ 08-18 23:35:00, load 31.44kWh, PV 0.0kWh
2026-08-18 10:05:03.796385: predict best10 end_record 08-19 23:35:00, final soc 1.44kWh, metric 339.6p, metric_keep 0kWh, min_soc 1.12kWh @ 08-19 23:20:00, load 31.44kWh, PV 0.0kWh
2026-08-18 10:05:03.963039: predict best end_record 08-19 23:35:00, final soc 1.96kWh, metric 329.66p, metric_keep 0kWh, min_soc 1.57kWh @ 08-19 23:25:00, load 30.23kWh, PV 0.0kWh
2026-08-18 10:05:03.963395: Saving plan best values to HA entities
2026-08-18 10:05:04.277206: Evaluate trigger {'name': 'large', 'minutes': 60, 'energy': 1.0} results off total_energy 0.0
2026-08-18 10:05:04.286346: Evaluate trigger {'name': 'small', 'minutes': 15, 'energy'